summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/Gateway/Gateway/Channel.cpp710
-rw-r--r--apps/Gateway/Gateway/Channel.h280
-rw-r--r--apps/Gateway/Gateway/Channel_Connector.cpp92
-rw-r--r--apps/Gateway/Gateway/Channel_Connector.h41
-rw-r--r--apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp633
-rw-r--r--apps/Gateway/Gateway/Concrete_Connection_Handlers.h127
-rw-r--r--apps/Gateway/Gateway/Concurrency_Strategies.h74
-rw-r--r--apps/Gateway/Gateway/Config_Files.cpp222
-rw-r--r--apps/Gateway/Gateway/Config_Files.h98
-rw-r--r--apps/Gateway/Gateway/Connection_Handler.cpp289
-rw-r--r--apps/Gateway/Gateway/Connection_Handler.h157
-rw-r--r--apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp62
-rw-r--r--apps/Gateway/Gateway/Connection_Handler_Acceptor.h65
-rw-r--r--apps/Gateway/Gateway/Connection_Handler_Connector.cpp76
-rw-r--r--apps/Gateway/Gateway/Connection_Handler_Connector.h44
-rw-r--r--apps/Gateway/Gateway/Consumer_Dispatch_Set.h32
-rw-r--r--apps/Gateway/Gateway/Consumer_Entry.cpp31
-rw-r--r--apps/Gateway/Gateway/Consumer_Entry.h45
-rw-r--r--apps/Gateway/Gateway/Consumer_Map.cpp61
-rw-r--r--apps/Gateway/Gateway/Consumer_Map.h62
-rw-r--r--apps/Gateway/Gateway/Dispatch_Set.h28
-rw-r--r--apps/Gateway/Gateway/Event.h223
-rw-r--r--apps/Gateway/Gateway/Event_Channel.cpp548
-rw-r--r--apps/Gateway/Gateway/Event_Channel.h129
-rw-r--r--apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp61
-rw-r--r--apps/Gateway/Gateway/Event_Forwarding_Discriminator.h65
-rw-r--r--apps/Gateway/Gateway/File_Parser.cpp164
-rw-r--r--apps/Gateway/Gateway/File_Parser.h93
-rw-r--r--apps/Gateway/Gateway/Gateway.cpp342
-rw-r--r--apps/Gateway/Gateway/Gateway.dsp96
-rw-r--r--apps/Gateway/Gateway/Gateway.dsw44
-rw-r--r--apps/Gateway/Gateway/Gateway.h33
-rw-r--r--apps/Gateway/Gateway/IO_Handler.cpp710
-rw-r--r--apps/Gateway/Gateway/IO_Handler.h224
-rw-r--r--apps/Gateway/Gateway/IO_Handler_Connector.cpp92
-rw-r--r--apps/Gateway/Gateway/IO_Handler_Connector.h40
-rw-r--r--apps/Gateway/Gateway/Makefile1139
-rw-r--r--apps/Gateway/Gateway/Makefile.bor15
-rw-r--r--apps/Gateway/Gateway/Options.cpp259
-rw-r--r--apps/Gateway/Gateway/Options.h193
-rw-r--r--apps/Gateway/Gateway/Peer_Message.h89
-rw-r--r--apps/Gateway/Gateway/Routing_Entry.cpp47
-rw-r--r--apps/Gateway/Gateway/Routing_Entry.h53
-rw-r--r--apps/Gateway/Gateway/Routing_Table.cpp69
-rw-r--r--apps/Gateway/Gateway/Routing_Table.h67
-rw-r--r--apps/Gateway/Gateway/Thr_Channel.cpp204
-rw-r--r--apps/Gateway/Gateway/Thr_Channel.h65
-rw-r--r--apps/Gateway/Gateway/Thr_IO_Handler.cpp204
-rw-r--r--apps/Gateway/Gateway/Thr_IO_Handler.h64
-rw-r--r--apps/Gateway/Gateway/Thr_Proxy_Handler.cpp211
-rw-r--r--apps/Gateway/Gateway/Thr_Proxy_Handler.h66
-rw-r--r--apps/Gateway/Gateway/cc_config10
-rw-r--r--apps/Gateway/Gateway/connection_config55
-rw-r--r--apps/Gateway/Gateway/consumer_config35
-rw-r--r--apps/Gateway/Gateway/gatewayd.cpp63
-rw-r--r--apps/Gateway/Gateway/gatewayd.dsp57
-rw-r--r--apps/Gateway/Gateway/rt_config7
-rw-r--r--apps/Gateway/Gateway/svc.conf3
-rw-r--r--apps/Gateway/Makefile26
-rw-r--r--apps/Gateway/Makefile.bor9
-rw-r--r--apps/Gateway/Peer/Event.h125
-rw-r--r--apps/Gateway/Peer/Gateway_Handler.cpp652
-rw-r--r--apps/Gateway/Peer/Gateway_Handler.h154
-rw-r--r--apps/Gateway/Peer/Makefile221
-rw-r--r--apps/Gateway/Peer/Makefile.bor8
-rw-r--r--apps/Gateway/Peer/Options.cpp192
-rw-r--r--apps/Gateway/Peer/Options.h133
-rw-r--r--apps/Gateway/Peer/Peer.cpp866
-rw-r--r--apps/Gateway/Peer/Peer.dsp64
-rw-r--r--apps/Gateway/Peer/Peer.dsw44
-rw-r--r--apps/Gateway/Peer/Peer.h238
-rw-r--r--apps/Gateway/Peer/Peer_Message.h44
-rw-r--r--apps/Gateway/Peer/peerd.cpp62
-rw-r--r--apps/Gateway/Peer/peerd.dsp57
-rw-r--r--apps/Gateway/Peer/svc.conf2
-rw-r--r--apps/Gateway/README140
-rw-r--r--apps/JAWS/ChangeLog732
-rw-r--r--apps/JAWS/Makefile25
-rw-r--r--apps/JAWS/Makefile.bor9
-rw-r--r--apps/JAWS/PROTOTYPE/1000K.html20000
-rw-r--r--apps/JAWS/PROTOTYPE/500K.html10000
-rw-r--r--apps/JAWS/PROTOTYPE/50K.html1000
-rw-r--r--apps/JAWS/PROTOTYPE/5K.html100
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/HTTPU.DSP169
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/HTTPU.DSW29
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/Makefile478
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/http_base.cpp323
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/http_base.h87
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/http_base.i53
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/http_export.h38
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/http_headers.cpp161
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/http_headers.h165
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/http_headers.i48
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/http_request.cpp86
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/http_request.h59
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/http_request.i41
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/http_response.cpp49
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/http_response.h51
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/http_response.i23
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/http_status.cpp87
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/http_status.h109
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/http_status.i19
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/parse_http_request.cpp116
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/parse_http_request.h59
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/parse_http_request.i49
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/parse_http_response.cpp72
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/parse_http_response.h56
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/parse_http_response.i43
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/parse_url.cpp320
-rw-r--r--apps/JAWS/PROTOTYPE/HTTPU/parse_url.h63
-rw-r--r--apps/JAWS/PROTOTYPE/HTTP_10.cpp32
-rw-r--r--apps/JAWS/PROTOTYPE/HTTP_10.h68
-rw-r--r--apps/JAWS/PROTOTYPE/HTTP_10_Parse.cpp82
-rw-r--r--apps/JAWS/PROTOTYPE/HTTP_10_Read.cpp64
-rw-r--r--apps/JAWS/PROTOTYPE/HTTP_10_Request.cpp119
-rw-r--r--apps/JAWS/PROTOTYPE/HTTP_10_Request.h31
-rw-r--r--apps/JAWS/PROTOTYPE/HTTP_10_Write.cpp160
-rw-r--r--apps/JAWS/PROTOTYPE/HTTP_Policy.cpp17
-rw-r--r--apps/JAWS/PROTOTYPE/HTTP_Policy.h22
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Assoc_Array.cpp274
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Assoc_Array.h102
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Cache_Hash_T.cpp237
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Cache_Hash_T.h61
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Cache_Heap_T.cpp282
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Cache_Heap_T.h103
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Cache_List_T.cpp222
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Cache_List_T.h111
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Cache_Manager.cpp189
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Cache_Manager.h66
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Cache_Manager_T.cpp577
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Cache_Manager_T.h185
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Cache_Object.cpp302
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Cache_Object.h149
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Concurrency.cpp349
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Concurrency.h132
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Data_Block.cpp76
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Data_Block.h50
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Export.h38
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/FILE.cpp63
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/FILE.h43
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Filecache.cpp106
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Filecache.h73
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Hash_Bucket_T.cpp462
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Hash_Bucket_T.h206
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Headers.cpp165
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Headers.h78
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/IO.cpp561
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/IO.h252
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.cpp210
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.h139
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/IO_Handler.cpp509
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/IO_Handler.h313
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/JAWS.h14
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Makefile2296
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Makefile.bor31
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Parse_Headers.cpp441
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Parse_Headers.h122
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Pipeline.cpp27
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Pipeline.h39
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler_T.cpp31
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler_T.h32
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.cpp213
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.h56
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Policy.cpp89
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Policy.h65
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Reaper.cpp45
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Reaper.h48
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Server.cpp190
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Server.h39
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Waiter.cpp73
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Waiter.h48
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/jaws.dsp224
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/jaws.dsw29
-rw-r--r--apps/JAWS/PROTOTYPE/Makefile661
-rw-r--r--apps/JAWS/PROTOTYPE/Makefile.bor18
-rw-r--r--apps/JAWS/PROTOTYPE/README32
-rw-r--r--apps/JAWS/PROTOTYPE/main.cpp47
-rw-r--r--apps/JAWS/PROTOTYPE/server.dsp118
-rw-r--r--apps/JAWS/PROTOTYPE/server.dsw29
-rw-r--r--apps/JAWS/README15
-rw-r--r--apps/JAWS/clients/Blobby/Blob.cpp94
-rw-r--r--apps/JAWS/clients/Blobby/Blob.h87
-rw-r--r--apps/JAWS/clients/Blobby/Blob_Handler.cpp343
-rw-r--r--apps/JAWS/clients/Blobby/Blob_Handler.h115
-rw-r--r--apps/JAWS/clients/Blobby/Makefile483
-rw-r--r--apps/JAWS/clients/Blobby/Makefile.bor10
-rw-r--r--apps/JAWS/clients/Blobby/Options.cpp81
-rw-r--r--apps/JAWS/clients/Blobby/Options.h71
-rw-r--r--apps/JAWS/clients/Blobby/README33
-rw-r--r--apps/JAWS/clients/Blobby/blobby.cpp98
-rw-r--r--apps/JAWS/clients/Caching/Caching.dsp111
-rw-r--r--apps/JAWS/clients/Caching/Caching.dsw29
-rw-r--r--apps/JAWS/clients/Caching/ID_Generator.cpp61
-rw-r--r--apps/JAWS/clients/Caching/ID_Generator.h62
-rw-r--r--apps/JAWS/clients/Caching/Local_Locator.cpp257
-rw-r--r--apps/JAWS/clients/Caching/Local_Locator.h118
-rw-r--r--apps/JAWS/clients/Caching/Local_Locator.i44
-rw-r--r--apps/JAWS/clients/Caching/Locator_Request_Reply.cpp459
-rw-r--r--apps/JAWS/clients/Caching/Locator_Request_Reply.h220
-rw-r--r--apps/JAWS/clients/Caching/Locator_Request_Reply.i138
-rw-r--r--apps/JAWS/clients/Caching/Makefile191
-rw-r--r--apps/JAWS/clients/Caching/Makefile.bor6
-rw-r--r--apps/JAWS/clients/Caching/README83
-rw-r--r--apps/JAWS/clients/Caching/URL_Array_Helper.cpp43
-rw-r--r--apps/JAWS/clients/Caching/URL_Array_Helper.h40
-rw-r--r--apps/JAWS/clients/Caching/URL_Locator.cpp56
-rw-r--r--apps/JAWS/clients/Caching/URL_Locator.h116
-rw-r--r--apps/JAWS/clients/Caching/URL_Locator.i4
-rw-r--r--apps/JAWS/clients/Caching/URL_Properties.cpp163
-rw-r--r--apps/JAWS/clients/Caching/URL_Properties.h201
-rw-r--r--apps/JAWS/clients/Caching/URL_Properties.i203
-rw-r--r--apps/JAWS/clients/Caching/http_client.cpp70
-rw-r--r--apps/JAWS/clients/Caching/http_handler.cpp255
-rw-r--r--apps/JAWS/clients/Caching/http_handler.h81
-rw-r--r--apps/JAWS/clients/Caching/test_URL.cpp35
-rw-r--r--apps/JAWS/clients/Caching/testing.dsp121
-rw-r--r--apps/JAWS/clients/Makefile26
-rw-r--r--apps/JAWS/clients/Makefile.bor9
-rw-r--r--apps/JAWS/clients/README13
-rw-r--r--apps/JAWS/clients/WebSTONE/COPYING348
-rw-r--r--apps/JAWS/clients/WebSTONE/README245
-rw-r--r--apps/JAWS/clients/WebSTONE/README.DynamicWorkload37
-rw-r--r--apps/JAWS/clients/WebSTONE/README.FIRST21
-rw-r--r--apps/JAWS/clients/WebSTONE/WEBSTONE-VERSION-2.00
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/WebStone-common.pl61
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/WebStone-manage.pl31
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/WebStone-run.pl37
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/WebStone-setup.pl95
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/checkfilelist35
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/genfiles41
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/genfiles-from-filelist.sh41
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/gui-configure174
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/killbench13
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/killbench.pl15
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/mine-logs.pl88
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/move-filelist.pl26
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/move-runs.pl24
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/rebootall9
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/runbench193
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/runbench.pl36
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/tabs2html13
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/view-results.pl53
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/webstone-gui.pl316
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/write-testbed.pl47
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/wscollect.pl139
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/filelist6
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/filelist.cgi-heavy6
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-heavy6
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-light6
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-medium6
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/filelist.homepage2
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/filelist.sample6
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/filelist.standard6
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/fileset32
-rwxr-xr-xapps/JAWS/clients/WebSTONE/conf/paths.pl2
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/paths.sh0
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/testbed33
-rw-r--r--apps/JAWS/clients/WebSTONE/doc/COPYING348
-rw-r--r--apps/JAWS/clients/WebSTONE/doc/FAQ-webstone.html402
-rw-r--r--apps/JAWS/clients/WebSTONE/doc/LICENSE.html16
-rw-r--r--apps/JAWS/clients/WebSTONE/doc/WebStone.html24
-rwxr-xr-xapps/JAWS/clients/WebSTONE/doc/testbed.help21
-rw-r--r--apps/JAWS/clients/WebSTONE/doc/webstone-white-paper.ps8974
-rw-r--r--apps/JAWS/clients/WebSTONE/doc/webstone.gifbin14656 -> 0 bytes
-rw-r--r--apps/JAWS/clients/WebSTONE/doc/webstone2.html72
-rw-r--r--apps/JAWS/clients/WebSTONE/src/Makefile112
-rw-r--r--apps/JAWS/clients/WebSTONE/src/Makefile.in110
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/README232
-rw-r--r--apps/JAWS/clients/WebSTONE/src/acconfig.h15
-rw-r--r--apps/JAWS/clients/WebSTONE/src/bench.c632
-rw-r--r--apps/JAWS/clients/WebSTONE/src/bench.h273
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/cgi-sendbin15452 -> 0 bytes
-rw-r--r--apps/JAWS/clients/WebSTONE/src/cgi-send.c45
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/client/webclient.mak479
-rw-r--r--apps/JAWS/clients/WebSTONE/src/config.cache47
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/config.guess565
-rw-r--r--apps/JAWS/clients/WebSTONE/src/config.h90
-rw-r--r--apps/JAWS/clients/WebSTONE/src/config.h.in89
-rw-r--r--apps/JAWS/clients/WebSTONE/src/config.log4
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/config.status288
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/config.sub867
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/configure2132
-rw-r--r--apps/JAWS/clients/WebSTONE/src/configure.in99
-rw-r--r--apps/JAWS/clients/WebSTONE/src/debug.h17
-rw-r--r--apps/JAWS/clients/WebSTONE/src/errexit.c105
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/gendata/genrand.mak227
-rw-r--r--apps/JAWS/clients/WebSTONE/src/genrand.c59
-rw-r--r--apps/JAWS/clients/WebSTONE/src/get.c317
-rw-r--r--apps/JAWS/clients/WebSTONE/src/get.h16
-rw-r--r--apps/JAWS/clients/WebSTONE/src/getopt.c66
-rw-r--r--apps/JAWS/clients/WebSTONE/src/gettimeofday.c56
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/install-sh238
-rw-r--r--apps/JAWS/clients/WebSTONE/src/logfile278599
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/master/webmaster.mak476
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/buffer.h218
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/cinfo.h144
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/crit.h125
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/daemon.h118
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/dll.h122
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/ereport.h119
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/eventlog.h58
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/file.h215
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/minissl.h25
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h178
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nodelock.h45
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nterrors.h736
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/objndx.h27
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/pblock.h191
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/sem.h68
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/session.h83
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h95
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shmem.h82
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systems.h220
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systhr.h128
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/util.h203
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/conf.h153
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/dnfilter.h42
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/func.h109
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/http.h168
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/httpact.h118
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/ipfilter.h46
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/log.h49
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/object.h165
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/objset.h156
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/protocol.h25
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/req.h214
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/servact.h24
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/netsite.h65
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-send.c90
-rw-r--r--apps/JAWS/clients/WebSTONE/src/parse_file_list.c289
-rw-r--r--apps/JAWS/clients/WebSTONE/src/parse_file_list.h19
-rw-r--r--apps/JAWS/clients/WebSTONE/src/rexec.c372
-rw-r--r--apps/JAWS/clients/WebSTONE/src/statistics.c47
-rw-r--r--apps/JAWS/clients/WebSTONE/src/statistics.h11
-rw-r--r--apps/JAWS/clients/WebSTONE/src/sysdep.c50
-rw-r--r--apps/JAWS/clients/WebSTONE/src/sysdep.h130
-rw-r--r--apps/JAWS/clients/WebSTONE/src/timefunc.c169
-rw-r--r--apps/JAWS/clients/WebSTONE/src/timefunc.h30
-rw-r--r--apps/JAWS/clients/WebSTONE/src/webclient.c1295
-rw-r--r--apps/JAWS/clients/WebSTONE/src/webmaster.c1417
-rwxr-xr-xapps/JAWS/clients/WebSTONE/webstone75
-rwxr-xr-xapps/JAWS/remora/app/Makefile21
-rw-r--r--apps/JAWS/remora/app/Remora_Export.cc93
-rw-r--r--apps/JAWS/remora/app/Remora_Export.h85
-rw-r--r--apps/JAWS/remora/app/Remora_Export.i146
-rw-r--r--apps/JAWS/remora/app/Remora_Import.cc109
-rw-r--r--apps/JAWS/remora/app/Remora_Import.h69
-rw-r--r--apps/JAWS/remora/app/Remora_Import.i85
-rw-r--r--apps/JAWS/remora/app/remora.idl100
-rwxr-xr-xapps/JAWS/remora/app/stdmk40
-rw-r--r--apps/JAWS/remora/app/test.cc76
-rw-r--r--apps/JAWS/server/HTTP_Config.cpp140
-rw-r--r--apps/JAWS/server/HTTP_Config.h95
-rw-r--r--apps/JAWS/server/HTTP_Handler.cpp289
-rw-r--r--apps/JAWS/server/HTTP_Handler.h196
-rw-r--r--apps/JAWS/server/HTTP_Helpers.cpp431
-rw-r--r--apps/JAWS/server/HTTP_Helpers.h108
-rw-r--r--apps/JAWS/server/HTTP_Request.cpp661
-rw-r--r--apps/JAWS/server/HTTP_Request.h200
-rw-r--r--apps/JAWS/server/HTTP_Response.cpp366
-rw-r--r--apps/JAWS/server/HTTP_Response.h80
-rw-r--r--apps/JAWS/server/HTTP_Server.cpp395
-rw-r--r--apps/JAWS/server/HTTP_Server.h141
-rw-r--r--apps/JAWS/server/IO.cpp413
-rw-r--r--apps/JAWS/server/IO.h223
-rw-r--r--apps/JAWS/server/JAWS_Concurrency.cpp82
-rw-r--r--apps/JAWS/server/JAWS_Concurrency.h101
-rw-r--r--apps/JAWS/server/JAWS_Pipeline.cpp29
-rw-r--r--apps/JAWS/server/JAWS_Pipeline.h36
-rw-r--r--apps/JAWS/server/JAWS_Pipeline_Handler.cpp26
-rw-r--r--apps/JAWS/server/JAWS_Pipeline_Handler.h29
-rw-r--r--apps/JAWS/server/Makefile954
-rw-r--r--apps/JAWS/server/Makefile.bor17
-rw-r--r--apps/JAWS/server/Parse_Headers.cpp356
-rw-r--r--apps/JAWS/server/Parse_Headers.h121
-rw-r--r--apps/JAWS/server/README201
-rw-r--r--apps/JAWS/server/jaws.auth2
-rw-r--r--apps/JAWS/server/jaws.dsp176
-rw-r--r--apps/JAWS/server/jaws.dsw29
-rw-r--r--apps/JAWS/server/main.cpp55
-rw-r--r--apps/JAWS/server/svc.conf44
-rwxr-xr-xapps/JAWS/server/test.cgi9
-rw-r--r--apps/JAWS/stress_testing/Makefile49
-rw-r--r--apps/JAWS/stress_testing/README54
-rw-r--r--apps/JAWS/stress_testing/benchd.cpp240
-rw-r--r--apps/JAWS/stress_testing/client.h8
-rw-r--r--apps/JAWS/stress_testing/config3
-rw-r--r--apps/JAWS/stress_testing/connection.cpp98
-rw-r--r--apps/JAWS/stress_testing/connection.h22
-rw-r--r--apps/JAWS/stress_testing/cp.cpp11
-rw-r--r--apps/JAWS/stress_testing/cp.h14
-rw-r--r--apps/JAWS/stress_testing/global.h31
-rw-r--r--apps/JAWS/stress_testing/http.h16
-rw-r--r--apps/JAWS/stress_testing/http_tester.cpp171
-rw-r--r--apps/JAWS/stress_testing/out2
-rw-r--r--apps/JAWS/stress_testing/stats.cpp88
-rw-r--r--apps/JAWS/stress_testing/stats.h31
-rw-r--r--apps/JAWS/stress_testing/util.cpp60
-rw-r--r--apps/JAWS/stress_testing/util.h34
-rw-r--r--apps/Makefile31
-rw-r--r--apps/Makefile.am33
-rw-r--r--apps/Makefile.bor11
-rw-r--r--apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp147
-rw-r--r--apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.h73
-rw-r--r--apps/Orbix-Examples/Event_Comm/Consumer/Makefile163
-rw-r--r--apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp127
-rw-r--r--apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.h66
-rw-r--r--apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp124
-rw-r--r--apps/Orbix-Examples/Event_Comm/Makefile26
-rw-r--r--apps/Orbix-Examples/Event_Comm/README109
-rw-r--r--apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp140
-rw-r--r--apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.h75
-rw-r--r--apps/Orbix-Examples/Event_Comm/Supplier/Makefile162
-rw-r--r--apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp73
-rw-r--r--apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.h55
-rw-r--r--apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp132
-rw-r--r--apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh887
-rw-r--r--apps/Orbix-Examples/Event_Comm/include/Event_Comm_i.h37
-rw-r--r--apps/Orbix-Examples/Event_Comm/include/Notification_Receiver_i.h48
-rw-r--r--apps/Orbix-Examples/Event_Comm/include/Notifier_i.h87
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh887
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.idl88
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp351
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp166
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm_i.h36
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Makefile113
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notification.idl41
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver.idl40
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp44
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.h49
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl47
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp344
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h89
-rw-r--r--apps/Orbix-Examples/Logger/Logger.cpp134
-rw-r--r--apps/Orbix-Examples/Logger/Logger.h61
-rw-r--r--apps/Orbix-Examples/Logger/Makefile63
-rw-r--r--apps/Orbix-Examples/Logger/Orbix.hostgroups1
-rw-r--r--apps/Orbix-Examples/Logger/Orbix.hosts3
-rw-r--r--apps/Orbix-Examples/Logger/README35
-rw-r--r--apps/Orbix-Examples/Logger/a1.tex232
-rw-r--r--apps/Orbix-Examples/Logger/client.cpp143
-rw-r--r--apps/Orbix-Examples/Logger/logger.hh434
-rw-r--r--apps/Orbix-Examples/Logger/logger.idl58
-rw-r--r--apps/Orbix-Examples/Logger/loggerS.cpp141
-rw-r--r--apps/Orbix-Examples/Logger/logger_i.cpp122
-rw-r--r--apps/Orbix-Examples/Logger/logger_i.h80
-rw-r--r--apps/Orbix-Examples/Logger/server.cpp40
-rw-r--r--apps/Orbix-Examples/Makefile25
-rw-r--r--apps/README27
-rw-r--r--apps/build.bor15
-rw-r--r--apps/drwho/BS_Client.cpp88
-rw-r--r--apps/drwho/BS_Client.h46
-rw-r--r--apps/drwho/BS_Server.cpp116
-rw-r--r--apps/drwho/BS_Server.h47
-rw-r--r--apps/drwho/Binary_Search.cpp79
-rw-r--r--apps/drwho/Binary_Search.h71
-rw-r--r--apps/drwho/CM_Client.cpp139
-rw-r--r--apps/drwho/CM_Client.h51
-rw-r--r--apps/drwho/CM_Server.cpp104
-rw-r--r--apps/drwho/CM_Server.h39
-rw-r--r--apps/drwho/ChangeLog250
-rw-r--r--apps/drwho/Comm_Manager.h39
-rw-r--r--apps/drwho/Drwho_Node.cpp99
-rw-r--r--apps/drwho/Drwho_Node.h52
-rw-r--r--apps/drwho/File_Manager.cpp173
-rw-r--r--apps/drwho/File_Manager.h57
-rw-r--r--apps/drwho/HT_Client.cpp35
-rw-r--r--apps/drwho/HT_Client.h31
-rw-r--r--apps/drwho/HT_Server.cpp36
-rw-r--r--apps/drwho/HT_Server.h32
-rw-r--r--apps/drwho/Hash_Table.cpp73
-rw-r--r--apps/drwho/Hash_Table.h45
-rw-r--r--apps/drwho/Makefile750
-rw-r--r--apps/drwho/Multicast_Manager.cpp177
-rw-r--r--apps/drwho/Multicast_Manager.h56
-rw-r--r--apps/drwho/Options.cpp154
-rw-r--r--apps/drwho/Options.h66
-rw-r--r--apps/drwho/PMC_All.cpp96
-rw-r--r--apps/drwho/PMC_All.h37
-rw-r--r--apps/drwho/PMC_Flo.cpp120
-rw-r--r--apps/drwho/PMC_Flo.h37
-rw-r--r--apps/drwho/PMC_Ruser.cpp173
-rw-r--r--apps/drwho/PMC_Ruser.h40
-rw-r--r--apps/drwho/PMC_Usr.cpp112
-rw-r--r--apps/drwho/PMC_Usr.h38
-rw-r--r--apps/drwho/PMS_All.cpp93
-rw-r--r--apps/drwho/PMS_All.h35
-rw-r--r--apps/drwho/PMS_Flo.cpp71
-rw-r--r--apps/drwho/PMS_Flo.h35
-rw-r--r--apps/drwho/PMS_Ruser.cpp127
-rw-r--r--apps/drwho/PMS_Ruser.h37
-rw-r--r--apps/drwho/PMS_Usr.cpp78
-rw-r--r--apps/drwho/PMS_Usr.h35
-rw-r--r--apps/drwho/PM_Client.cpp136
-rw-r--r--apps/drwho/PM_Client.h45
-rw-r--r--apps/drwho/PM_Server.cpp81
-rw-r--r--apps/drwho/PM_Server.h41
-rw-r--r--apps/drwho/Protocol_Manager.cpp84
-rw-r--r--apps/drwho/Protocol_Manager.h58
-rw-r--r--apps/drwho/Protocol_Record.cpp96
-rw-r--r--apps/drwho/Protocol_Record.h49
-rw-r--r--apps/drwho/README308
-rw-r--r--apps/drwho/Rwho_DB_Manager.cpp122
-rw-r--r--apps/drwho/Rwho_DB_Manager.h52
-rw-r--r--apps/drwho/SL_Client.cpp15
-rw-r--r--apps/drwho/SL_Client.h33
-rw-r--r--apps/drwho/SL_Server.cpp25
-rw-r--r--apps/drwho/SL_Server.h34
-rw-r--r--apps/drwho/SML_Client.cpp36
-rw-r--r--apps/drwho/SML_Client.h36
-rw-r--r--apps/drwho/SML_Server.cpp11
-rw-r--r--apps/drwho/SML_Server.h29
-rw-r--r--apps/drwho/SMR_Client.cpp21
-rw-r--r--apps/drwho/SMR_Client.h29
-rw-r--r--apps/drwho/SMR_Server.cpp17
-rw-r--r--apps/drwho/SMR_Server.h29
-rw-r--r--apps/drwho/SM_Client.cpp73
-rw-r--r--apps/drwho/SM_Client.h38
-rw-r--r--apps/drwho/SM_Server.cpp67
-rw-r--r--apps/drwho/SM_Server.h36
-rw-r--r--apps/drwho/Search_Struct.cpp22
-rw-r--r--apps/drwho/Search_Struct.h41
-rw-r--r--apps/drwho/Select_Manager.h30
-rw-r--r--apps/drwho/Single_Lookup.cpp29
-rw-r--r--apps/drwho/Single_Lookup.h39
-rw-r--r--apps/drwho/client.cpp63
-rw-r--r--apps/drwho/global.h52
-rw-r--r--apps/drwho/server.cpp111
-rw-r--r--apps/gperf/COPYING340
-rw-r--r--apps/gperf/ChangeLog1840
-rw-r--r--apps/gperf/Makefile28
-rw-r--r--apps/gperf/Makefile.am26
-rw-r--r--apps/gperf/Makefile.bor7
-rw-r--r--apps/gperf/README29
-rw-r--r--apps/gperf/gperf.123
-rw-r--r--apps/gperf/gperf.info1130
-rw-r--r--apps/gperf/gperf.texi1188
-rwxr-xr-xapps/gperf/mdate-sh92
-rw-r--r--apps/gperf/src/Bool_Array.cpp105
-rw-r--r--apps/gperf/src/Bool_Array.h76
-rw-r--r--apps/gperf/src/Gen_Perf.cpp454
-rw-r--r--apps/gperf/src/Gen_Perf.h81
-rw-r--r--apps/gperf/src/Hash_Table.cpp114
-rw-r--r--apps/gperf/src/Hash_Table.h66
-rw-r--r--apps/gperf/src/Iterator.cpp97
-rw-r--r--apps/gperf/src/Iterator.h80
-rw-r--r--apps/gperf/src/Key_List.cpp1929
-rw-r--r--apps/gperf/src/Key_List.h173
-rw-r--r--apps/gperf/src/List_Node.cpp129
-rw-r--r--apps/gperf/src/List_Node.h80
-rw-r--r--apps/gperf/src/Makefile224
-rw-r--r--apps/gperf/src/Makefile.am40
-rw-r--r--apps/gperf/src/Makefile.bor23
-rw-r--r--apps/gperf/src/Options.cpp864
-rw-r--r--apps/gperf/src/Options.h190
-rw-r--r--apps/gperf/src/Vectors.cpp36
-rw-r--r--apps/gperf/src/Vectors.h49
-rw-r--r--apps/gperf/src/Version.cpp30
-rw-r--r--apps/gperf/src/gperf.cpp83
-rw-r--r--apps/gperf/src/gperf.dsp219
-rw-r--r--apps/gperf/src/gperf.dsw44
-rw-r--r--apps/gperf/src/gperf_lib.dsp684
-rw-r--r--apps/gperf/tests/Makefile116
-rw-r--r--apps/gperf/tests/Makefile.am115
-rw-r--r--apps/gperf/tests/ada-pred.exp54
-rw-r--r--apps/gperf/tests/ada-res.exp63
-rw-r--r--apps/gperf/tests/ada.gperf63
-rw-r--r--apps/gperf/tests/adadefs.gperf54
-rw-r--r--apps/gperf/tests/c++-res.exp73
-rw-r--r--apps/gperf/tests/c++.gperf73
-rw-r--r--apps/gperf/tests/c-parse.gperf56
-rw-r--r--apps/gperf/tests/c.exp32
-rw-r--r--apps/gperf/tests/c.gperf32
-rw-r--r--apps/gperf/tests/corba.exp36
-rw-r--r--apps/gperf/tests/corba.gperf36
-rw-r--r--apps/gperf/tests/gpc.gperf48
-rw-r--r--apps/gperf/tests/gplus.gperf76
-rw-r--r--apps/gperf/tests/idl.exp9
-rw-r--r--apps/gperf/tests/idl.gperf9
-rw-r--r--apps/gperf/tests/irc.gperf63
-rw-r--r--apps/gperf/tests/makeinfo.gperf116
-rw-r--r--apps/gperf/tests/modula.exp106
-rw-r--r--apps/gperf/tests/modula2.gperf40
-rw-r--r--apps/gperf/tests/modula3.gperf106
-rw-r--r--apps/gperf/tests/pascal.exp36
-rw-r--r--apps/gperf/tests/pascal.gperf36
-rw-r--r--apps/gperf/tests/test-1.exp164
-rw-r--r--apps/gperf/tests/test-2.exp213
-rw-r--r--apps/gperf/tests/test-3.exp195
-rw-r--r--apps/gperf/tests/test-4.exp169
-rw-r--r--apps/gperf/tests/test-5.exp138
-rw-r--r--apps/gperf/tests/test-6.exp90
-rw-r--r--apps/gperf/tests/test-7.exp32
-rw-r--r--apps/gperf/tests/test.cpp34
-rw-r--r--apps/gperf/texinfo.tex4977
-rw-r--r--apps/gperf/version.texi3
596 files changed, 0 insertions, 130474 deletions
diff --git a/apps/Gateway/Gateway/Channel.cpp b/apps/Gateway/Gateway/Channel.cpp
deleted file mode 100644
index 99699a6ee87..00000000000
--- a/apps/Gateway/Gateway/Channel.cpp
+++ /dev/null
@@ -1,710 +0,0 @@
-
-// $Id$
-
-#include "Routing_Entry.h"
-#include "Channel_Connector.h"
-
-// Convenient short-hands.
-#define CO CONDITION
-#define MU MUTEX
-
-// = The total number of bytes sent/received on this channel.
-size_t
-Channel::total_bytes (void)
-{
- return this->total_bytes_;
-}
-
-void
-Channel::total_bytes (size_t bytes)
-{
- this->total_bytes_ += bytes;
-}
-
-Channel::Channel (ROUTING_TABLE *rt,
- Channel_Connector *cc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : ACE_Svc_Handler<CHANNEL_PEER_STREAM, SYNCH> (thr_mgr),
- routing_table_ (rt),
- id_ (-1),
- total_bytes_ (0),
- state_ (Channel::IDLE),
- connector_ (cc),
- timeout_ (1),
- max_timeout_ (Channel::MAX_RETRY_TIMEOUT),
- socket_queue_size_ (socket_queue_size)
-{
-}
-
-// Set the associated channel.
-
-void
-Channel::active (int a)
-{
- this->state (a == 0 ? Channel::IDLE : Channel::ESTABLISHED);
-}
-
-// Get the associated channel.
-
-int
-Channel::active (void)
-{
- return this->state () == Channel::ESTABLISHED;
-}
-
-// Set the direction.
-
-void
-Channel::direction (char d)
-{
- this->direction_ = d;
-}
-
-// Get the direction.
-
-char
-Channel::direction (void)
-{
- return this->direction_;
-}
-
-// Sets the timeout delay.
-
-void
-Channel::timeout (int to)
-{
- if (to > this->max_timeout_)
- to = this->max_timeout_;
-
- this->timeout_ = to;
-}
-
-// Recalculate the current retry timeout delay using exponential
-// backoff. Returns the original timeout (i.e., before the
-// recalculation).
-
-int
-Channel::timeout (void)
-{
- int old_timeout = this->timeout_;
- this->timeout_ *= 2;
-
- if (this->timeout_ > this->max_timeout_)
- this->timeout_ = this->max_timeout_;
-
- return old_timeout;
-}
-
-// Sets the max timeout delay.
-
-void
-Channel::max_timeout (int mto)
-{
- this->max_timeout_ = mto;
-}
-
-// Gets the max timeout delay.
-
-int
-Channel::max_timeout (void)
-{
- return this->max_timeout_;
-}
-
-// Restart connection asynchronously when timeout occurs.
-
-int
-Channel::handle_timeout (const ACE_Time_Value &, const void *)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%t) attempting to reconnect Channel %d with timeout = %d\n",
- this->id (), this->timeout_));
- return this->connector_->initiate_connection (this, ACE_Synch_Options::asynch);
-}
-
-// Restart connection (blocking_semantics dicates whether we
-// restart synchronously or asynchronously).
-
-int
-Channel::reinitiate_connection (void)
-{
- // Skip over deactivated descriptors.
- if (this->get_handle () != -1)
- {
- // Make sure to close down peer to reclaim descriptor.
- this->peer ().close ();
-
-#if 0
-// if (this->state () == FAILED)
-// {
- // Reinitiate timeout to improve reconnection time.
-// this->timeout (1);
-#endif
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) scheduling reinitiation of Channel %d\n",
- this->id ()));
-
- // Reschedule ourselves to try and connect again.
- if (ACE_Service_Config::reactor ()->schedule_timer (this, 0,
- this->timeout ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "schedule_timer"), -1);
- }
- return 0;
-}
-
-// Handle shutdown of the Channel object.
-
-int
-Channel::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- ACE_DEBUG ((LM_DEBUG, "(%t) shutting down Channel %d on handle %d\n",
- this->id (), this->get_handle ()));
-
- return this->reinitiate_connection ();
-}
-
-// Set the state of the channel.
-
-void
-Channel::state (Channel::State s)
-{
- this->state_ = s;
-}
-
-// Perform the first-time initiation of a connection to the peer.
-
-int
-Channel::initialize_connection (void)
-{
- this->state_ = Channel::ESTABLISHED;
-
- // Restart the timeout to 1.
- this->timeout (1);
-
-#if defined (ASSIGN_ROUTING_ID)
- // Action that sends the route id to the peerd.
-
- CONN_ID id = htons (this->id ());
-
- ssize_t n = this->peer ().send ((const void *) &id, sizeof id);
-
- if (n != sizeof id)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- n == 0 ? "gatewayd has closed down unexpectedly" : "send"), -1);
-#endif /* ASSIGN_ROUTING_ID */
- return 0;
-}
-
-// Set the size of the socket queue.
-
-void
-Channel::socket_queue_size (void)
-{
- if (this->socket_queue_size_ > 0)
- {
- int option = this->direction_ == 'I' ? SO_RCVBUF : SO_SNDBUF;
-
- if (this->peer ().set_option (SOL_SOCKET, option,
- &this->socket_queue_size_, sizeof (int)) == -1)
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "set_option"));
- }
-}
-
-// Upcall from the ACE_Acceptor::handle_input() that
-// delegates control to our application-specific Channel.
-
-int
-Channel::open (void *a)
-{
- ACE_DEBUG ((LM_DEBUG, "(%t) Channel's fd = %d\n", this->peer ().get_handle ()));
-
- // Set the size of the socket queue.
- this->socket_queue_size ();
-
- // Turn on non-blocking I/O.
- if (this->peer ().enable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- // Call down to the base class to activate and register this handler.
- if (this->ACE_Svc_Handler<CHANNEL_PEER_STREAM, SYNCH>::open (a) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "activate"), -1);
-
- return this->initialize_connection ();
-}
-
-// Return the current state of the channel.
-
-Channel::State
-Channel::state (void)
-{
- return this->state_;
-}
-
-void
-Channel::id (CONN_ID id)
-{
- this->id_ = id;
-}
-
-CONN_ID
-Channel::id (void)
-{
- return this->id_;
-}
-
-// Set the peer's address information.
-int
-Channel::bind (const ACE_INET_Addr &remote_addr,
- const ACE_INET_Addr &local_addr,
- CONN_ID id)
-{
- this->remote_addr_ = remote_addr;
- this->local_addr_ = local_addr;
- this->id_ = id;
- return 0;
-}
-
-ACE_INET_Addr &
-Channel::remote_addr (void)
-{
- return this->remote_addr_;
-}
-
-ACE_INET_Addr &
-Channel::local_addr (void)
-{
- return this->local_addr_;
-}
-
-// Constructor sets the routing table pointer.
-
-Output_Channel::Output_Channel (ROUTING_TABLE *rt,
- Channel_Connector *cc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : Channel (rt, cc, thr_mgr, socket_queue_size)
-{
- this->direction_ = 'O';
- this->msg_queue ()->high_water_mark (Output_Channel::QUEUE_SIZE);
-}
-
-// This method should be called only when the peer shuts down
-// unexpectedly. This method simply marks the Channel as
-// having failed so that handle_close () can reconnect.
-
-int
-Output_Channel::handle_input (ACE_HANDLE)
-{
- char buf[1];
-
- this->state (Channel::FAILED);
-
- switch (this->peer ().recv (buf, sizeof buf))
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer has failed unexpectedly for Output Channel %d\n",
- this->id ()), -1);
- /* NOTREACHED */
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer has shutdown unexpectedly for Output Channel %d\n",
- this->id ()), -1);
- /* NOTREACHED */
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer is sending input on Output Channel %d\n",
- this->id ()), -1);
- /* NOTREACHED */
- }
-}
-
-int
-Output_Channel::svc (void)
-{
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) svc should not be called on Output_Channel!\n"), -1);
-}
-
-// Perform a non-blocking put() of message MB. If we are unable to
-// send the entire message the remainder is re-queued at the *front* of
-// the Message_List.
-
-int
-Output_Channel::nonblk_put (ACE_Message_Block *mb)
-{
- // Try to send the message. If we don't send it all (e.g., due to
- // flow control), then re-queue the remainder at the head of the
- // Message_List and ask the ACE_Reactor to inform us (via
- // handle_output()) when it is possible to try again.
-
- ssize_t n;
-
- if ((n = this->send_peer (mb)) == -1)
- {
- // Things have gone wrong, let's try to close down and set up a new reconnection.
- this->state (Channel::FAILED);
- this->handle_close ();
- return -1;
- }
- else if (errno == EWOULDBLOCK) // Didn't manage to send everything.
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) queueing activated on handle %d to routing id %d\n",
- this->get_handle (), this->id ()));
-
- // ACE_Queue in *front* of the list to preserve order.
- if (this->msg_queue ()->enqueue_head (mb, (ACE_Time_Value *) &ACE_Time_Value::zero) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enqueue_head"), -1);
-
- // Tell ACE_Reactor to call us back when we can send again.
- else if (ACE_Service_Config::reactor ()->
- schedule_wakeup (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "schedule_wakeup"), -1);
- return 0;
- }
- else
- return n;
-}
-
-int
-Output_Channel::send_peer (ACE_Message_Block *mb)
-{
- ssize_t n;
- size_t len = mb->length ();
-
- if ((n = this->peer ().send (mb->rd_ptr (), len)) <= 0)
- return errno == EWOULDBLOCK ? 0 : n;
- else if (n < len)
- // Re-adjust pointer to skip over the part we did send.
- mb->rd_ptr (n);
- else /* if (n == length) */
- {
- // The whole message is sent, we can now safely deallocate the buffer.
- // Note that this should decrement a reference count...
- delete mb;
- errno = 0;
- }
- this->total_bytes (n);
- return n;
-}
-
-// Finish sending a message when flow control conditions abate.
-// This method is automatically called by the ACE_Reactor.
-
-int
-Output_Channel::handle_output (ACE_HANDLE)
-{
- ACE_Message_Block *mb = 0;
- int status = 0;
-
- ACE_DEBUG ((LM_DEBUG, "(%t) in handle_output on handle %d\n", this->get_handle ()));
- // The list had better not be empty, otherwise there's a bug!
-
- if (this->msg_queue ()->dequeue_head (mb, (ACE_Time_Value *) &ACE_Time_Value::zero) != -1)
- {
- switch (this->nonblk_put (mb))
- {
- case 0: // Partial send.
- ACE_ASSERT (errno == EWOULDBLOCK);
- // Didn't write everything this time, come back later...
- break;
-
- case -1:
- // Caller is responsible for freeing a ACE_Message_Block if failures occur.
- delete mb;
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "transmission failure"));
-
- /* FALLTHROUGH */
- default: // Sent the whole thing.
-
- // If we succeed in writing the entire message (or we did not fail
- // due to EWOULDBLOCK) then check if there are more messages on the Message_List.
- // If there aren't, tell the ACE_Reactor not to notify us anymore (at least
- // until there are new messages queued up).
-
- if (this->msg_queue ()->is_empty ())
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) queueing deactivated on handle %d to routing id %d\n",
- this->get_handle (), this->id ()));
-
-
- if (ACE_Service_Config::reactor ()->
- cancel_wakeup (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "cancel_wakeup"));
- }
- }
- }
- else
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "dequeue_head"));
- return 0;
-}
-
-// Send a message to a peer (may queue if necessary).
-
-int
-Output_Channel::put (ACE_Message_Block *mb, ACE_Time_Value *)
-{
- if (this->msg_queue ()->is_empty ())
- // Try to send the message *without* blocking!
- return this->nonblk_put (mb);
- else
- // If we have queued up messages due to flow control
- // then just enqueue and return.
- return this->msg_queue ()->enqueue_tail (mb, (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-// Constructor sets the routing table pointer and the connector pointer.
-
-Input_Channel::Input_Channel (ROUTING_TABLE *rt,
- Channel_Connector *cc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : msg_frag_ (0),
- Channel (rt, cc, thr_mgr, socket_queue_size)
-{
- this->direction_ = 'I';
- this->msg_queue ()->high_water_mark (0);
-}
-
-int
-Input_Channel::put (ACE_Message_Block *, ACE_Time_Value *)
-{
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) put should not be called on Input_Channel!\n"), -1);
-}
-
-int
-Input_Channel::svc (void)
-{
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) svc should not be called on Input_Channel!\n"), -1);
-}
-
-// Receive a Peer message from peerd. Handles fragmentation.
-//
-// The routing message returned from recv_peer consists of two parts:
-// 1. The Address part, contains the virtual routing id.
-// 2. The Data part, which contains the actual data to be routed.
-//
-// The reason for having two parts is to shield the higher layers
-// of software from knowledge of the message structure.
-
-int
-Input_Channel::recv_peer (ACE_Message_Block *&route_addr)
-{
- Peer_Message *peer_msg;
- size_t len;
- ssize_t n = 0;
- ssize_t m = 0;
- size_t offset = 0;
-
- if (this->msg_frag_ == 0)
- // No existing fragment...
- ACE_NEW_RETURN (this->msg_frag_,
- ACE_Message_Block (sizeof (Peer_Message)),
- -1);
-
- peer_msg = (Peer_Message *) this->msg_frag_->rd_ptr ();
-
- const ssize_t HEADER_SIZE = sizeof (Peer_Header);
- ssize_t header_bytes_left_to_read = HEADER_SIZE - this->msg_frag_->length ();
-
- if (header_bytes_left_to_read > 0)
- {
- n = this->peer ().recv (this->msg_frag_->wr_ptr (), header_bytes_left_to_read);
-
- if (n == -1 /* error */
- || n == 0 /* EOF */)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "Recv error during header read "));
- ACE_DEBUG ((LM_DEBUG, "attempted to read %d\n", header_bytes_left_to_read));
- delete this->msg_frag_;
- this->msg_frag_ = 0;
- return n;
- }
-
- // Bump the write pointer by the amount read.
- this->msg_frag_->wr_ptr (n);
-
- // At this point we may or may not have the ENTIRE header.
- if (this->msg_frag_->length () < HEADER_SIZE)
- {
- ACE_DEBUG ((LM_DEBUG, "Partial header received: only %d bytes\n",
- this->msg_frag_->length ()));
- // Notify the caller that we didn't get an entire message.
- errno = EWOULDBLOCK;
- return -1;
- }
- }
-
- // At this point there is a complete, valid header in msg_frag_
- len = sizeof peer_msg->buf_ + HEADER_SIZE - this->msg_frag_->length ();
-
- // Try to receive the remainder of the message
-
- switch (m = this->peer ().recv (peer_msg->buf_ + offset, len))
- {
- case -1:
- if (errno == EWOULDBLOCK)
- {
- // This shouldn't happen since the ACE_Reactor
- // just triggered us to handle pending I/O!
- ACE_DEBUG ((LM_DEBUG, "(%t) unexpected recv failure\n"));
- errno = EWOULDBLOCK;
- return -1;
- }
- else
- /* FALLTHROUGH */;
-
- case 0: // Premature EOF.
- delete this->msg_frag_;
- this->msg_frag_ = 0;
- return 0;
-
- default:
- if (m != len)
- // Re-adjust pointer to skip over the part we've read.
- {
- this->msg_frag_->wr_ptr (m);
- errno = EWOULDBLOCK;
- return -1; // Inform caller that we didn't get the whole message.
- }
- else
- {
- // Set the write pointer at 1 past the end of the message.
- this->msg_frag_->wr_ptr (m);
-
- // Set the read pointer to the beginning of the message.
- this->msg_frag_->rd_ptr (this->msg_frag_->base ());
-
- // Allocate a routing message header and chain the data portion
- // onto its continuation field.
- ACE_NEW_RETURN (route_addr,
- ACE_Message_Block (sizeof (Peer_Addr),
- ACE_Message_Block::MB_PROTO,
- this->msg_frag_),
- -1);
-
- Peer_Addr peer_addr (this->id (), peer_msg->header_.routing_id_, 0);
- // Copy the routing address from the Peer_Message into routing_addr.
- route_addr->copy ((char *) &peer_addr, sizeof (Peer_Addr));
-
- // Reset the pointer to indicate we've got an entire message.
- this->msg_frag_ = 0;
- }
- this->total_bytes (m + n);
-#if defined (VERBOSE)
- ACE_DEBUG ((LM_DEBUG, "(%t) channel id = %d, route id = %d, len = %d, payload = %*s",
- peer_addr.conn_id_, peer_msg->header_.routing_id_, peer_msg->header_.len_,
- peer_msg->header_.len_, peer_msg->buf_));
-#else
- ACE_DEBUG ((LM_DEBUG, "(%t) route id = %d, cur len = %d, total bytes read = %d\n",
- peer_msg->header_.routing_id_, peer_msg->header_.len_, this->total_bytes ()));
-#endif
- return m + n;
- }
-}
-
-// Receive various types of input (e.g., Peer message from the
-// gatewayd, as well as stdio).
-
-int
-Input_Channel::handle_input (ACE_HANDLE)
-{
- ACE_Message_Block *route_addr = 0;
-
- switch (this->recv_peer (route_addr))
- {
- case 0:
- // Note that a peer should never initiate a shutdown.
- this->state (Channel::FAILED);
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer has closed down unexpectedly for Input Channel %d\n",
- this->id ()), -1);
- /* NOTREACHED */
- case -1:
- if (errno == EWOULDBLOCK)
- // A short-read, we'll come back and finish it up later on!
- return 0;
- else // A weird problem occurred, shut down and start again.
- {
- this->state (Channel::FAILED);
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p for Input Channel %d\n",
- "Peer has failed unexpectedly",
- this->id ()), -1);
- }
- /* NOTREACHED */
- default:
- return this->route_message (route_addr);
- }
-}
-
-// Route a message to its appropriate destination.
-
-int
-Input_Channel::route_message (ACE_Message_Block *route_addr)
-{
- // We got a valid message, so determine its virtual routing id,
- // which is stored in the first of the two message blocks chained together.
-
- Peer_Addr *routing_key = (Peer_Addr *) route_addr->rd_ptr ();
-
- // Skip over the address portion.
- const ACE_Message_Block *const data = route_addr->cont ();
-
- // RE points to the routing entry located for this routing id.
- Routing_Entry *re = 0;
-
- if (this->routing_table_->find (*routing_key, re) != -1)
- {
- // Check to see if there are any destinations.
- if (re->destinations ()->size () == 0)
- ACE_DEBUG ((LM_WARNING,
- "there are no active destinations for this message currently\n"));
-
- else // There are destinations, so forward the message.
- {
- Routing_Entry::ENTRY_SET *esp = re->destinations ();
- Routing_Entry::ENTRY_ITERATOR si (*esp);
-
- for (Channel **channel = 0; si.next (channel) != 0; si.advance ())
- {
- // Only process active channels.
- if ((*channel)->active ())
- {
- // Clone the message portion (should be doing reference counting here...)
- ACE_Message_Block *newmsg = data->clone ();
-
- ACE_DEBUG ((LM_DEBUG, "(%t) sending to peer %d\n", (*channel)->id ()));
-
- if ((*channel)->put (newmsg) == -1)
- {
- if (errno == EWOULDBLOCK) // The queue has filled up!
- ACE_ERROR ((LM_ERROR, "(%t) %p\n",
- "gateway is flow controlled, so we're dropping messages"));
- else
- ACE_ERROR ((LM_ERROR, "(%t) %p transmission error to route %d\n",
- "put", (*channel)->id ()));
-
- // Caller is responsible for freeing a ACE_Message_Block if failures occur.
- delete newmsg;
- }
- }
- }
- // Will become superfluous once we have reference counting...
- delete route_addr;
- return 0;
- }
- }
- delete route_addr;
- // Failure return.
- ACE_ERROR ((LM_DEBUG, "(%t) find failed on conn id = %d, logical id = %d, payload = %d\n",
- routing_key->conn_id_, routing_key->logical_id_, routing_key->payload_));
- return 0;
-}
-
-#if defined (ACE_TEMPLATES_REQUIRE_SPECIALIZATION)
-template class ACE_Map_Manager<Peer_Addr, Routing_Entry *, MUTEX>;
-template class ACE_Map_Iterator<Peer_Addr, Routing_Entry *, MUTEX>;
-template class ACE_Map_Entry<Peer_Addr, Routing_Entry *>;
-#endif /* ACE_TEMPLATES_REQUIRE_SPECIALIZATION */
diff --git a/apps/Gateway/Gateway/Channel.h b/apps/Gateway/Gateway/Channel.h
deleted file mode 100644
index 339716bc55a..00000000000
--- a/apps/Gateway/Gateway/Channel.h
+++ /dev/null
@@ -1,280 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Channel.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_CHANNEL)
-#define _CHANNEL
-
-#include "ace/Service_Config.h"
-#include "ace/INET_Addr.h"
-#include "ace/SOCK_Connector.h"
-#include "ace/Svc_Handler.h"
-#include "Routing_Table.h"
-#include "Routing_Entry.h"
-#include "Peer_Message.h"
-
-// The following typedefs are used in order to parameterize the
-// synchronization policies without changing the source code!
-
-// If we don't have threads then use the single-threaded synchronization.
-#if !defined (ACE_HAS_THREADS)
-#define SYNCH ACE_NULL_SYNCH
-typedef ACE_Null_Mutex MUTEX;
-#define CHANNEL_PEER_STREAM ACE_SOCK_STREAM
-#define CHANNEL_PEER_CONNECTOR ACE_SOCK_CONNECTOR
-#else /* ACE_HAS_THREADS */
-
-// Select communication mechanisms.
-#if 0 // defined (ACE_HAS_TLI)
-// Note that due to inconsistencies between the semantics of sockets
-// and TLI with respect to establishing non-blocking connections it's
-// not a good idea to use TLI...
-#include "ace/TLI_Connector.h"
-#define CHANNEL_PEER_STREAM ACE_TLI_STREAM
-#define CHANNEL_PEER_CONNECTOR ACE_TLI_CONNECTOR
-#else
-#define CHANNEL_PEER_STREAM ACE_SOCK_STREAM
-#define CHANNEL_PEER_CONNECTOR ACE_SOCK_CONNECTOR
-#endif /* 0 */
-
-// Note that we only need to make the ACE_Task thread-safe if we
-// are using the multi-threaded Thr_Output_Channel...
-#if defined (USE_OUTPUT_MT)
-#define SYNCH ACE_MT_SYNCH
-#else
-#define SYNCH ACE_NULL_SYNCH
-#endif /* USE_OUTPUT_MT || USE_INPUT_MT */
-
-// Note that we only need to make the ACE_Map_Manager thread-safe if
-// we are using the multi-threaded Thr_Input_Channel...
-#if defined (USE_INPUT_MT)
-typedef ACE_RW_Mutex MUTEX;
-#else
-typedef ACE_Null_Mutex MUTEX;
-#endif /* USE_INPUT_MT */
-#endif /* ACE_HAS_THREADS */
-
-// Typedef for the routing table.
-typedef Routing_Table<Peer_Addr, Routing_Entry, MUTEX>
- ROUTING_TABLE;
-
-// Forward declaration.
-class Channel_Connector;
-
-class Channel : public ACE_Svc_Handler<CHANNEL_PEER_STREAM, SYNCH>
- // = TITLE
- // Channel contains info about connection state and addressing.
- //
- // = DESCRIPTION
- // The Channel classes process messages sent from the peers to the
- // gateway. These classes works as follows:
- //
- // 1. Channel_Connector creates a number of connections with the set of
- // peers specified in a configuration file.
- //
- // 2. For each peer that connects successfully, Channel_Connector
- // creates an Channel object. Each object assigns a unique routing
- // id to its associated peer. The Channels are used by gatewayd
- // that to receive, route, and forward messages from source peer(s)
- // to destination peer(s).
-{
-public:
- Channel (ROUTING_TABLE *,
- Channel_Connector *,
- ACE_Thread_Manager * = 0,
- int socket_queue_size = 0);
-
- virtual int open (void * = 0);
- // Initialize and activate a single-threaded Channel (called by
- // ACE_Connector::handle_output()).
-
- int bind (const ACE_INET_Addr &remote_addr,
- const ACE_INET_Addr &local_addr,
- CONN_ID);
- // Set the peer's addressing and routing information.
-
- ACE_INET_Addr &remote_addr (void);
- // Returns the peer's routing address.
-
- ACE_INET_Addr &local_addr (void);
- // Returns our local address.
-
- // = Set/get routing id.
- CONN_ID id (void);
- void id (CONN_ID);
-
- // = Set/get the current state of the Channel.
- enum State
- {
- IDLE = 1, // Prior to initialization.
- CONNECTING, // During connection establishment.
- ESTABLISHED, // Channel is established and active.
- DISCONNECTING, // Channel is in the process of connecting.
- FAILED // Channel has failed.
- };
-
- // = Set/get the current state.
- State state (void);
- void state (State);
-
- // = Set/get the current retry timeout delay.
- int timeout (void);
- void timeout (int);
-
- // = Set/get the maximum retry timeout delay.
- int max_timeout (void);
- void max_timeout (int);
-
- // = Set/get Channel activity status.
- int active (void);
- void active (int);
-
- // = Set/get direction (necessary for error checking).
- char direction (void);
- void direction (char);
-
- // = The total number of bytes sent/received on this channel.
- size_t total_bytes (void);
- void total_bytes (size_t bytes);
- // Increment count by <bytes>.
-
- virtual int handle_timeout (const ACE_Time_Value &, const void *arg);
- // Perform timer-based Channel reconnection.
-
-protected:
- enum
- {
- MAX_RETRY_TIMEOUT = 300 // 5 minutes is the maximum timeout.
- };
-
- int initialize_connection (void);
- // Perform the first-time initiation of a connection to the peer.
-
- int reinitiate_connection (void);
- // Reinitiate a connection asynchronously when peers fail.
-
- void socket_queue_size (void);
- // Set the socket queue size.
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::RWE_MASK);
- // Perform Channel termination.
-
- ROUTING_TABLE *routing_table_;
- // Pointer to table that maps a Peer_Addr
- // to a Set of Channel *'s for output.
-
- ACE_INET_Addr remote_addr_;
- // Address of peer.
-
- ACE_INET_Addr local_addr_;
- // Address of us.
-
- CONN_ID id_;
- // The assigned routing ID of this entry.
-
- size_t total_bytes_;
- // The total number of bytes sent/received on this channel.
-
- State state_;
- // The current state of the channel.
-
- Channel_Connector *connector_;
- // Back pointer to Channel_Connector to reestablish broken
- // connections.
-
- int timeout_;
- // Amount of time to wait between reconnection attempts.
-
- int max_timeout_;
- // Maximum amount of time to wait between reconnection attempts.
-
- char direction_;
- // Indicates which direction data flows through the channel ('O' ==
- // output and 'I' == input).
-
- int socket_queue_size_;
- // Size of the socket queue (0 means "use default").
-};
-
-class Input_Channel : public Channel
- // = TITLE
- // Handle reception of Peer messages arriving as events.
-{
-public:
- Input_Channel (ROUTING_TABLE *,
- Channel_Connector *,
- ACE_Thread_Manager * = 0,
- int socket_queue_size = 0);
- // Constructor sets the routing table pointer.
-
- virtual int handle_input (ACE_HANDLE = ACE_INVALID_HANDLE);
- // Receive and process peer messages.
-
-protected:
- virtual int recv_peer (ACE_Message_Block *&);
- // Receive a message from a peer.
-
- int route_message (ACE_Message_Block *);
- // Action that receives messages from peerd.
-
- ACE_Message_Block *msg_frag_;
- // Keep track of message fragment to handle non-blocking recv's from
- // peers.
-
- virtual int svc (void);
- // This method is not used since we are single-threaded.
-
-private:
- virtual int put (ACE_Message_Block *, ACE_Time_Value *tv = 0);
- // This methods should not be called to handle input.
-};
-
-class Output_Channel : public Channel
- // = TITLE
- // Handle transmission of messages to other Peers using a
- // single-threaded approach.
-{
-public:
- Output_Channel (ROUTING_TABLE *,
- Channel_Connector *,
- ACE_Thread_Manager * = 0,
- int socket_queue_size = 0);
-
- virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0);
- // Send a message to a gateway (may be queued if necessary).
-
-protected:
- // = We'll allow up to 16 megabytes to be queued per-output
- // channel.
- enum {QUEUE_SIZE = 1024 * 1024 * 16};
-
- virtual int handle_input (ACE_HANDLE);
- // Receive and process shutdowns from peer.
-
- virtual int handle_output (ACE_HANDLE);
- // Finish sending a message when flow control conditions abate.
-
- int nonblk_put (ACE_Message_Block *mb);
- // Perform a non-blocking put().
-
- virtual int send_peer (ACE_Message_Block *);
- // Send a message to a peer.
-
- virtual int svc (void);
- // This method is not used since we are single-threaded.
-};
-
-#endif /* _CHANNEL */
diff --git a/apps/Gateway/Gateway/Channel_Connector.cpp b/apps/Gateway/Gateway/Channel_Connector.cpp
deleted file mode 100644
index a5394e8b013..00000000000
--- a/apps/Gateway/Gateway/Channel_Connector.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-#include "Channel_Connector.h"
-// $Id$
-
-
-Channel_Connector::Channel_Connector (void)
-{
-}
-
-// Override the connection-failure method to add timer support.
-// Note that these timers perform "expoential backoff" to
-// avoid rapidly trying to reestablish connections when a link
-// goes down.
-
-int
-Channel_Connector::handle_close (ACE_HANDLE sd, ACE_Reactor_Mask)
-{
- ACE_Connector<Channel, CHANNEL_PEER_CONNECTOR>::AST *stp = 0;
-
- // Locate the ACE_Svc_Handler corresponding to the socket descriptor.
- if (this->handler_map_.find (sd, stp) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) can't locate channel %d in map, %p\n",
- sd, "find"), -1);
-
- Channel *channel = stp->svc_handler ();
-
- // Schedule a reconnection request at some point in the future
- // (note that channel uses an exponential backoff scheme).
- if (ACE_Service_Config::reactor ()->schedule_timer (channel, 0,
- channel->timeout ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "schedule_timer"), -1);
- return 0;
-}
-
-// Initiate (or reinitiate) a connection to the Channel.
-
-int
-Channel_Connector::initiate_connection (Channel *channel,
- ACE_Synch_Options &synch_options)
-{
- char buf[MAXHOSTNAMELEN];
-
- // Mark ourselves as idle so that the various iterators
- // will ignore us until we are reconnected.
- channel->state (Channel::IDLE);
-
- if (channel->remote_addr ().addr_to_string (buf, sizeof buf) == -1
- || channel->local_addr ().addr_to_string (buf, sizeof buf) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "can't obtain peer's address"), -1);
-
- // Try to connect to the Peer.
-
- if (this->connect (channel, channel->remote_addr (),
- synch_options, channel->local_addr ()) == -1)
- {
- if (errno != EWOULDBLOCK)
- {
- channel->state (Channel::FAILED);
- ACE_DEBUG ((LM_DEBUG, "(%t) %p on address %s\n",
- "connect", buf));
-
- // Reschedule ourselves to try and connect again.
- if (synch_options[ACE_Synch_Options::USE_REACTOR])
- {
- if (ACE_Service_Config::reactor ()->schedule_timer
- (channel, 0, channel->timeout ()) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "schedule_timer"), -1);
- }
- else
- // Failures on synchronous connects are reported as errors
- // so that the caller can decide how to proceed.
- return -1;
- }
- else
- {
- channel->state (Channel::CONNECTING);
- ACE_DEBUG ((LM_DEBUG,
- "(%t) in the process of connecting %s to %s\n",
- synch_options[ACE_Synch_Options::USE_REACTOR]
- ? "asynchronously" : "synchronously", buf));
- }
- }
- else
- {
- channel->state (Channel::ESTABLISHED);
- ACE_DEBUG ((LM_DEBUG, "(%t) connected to %s on %d\n",
- buf, channel->get_handle ()));
- }
- return 0;
-}
diff --git a/apps/Gateway/Gateway/Channel_Connector.h b/apps/Gateway/Gateway/Channel_Connector.h
deleted file mode 100644
index 3e27f37355a..00000000000
--- a/apps/Gateway/Gateway/Channel_Connector.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Channel_Connector.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_CHANNEL_CONNECTOR)
-#define _CHANNEL_CONNECTOR
-
-#include "ace/Connector.h"
-#include "Thr_Channel.h"
-
-class Channel_Connector : public ACE_Connector<Channel, CHANNEL_PEER_CONNECTOR>
- // = TITLE
- // A concrete factory class that setups connections to peerds
- // and produces a new Channel object to do the dirty work...
-{
-public:
- Channel_Connector (void);
-
- // Initiate (or reinitiate) a connection on the Channel.
- int initiate_connection (Channel *,
- ACE_Synch_Options & = ACE_Synch_Options::synch);
-
-protected:
- // Override the connection-failure method to add timer support.
- virtual int handle_close (ACE_HANDLE sd, ACE_Reactor_Mask);
-};
-
-#endif /* _CHANNEL_CONNECTOR */
diff --git a/apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp b/apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp
deleted file mode 100644
index 7a50650d842..00000000000
--- a/apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp
+++ /dev/null
@@ -1,633 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "Event_Channel.h"
-#include "Concrete_Connection_Handlers.h"
-
-ACE_RCSID(Gateway, Concrete_Connection_Handlers, "$Id$")
-
-Consumer_Handler::Consumer_Handler (const Connection_Config_Info &pci)
- : Connection_Handler (pci)
-{
- this->connection_role_ = 'C';
- this->msg_queue ()->high_water_mark (Options::instance ()->max_queue_size ());
-}
-
-// This method should be called only when the Consumer shuts down
-// unexpectedly. This method simply marks the Connection_Handler as
-// having failed so that handle_close () can reconnect.
-
-int
-Consumer_Handler::handle_input (ACE_HANDLE)
-{
- char buf[1];
-
- this->state (Connection_Handler::FAILED);
-
- switch (this->peer ().recv (buf, sizeof buf))
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer has failed unexpectedly for Consumer_Handler %d\n",
- this->connection_id ()),
- -1);
- /* NOTREACHED */
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer has shutdown unexpectedly for Consumer_Handler %d\n",
- this->connection_id ()),
- -1);
- /* NOTREACHED */
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Consumer is erroneously sending input to Consumer_Handler %d\n",
- this->connection_id ()),
- -1);
- /* NOTREACHED */
- }
-}
-
-// Perform a non-blocking put() of event. If we are unable to send
-// the entire event the remainder is re-queued at the *front* of the
-// Event_List.
-
-int
-Consumer_Handler::nonblk_put (ACE_Message_Block *event)
-{
- // Try to send the event. If we don't send it all (e.g., due to
- // flow control), then re-queue the remainder at the head of the
- // Event_List and ask the ACE_Reactor to inform us (via
- // handle_output()) when it is possible to try again.
-
- ssize_t n = this->send (event);
-
- if (n == -1)
- {
- // Things have gone wrong, let's try to close down and set up a
- // new reconnection by calling handle_close().
- this->state (Connection_Handler::FAILED);
- this->handle_close ();
- return -1;
- }
- else if (errno == EWOULDBLOCK) // Didn't manage to send everything.
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) queueing activated on handle %d to routing id %d\n",
- this->get_handle (),
- this->connection_id ()));
-
- // ACE_Queue in *front* of the list to preserve order.
- if (this->msg_queue ()->enqueue_head
- (event, (ACE_Time_Value *) &ACE_Time_Value::zero) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) %p\n",
- "enqueue_head"),
- -1);
-
- // Tell ACE_Reactor to call us back when we can send again.
- else if (ACE_Reactor::instance ()->schedule_wakeup
- (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) %p\n",
- "schedule_wakeup"),
- -1);
- return 0;
- }
- else
- return n;
-}
-
-ssize_t
-Consumer_Handler::send (ACE_Message_Block *event)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%t) sending %d bytes to Consumer %d\n",
- event->length (),
- this->connection_id ()));
-
- ssize_t len = event->length ();
- ssize_t n = this->peer ().send (event->rd_ptr (), len);
-
- if (n <= 0)
- return errno == EWOULDBLOCK ? 0 : n;
- else if (n < len)
- // Re-adjust pointer to skip over the part we did send.
- event->rd_ptr (n);
- else // if (n == length)
- {
- // The whole event is sent, we now decrement the reference count
- // (which deletes itself with it reaches 0).
- event->release ();
- errno = 0;
- }
- this->total_bytes (n);
- return n;
-}
-
-// Finish sending an event when flow control conditions abate.
-// This method is automatically called by the ACE_Reactor.
-
-int
-Consumer_Handler::handle_output (ACE_HANDLE)
-{
- ACE_Message_Block *event = 0;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) in handle_output on handle %d\n",
- this->get_handle ()));
-
- // The list had better not be empty, otherwise there's a bug!
-
- if (this->msg_queue ()->dequeue_head
- (event, (ACE_Time_Value *) &ACE_Time_Value::zero) != -1)
- {
- switch (this->nonblk_put (event))
- {
- case 0: // Partial send.
- ACE_ASSERT (errno == EWOULDBLOCK);
- // Didn't write everything this time, come back later...
- break;
-
- case -1:
- // We are responsible for releasing an ACE_Message_Block if
- // failures occur.
- event->release ();
- ACE_ERROR ((LM_ERROR,
- "(%t) %p\n",
- "transmission failure"));
-
- /* FALLTHROUGH */
- default: // Sent the whole thing.
-
- // If we succeed in writing the entire event (or we did not
- // fail due to EWOULDBLOCK) then check if there are more
- // events on the Message_Queue. If there aren't, tell the
- // ACE_Reactor not to notify us anymore (at least until
- // there are new events queued up).
-
- if (this->msg_queue ()->is_empty ())
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) queueing deactivated on handle %d to routing id %d\n",
- this->get_handle (),
- this->connection_id ()));
-
- if (ACE_Reactor::instance ()->cancel_wakeup
- (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR ((LM_ERROR,
- "(%t) %p\n",
- "cancel_wakeup"));
- }
- }
- }
- else
- ACE_ERROR ((LM_ERROR,
- "(%t) %p\n",
- "dequeue_head"));
- return 0;
-}
-
-// Send an event to a Consumer (may queue if necessary).
-
-int
-Consumer_Handler::put (ACE_Message_Block *event,
- ACE_Time_Value *)
-{
- if (this->msg_queue ()->is_empty ())
- // Try to send the event *without* blocking!
- return this->nonblk_put (event);
- else
- // If we have queued up events due to flow control then just
- // enqueue and return.
- return this->msg_queue ()->enqueue_tail
- (event, (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-Supplier_Handler::Supplier_Handler (const Connection_Config_Info &pci)
- : Connection_Handler (pci),
- msg_frag_ (0)
-{
- this->connection_role_ = 'S';
- this->msg_queue ()->high_water_mark (0);
-}
-
-// Receive an Event from a Supplier. Handles fragmentation.
-//
-// The event returned from recv consists of two parts:
-//
-// 1. The Address part, contains the "virtual" routing id.
-//
-// 2. The Data part, which contains the actual data to be forwarded.
-//
-// The reason for having two parts is to shield the higher layers
-// of software from knowledge of the event structure.
-
-int
-Supplier_Handler::recv (ACE_Message_Block *&forward_addr)
-{
- if (this->msg_frag_ == 0)
- // No existing fragment...
- ACE_NEW_RETURN (this->msg_frag_,
- ACE_Message_Block (sizeof (Event),
- ACE_Message_Block::MB_DATA,
- 0,
- 0,
- 0,
- Options::instance ()->locking_strategy ()),
- -1);
-
- Event *event = (Event *) this->msg_frag_->rd_ptr ();
- ssize_t header_received = 0;
-
- const size_t HEADER_SIZE = sizeof (Event_Header);
- ssize_t header_bytes_left_to_read =
- HEADER_SIZE - this->msg_frag_->length ();
-
- if (header_bytes_left_to_read > 0)
- {
- header_received = this->peer ().recv
- (this->msg_frag_->wr_ptr (), header_bytes_left_to_read);
-
- if (header_received == -1 /* error */
- || header_received == 0 /* EOF */)
- {
- ACE_ERROR ((LM_ERROR, "%p\n",
- "Recv error during header read "));
- ACE_DEBUG ((LM_DEBUG,
- "attempted to read %d\n",
- header_bytes_left_to_read));
- this->msg_frag_ = this->msg_frag_->release ();
- return header_received;
- }
-
- // Bump the write pointer by the amount read.
- this->msg_frag_->wr_ptr (header_received);
-
- // At this point we may or may not have the ENTIRE header.
- if (this->msg_frag_->length () < HEADER_SIZE)
- {
- ACE_DEBUG ((LM_DEBUG,
- "Partial header received: only %d bytes\n",
- this->msg_frag_->length ()));
- // Notify the caller that we didn't get an entire event.
- errno = EWOULDBLOCK;
- return -1;
- }
-
- // Convert the header into host byte order so that we can access
- // it directly without having to repeatedly muck with it...
- event->header_.decode ();
-
- if (event->header_.len_ > ACE_INT32 (sizeof event->data_))
- {
- // This data_ payload is too big!
- errno = EINVAL;
- ACE_DEBUG ((LM_DEBUG,
- "Data payload is too big (%d bytes)\n",
- event->header_.len_));
- return -1;
- }
-
- }
-
- // At this point there is a complete, valid header in Event. Now we
- // need to get the event payload. Due to incomplete reads this may
- // not be the first time we've read in a fragment for this message.
- // We account for this here. Note that the first time in here
- // msg_frag_->wr_ptr() will point to event->data_. Every time we do
- // a successful fragment read, we advance wr_ptr(). Therefore, by
- // subtracting how much we've already read from the
- // event->header_.len_ we complete the data_bytes_left_to_read...
-
- ssize_t data_bytes_left_to_read =
- ssize_t (event->header_.len_ - (msg_frag_->wr_ptr () - event->data_));
-
- ssize_t data_received =
- this->peer ().recv (this->msg_frag_->wr_ptr (), data_bytes_left_to_read);
-
- // Try to receive the remainder of the event.
-
- switch (data_received)
- {
- case -1:
- if (errno == EWOULDBLOCK)
- // This might happen if only the header came through.
- return -1;
- else
- /* FALLTHROUGH */;
-
- case 0: // Premature EOF.
- this->msg_frag_ = this->msg_frag_->release ();
- return 0;
-
- default:
- // Set the write pointer at 1 past the end of the event.
- this->msg_frag_->wr_ptr (data_received);
-
- if (data_received != data_bytes_left_to_read)
- {
- errno = EWOULDBLOCK;
- // Inform caller that we didn't get the whole event.
- return -1;
- }
- else
- {
- // Set the read pointer to the beginning of the event.
- this->msg_frag_->rd_ptr (this->msg_frag_->base ());
-
- // Allocate an event forwarding header and chain the data
- // portion onto its continuation field.
- forward_addr = new ACE_Message_Block (sizeof (Event_Key),
- ACE_Message_Block::MB_PROTO,
- this->msg_frag_,
- 0,
- 0,
- Options::instance ()->locking_strategy ());
- if (forward_addr == 0)
- {
- this->msg_frag_ = this->msg_frag_->release ();
- errno = ENOMEM;
- return -1;
- }
-
- Event_Key event_addr (this->connection_id (),
- event->header_.type_);
- // Copy the forwarding address from the Event_Key into
- // forward_addr.
- forward_addr->copy ((char *) &event_addr, sizeof (Event_Key));
-
- // Reset the pointer to indicate we've got an entire event.
- this->msg_frag_ = 0;
- }
-
- this->total_bytes (data_received + header_received);
- ACE_DEBUG ((LM_DEBUG,
- "(%t) connection id = %d, cur len = %d, total bytes read = %d\n",
- event->header_.connection_id_,
- event->header_.len_,
- data_received + header_received));
- if (Options::instance ()->enabled (Options::VERBOSE))
- ACE_DEBUG ((LM_DEBUG,
- "data_ = %*s\n",
- event->header_.len_ - 2,
- event->data_));
-
- // Encode before returning so that we can set things out in
- // network byte order.
- event->header_.encode ();
- return data_received + header_received;
- }
-}
-
-// Receive various types of input (e.g., Peer event from the
-// gatewayd, as well as stdio).
-
-int
-Supplier_Handler::handle_input (ACE_HANDLE)
-{
- ACE_Message_Block *event_key = 0;
-
- switch (this->recv (event_key))
- {
- case 0:
- // Note that a peer shouldn't initiate a shutdown by closing the
- // connection. Therefore, the peer must have crashed, so we'll
- // need to bail out here and let the higher layers reconnect.
- this->state (Connection_Handler::FAILED);
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer has closed down unexpectedly for Input Connection_Handler %d\n",
- this->connection_id ()),
- -1);
- /* NOTREACHED */
- case -1:
- if (errno == EWOULDBLOCK)
- // A short-read, we'll come back and finish it up later on!
- return 0;
- else // A weird problem occurred, shut down and start again.
- {
- this->state (Connection_Handler::FAILED);
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p for Input Connection_Handler %d\n",
- "Peer has failed unexpectedly",
- this->connection_id ()),
- -1);
- }
- /* NOTREACHED */
- default:
- // Route messages to Consumers.
- return this->process (event_key);
- }
-}
-
-// This delegates to the <Event_Channel> to do the actual processing.
-// Typically, this forwards the event to its appropriate Consumer(s).
-
-int
-Supplier_Handler::process (ACE_Message_Block *event_key)
-{
- return this->event_channel_->put (event_key);
-}
-
-Thr_Consumer_Handler::Thr_Consumer_Handler (const Connection_Config_Info &pci)
- : Consumer_Handler (pci)
-{
-}
-
-// This method should be called only when the Consumer shuts down
-// unexpectedly. This method marks the Connection_Handler as having failed
-// and deactivates the ACE_Message_Queue (to wake up the thread
-// blocked on <dequeue_head> in svc()).
-// Thr_Output_Handler::handle_close () will eventually try to
-// reconnect...
-
-int
-Thr_Consumer_Handler::handle_input (ACE_HANDLE h)
-{
- // Call down to the <Consumer_Handler> to handle this first.
- this->Consumer_Handler::handle_input (h);
-
- ACE_Reactor::instance ()->remove_handler
- (h, ACE_Event_Handler::ALL_EVENTS_MASK | ACE_Event_Handler::DONT_CALL);
-
- // Deactivate the queue while we try to get reconnected.
- this->msg_queue ()->deactivate ();
- return 0;
-}
-
-// Initialize the threaded Consumer_Handler object and spawn a new
-// thread.
-
-int
-Thr_Consumer_Handler::open (void *)
-{
- // Turn off non-blocking I/O.
- if (this->peer ().disable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- // Call back to the <Event_Channel> to complete our initialization.
- else if (this->event_channel_->complete_connection_connection (this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "complete_connection_connection"), -1);
-
- // Register ourselves to receive input events (which indicate that
- // the Consumer has shut down unexpectedly).
- else if (ACE_Reactor::instance ()->register_handler
- (this, ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "register_handler"), -1);
-
- // Reactivate message queue. If it was active then this is the
- // first time in and we need to spawn a thread, otherwise the queue
- // was inactive due to some problem and we've already got a thread.
- else if (this->msg_queue ()->activate () == ACE_Message_Queue<ACE_SYNCH>::WAS_ACTIVE)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n"));
- // Become an active object by spawning a new thread to transmit
- // events to Consumers.
- return this->activate (THR_NEW_LWP | THR_DETACHED);
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n"));
- return 0;
- }
-}
-
-// Queue up an event for transmission (must not block since
-// Supplier_Handlers may be single-threaded).
-
-int
-Thr_Consumer_Handler::put (ACE_Message_Block *mb, ACE_Time_Value *)
-{
- // Perform non-blocking enqueue, i.e., if <msg_queue> is full
- // *don't* block!
- return this->msg_queue ()->enqueue_tail
- (mb, (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-// Transmit events to the peer. Note the simplification resulting
-// from the use of threads, compared with the Reactive solution.
-
-int
-Thr_Consumer_Handler::svc (void)
-{
-
- for (;;)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) Thr_Consumer_Handler's handle = %d\n",
- this->peer ().get_handle ()));
-
- // Since this method runs in its own thread it is OK to block on
- // output.
-
- for (ACE_Message_Block *mb = 0;
- this->msg_queue ()->dequeue_head (mb) != -1;
- )
- if (this->send (mb) == -1)
- ACE_ERROR ((LM_ERROR,
- "(%t) %p\n",
- "send failed"));
-
- ACE_ASSERT (errno == ESHUTDOWN);
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) shutting down threaded Consumer_Handler %d on handle %d\n",
- this->connection_id (),
- this->get_handle ()));
-
- this->peer ().close ();
-
- // Re-establish the connection, using expoential backoff.
- for (this->timeout (1);
- // Default is to reconnect synchronously.
- this->event_channel_->initiate_connection_connection (this) == -1; )
- {
- ACE_Time_Value tv (this->timeout ());
-
- ACE_ERROR ((LM_ERROR,
- "(%t) reattempting connection, sec = %d\n",
- tv.sec ()));
-
- ACE_OS::sleep (tv);
- }
- }
-
- ACE_NOTREACHED (return 0;)
-}
-
-Thr_Supplier_Handler::Thr_Supplier_Handler (const Connection_Config_Info &pci)
- : Supplier_Handler (pci)
-{
-}
-
-int
-Thr_Supplier_Handler::open (void *)
-{
- // Turn off non-blocking I/O.
- if (this->peer ().disable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- // Call back to the <Event_Channel> to complete our initialization.
- else if (this->event_channel_->complete_connection_connection (this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "complete_connection_connection"), -1);
-
- // Reactivate message queue. If it was active then this is the
- // first time in and we need to spawn a thread, otherwise the queue
- // was inactive due to some problem and we've already got a thread.
- else if (this->msg_queue ()->activate () == ACE_Message_Queue<ACE_SYNCH>::WAS_ACTIVE)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n"));
- // Become an active object by spawning a new thread to transmit
- // events to peers.
- return this->activate (THR_NEW_LWP | THR_DETACHED);
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n"));
- return 0;
- }
-}
-
-// Receive events from a Peer in a separate thread (note reuse of
-// existing code!).
-
-int
-Thr_Supplier_Handler::svc (void)
-{
- for (;;)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) Thr_Supplier_Handler's handle = %d\n",
- this->peer ().get_handle ()));
-
- // Since this method runs in its own thread and processes events
- // for one connection it is OK to call down to the
- // <Supplier_Handler::handle_input> method, which blocks on
- // input.
-
- while (this->Supplier_Handler::handle_input () != -1)
- continue;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) shutting down threaded Supplier_Handler %d on handle %d\n",
- this->connection_id (),
- this->get_handle ()));
-
- this->peer ().close ();
-
- // Deactivate the queue while we try to get reconnected.
- this->msg_queue ()->deactivate ();
-
- // Re-establish the connection, using expoential backoff.
- for (this->timeout (1);
- // Default is to reconnect synchronously.
- this->event_channel_->initiate_connection_connection (this) == -1; )
- {
- ACE_Time_Value tv (this->timeout ());
- ACE_ERROR ((LM_ERROR,
- "(%t) reattempting connection, sec = %d\n",
- tv.sec ()));
- ACE_OS::sleep (tv);
- }
- }
- ACE_NOTREACHED(return 0);
-}
diff --git a/apps/Gateway/Gateway/Concrete_Connection_Handlers.h b/apps/Gateway/Gateway/Concrete_Connection_Handlers.h
deleted file mode 100644
index b149856de05..00000000000
--- a/apps/Gateway/Gateway/Concrete_Connection_Handlers.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Concrete_Connection_Handlers.h
-//
-// = DESCRIPTION
-// These are all the subclasses of Connection_Handler that define the
-// appropriate threaded/reactive Consumer/Supplier behavior.
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef CONCRETE_CONNECTION_HANDLER
-#define CONCRETE_CONNECTION_HANDLER
-
-#include "Connection_Handler.h"
-
-class Supplier_Handler : public Connection_Handler
-{
- // = TITLE
- // Handles reception of Events from Suppliers.
- //
- // = DESCRIPTION
- // Performs framing and error checking on Events. Intended to
- // run reactively, i.e., in one thread of control using a
- // Reactor for demuxing and dispatching.
-public:
- // = Initialization method.
- Supplier_Handler (const Connection_Config_Info &);
-
-protected:
- // = All the following methods are upcalls, so they can be protected.
-
- virtual int handle_input (ACE_HANDLE = ACE_INVALID_HANDLE);
- // Receive and process peer events.
-
- virtual int recv (ACE_Message_Block *&);
- // Receive an event from a Supplier.
-
- int process (ACE_Message_Block *event);
- // This delegates to the <Event_Channel> to do the actual
- // processing. Typically, it forwards the <event> to its
- // appropriate Consumer.
-
- ACE_Message_Block *msg_frag_;
- // Keep track of event fragment to handle non-blocking recv's from
- // Suppliers.
-};
-
-class Consumer_Handler : public Connection_Handler
-{
- // = TITLE
- // Handles transmission of events to Consumers.
- //
- // = DESCRIPTION
- // Performs queueing and error checking. Intended to run
- // reactively, i.e., in one thread of control using a Reactor
- // for demuxing and dispatching. Also uses a Reactor to handle
- // flow controlled output connections.
-public:
- // = Initialization method.
- Consumer_Handler (const Connection_Config_Info &);
-
- virtual int put (ACE_Message_Block *event,
- ACE_Time_Value * = 0);
- // Send an event to a Consumer (may be queued if necessary).
-
-protected:
- virtual int handle_output (ACE_HANDLE);
- // Finish sending event when flow control conditions abate.
-
- int nonblk_put (ACE_Message_Block *mb);
- // Perform a non-blocking put().
-
- virtual ssize_t send (ACE_Message_Block *);
- // Send an event to a Consumer.
-
- virtual int handle_input (ACE_HANDLE);
- // Receive and process shutdowns from a Consumer.
-};
-
-class Thr_Consumer_Handler : public Consumer_Handler
-{
- // = TITLE
- // Runs each <Consumer_Handler> in a separate thread.
-public:
- Thr_Consumer_Handler (const Connection_Config_Info &);
-
- virtual int open (void *);
- // Initialize the threaded Consumer_Handler object and spawn a new
- // thread.
-
- virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0);
- // Send a message to a peer.
-
-protected:
- virtual int handle_input (ACE_HANDLE);
- // Called when Peer shutdown unexpectedly.
-
- virtual int svc (void);
- // Transmit peer messages.
-};
-
-class Thr_Supplier_Handler : public Supplier_Handler
-{
- // = TITLE
- // Runs each <Supplier_Handler> in a separate thread.
-public:
- Thr_Supplier_Handler (const Connection_Config_Info &pci);
-
- virtual int open (void *);
- // Initialize the object and spawn a new thread.
-
-protected:
- virtual int svc (void);
- // Transmit peer messages.
-};
-
-#endif /* CONCRETE_CONNECTION_HANDLER */
diff --git a/apps/Gateway/Gateway/Concurrency_Strategies.h b/apps/Gateway/Gateway/Concurrency_Strategies.h
deleted file mode 100644
index 28e59a4b2e6..00000000000
--- a/apps/Gateway/Gateway/Concurrency_Strategies.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Concurrency_strategies.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_CONCURRENCY_STRATEGIES)
-#define _CONCURRENCY_STRATEGIES
-
-#include "ace/Synch.h"
-
-// The following typedefs are used in order to parameterize the
-// synchronization policies without changing the source code!
-
-// If we don't have threads then use the single-threaded synchronization.
-#if !defined (ACE_HAS_THREADS)
-#define SYNCH_STRATEGY ACE_NULL_SYNCH
-typedef ACE_Null_Mutex MAP_MUTEX;
-#else /* ACE_HAS_THREADS */
-
-// Note that we only need to make the ACE_Task thread-safe if we are
-// using the multi-threaded Thr_Consumer_Proxy...
-#if defined (USE_OUTPUT_MT)
-#define SYNCH_STRATEGY ACE_MT_SYNCH
-#else
-#define SYNCH_STRATEGY ACE_NULL_SYNCH
-#endif /* USE_OUTPUT_MT || USE_INPUT_MT */
-
-// Note that we only need to make the ACE_Map_Manager thread-safe if
-// we are using the multi-threaded Thr_Supplier_Proxy. In this
-// case, we use an RW_Mutex since we'll lookup Consumers far more
-// often than we'll update them.
-#if defined (USE_INPUT_MT)
-typedef ACE_RW_Mutex MAP_MUTEX;
-#else
-typedef ACE_Null_Mutex MAP_MUTEX;
-#endif /* USE_INPUT_MT */
-#endif /* ACE_HAS_THREADS */
-
-// = Forward decls
-class Thr_Consumer_Proxy;
-class Thr_Supplier_Proxy;
-class Consumer_Proxy;
-class Supplier_Proxy;
-
-#if defined (ACE_HAS_THREADS) && (defined (USE_OUTPUT_MT) || defined (USE_INPUT_MT))
-#if defined (USE_OUTPUT_MT)
-typedef Thr_Consumer_Proxy CONSUMER_PROXY;
-#else
-typedef Consumer_Proxy CONSUMER_PROXY;
-#endif /* USE_OUTPUT_MT */
-
-#if defined (USE_INPUT_MT)
-typedef Thr_Supplier_Proxy SUPPLIER_PROXY;
-#else
-typedef Supplier_Proxy SUPPLIER_PROXY;
-#endif /* USE_INPUT_MT */
-#else
-// Instantiate a non-multi-threaded Gateway.
-typedef Supplier_Proxy SUPPLIER_PROXY;
-typedef Consumer_Proxy CONSUMER_PROXY;
-#endif /* ACE_HAS_THREADS */
-
-#endif /* _CONCURRENCY_STRATEGIES */
diff --git a/apps/Gateway/Gateway/Config_Files.cpp b/apps/Gateway/Gateway/Config_Files.cpp
deleted file mode 100644
index 112de597bd3..00000000000
--- a/apps/Gateway/Gateway/Config_Files.cpp
+++ /dev/null
@@ -1,222 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "Config_Files.h"
-#include "Options.h"
-
-ACE_RCSID(Gateway, Config_Files, "$Id$")
-
-// This fixes a nasty bug with cfront-based compilers (like
-// Centerline).
-typedef FP::Return_Type FP_RETURN_TYPE;
-
-FP_RETURN_TYPE
-Consumer_Config_File_Parser::read_entry (Consumer_Config_Info &entry,
- int &line_number)
-{
- FP_RETURN_TYPE result;
-
- // Increment the line count.
- line_number++;
-
- // Ignore comments, check for EOF and EOLINE if this succeeds, we
- // have our connection id.
-
- while ((result = this->getint (entry.connection_id_)) != FP::SUCCESS)
- if (result == FP::EOFILE)
- return FP::EOFILE;
- else if (result == FP::EOLINE
- || result == FP::COMMENT)
- line_number++;
-
- // Get the payload type.
- result = this->getint (entry.type_);
- if (result != FP::SUCCESS)
- return result;
-
- // get all the consumers.
- entry.total_consumers_ = 0;
-
- while ((result = this->getint
- (entry.consumers_[entry.total_consumers_])) == FP::SUCCESS)
- ++entry.total_consumers_; // do nothing (should check against max...)
-
- if (result == FP::EOLINE || result == FP::EOFILE)
- return FP::SUCCESS;
- else
- return result;
-}
-
-FP_RETURN_TYPE
-Connection_Config_File_Parser::read_entry (Connection_Config_Info &entry,
- int &line_number)
-{
- char buf[BUFSIZ];
- FP_RETURN_TYPE result;
-
- // Increment the line count.
- line_number++;
-
- // Ignore comments, check for EOF and EOLINE if this succeeds, we
- // have our connection id
-
- while ((result = this->getint (entry.connection_id_)) != FP::SUCCESS)
- if (result == FP::EOFILE)
- return FP::EOFILE;
- else if (result == FP::EOLINE
- || result == FP::COMMENT)
- line_number++;
-
- // Get the hostname.
- result = this->getword (entry.host_);
- if (result != FP::SUCCESS)
- return result;
-
- ACE_INT32 port;
-
- // Get the port number.
- result = this->getint (port);
- if (result == FP::DEFAULT)
- {
- // Get the proxy role, i.e., 'C' (Consumer) or 'S' (Supplier).
- result = this->getword (buf);
- if (result != FP::SUCCESS)
- return result;
- else
- entry.connection_role_ = buf[0];
-
- if (entry.connection_role_ == 'C')
- entry.remote_port_ = Options::instance ()->consumer_connector_port ();
- else if (entry.connection_role_ == 'S')
- entry.remote_port_ = Options::instance ()->supplier_connector_port ();
- else
- // Yikes, this is a *weird* error!
- entry.remote_port_ = 0;
- }
- else if (result != FP::SUCCESS)
- return result;
- else
- {
- entry.remote_port_ = u_short (port);
-
- // Get the proxy role, i.e., 'C' (Consumer) or 'S' (Supplier).
- result = this->getword (buf);
- if (result != FP::SUCCESS)
- return result;
- else
- entry.connection_role_ = buf[0];
- }
-
- // Get the max retry delay.
- result = this->getint (entry.max_retry_timeout_);
- if (result == FP::DEFAULT)
- entry.max_retry_timeout_ = Options::instance ()->max_timeout ();
- else if (result != FP::SUCCESS)
- return result;
-
- // Get the local port number.
- result = this->getint (port);
- if (result == FP::DEFAULT)
- entry.local_port_ = 0; // @@ Should make this an option.
- else if (result != FP::SUCCESS)
- return result;
- else
- entry.local_port_ = u_short (port);
-
- ACE_INT32 priority;
-
- // Get the priority.
- result = this->getint (priority);
- if (result != FP::SUCCESS)
- return result;
- else
- entry.priority_ = priority;
-
- return FP::SUCCESS;
-}
-
-#if defined (DEBUGGING)
-int
-main (int argc, char *argv[])
-{
- FP_RETURN_TYPE result;
- int line_number = 0;
-
- {
- Connection_Config_Info entry;
- Connection_Config_File_Parser connection_config_file;
-
- connection_config_file.open (argc > 1 ? argv[1] : "connection_config");
-
- int line_number = 0;
-
- ACE_DEBUG ((LM_DEBUG,
- "ConnID\tHost\t\tRPort\tRole\tRetry\tLPort\tPriority\n"));
-
- // Read config file line at a time.
- while ((result = connection_config_file.read_entry (entry, line_number)) != FP::EOFILE)
- if (result == FP::PARSE_ERROR)
- ACE_DEBUG ((LM_DEBUG,
- "Error line %d.\n",
- line_number));
- else
- ACE_DEBUG ((LM_DEBUG,
- "%d\t%s\t%d\t%c\t%d\t%d\t%d\n",
- entry.connection_id_,
- entry.host_,
- entry.remote_port_,
- entry.connection_role_,
- entry.max_retry_timeout_,
- entry.local_port_,
- entry.priority_));
-
- connection_config_file.close ();
- }
-
- {
- Consumer_Config_Info entry;
- Consumer_Config_File_Parser consumer_config_file;
-
- consumer_config_file.open (argc > 2 ? argv[2] : "consumer_config");
-
- line_number = 0;
-
- ACE_DEBUG ((LM_DEBUG,
- "\nConnID\tLogic\tPayload\tDestinations\n"));
-
- // Read config file line at a time.
- while ((result = consumer_config_file.read_entry (entry, line_number)) != FP::EOFILE)
- if (result == FP::PARSE_ERROR)
- ACE_DEBUG ((LM_DEBUG,
- "Error line %d.\n",
- line_number));
- else
- {
- ACE_DEBUG ((LM_DEBUG,
- "%d\t%d\t",
- entry.connection_id_,
- entry.type_));
-
- while (--entry.total_consumers_ >= 0)
- ACE_DEBUG ((LM_DEBUG,
- "%d,",
- entry.consumers_[entry.total_consumers_]));
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
-
- consumer_config_file.close ();
- }
-
- return 0;
-}
-#endif /* DEBUGGING */
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class File_Parser<Connection_Config_Info>;
-template class File_Parser<Consumer_Config_Info>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate File_Parser<Connection_Config_Info>
-#pragma instantiate File_Parser<Consumer_Config_Info>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/Gateway/Gateway/Config_Files.h b/apps/Gateway/Gateway/Config_Files.h
deleted file mode 100644
index 9fd96b687f6..00000000000
--- a/apps/Gateway/Gateway/Config_Files.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Config_Files.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef _CONFIG_FILES
-#define _CONFIG_FILES
-
-#include "File_Parser.h"
-#include "Event.h"
-
-// Forward declaration.
-class Event_Channel;
-
-class Connection_Config_Info
- // = TITLE
- // Stores connection configuration information.
-{
-public:
- ACE_INT32 connection_id_;
- // Connection id for this Connection_Handler.
-
- char host_[BUFSIZ];
- // Host to connect with.
-
- u_short remote_port_;
- // Port to connect with.
-
- char connection_role_;
- // 'S' (supplier) or 'C' (consumer).
-
- ACE_INT32 max_retry_timeout_;
- // Maximum amount of time to wait for reconnecting.
-
- u_short local_port_;
- // Our local port number.
-
- ACE_INT32 priority_;
- // Priority by which different Consumers and Suppliers should be
- // serviced.
-
- Event_Channel *event_channel_;
- // We just need a place to store this until we can pass it along
- // when creating a Connection_Handler.
-};
-
-class Connection_Config_File_Parser : public File_Parser<Connection_Config_Info>
- // = TITLE
- // Parser for the Connection_Handler Connection file.
-{
-public:
- virtual FP::Return_Type read_entry (Connection_Config_Info &entry,
- int &line_number);
- // Read in a <Connection_Config_Info> entry.
-
-};
-
-class Consumer_Config_Info
- // = TITLE
- // Stores the information in a Consumer Map entry.
-{
-public:
- ACE_INT32 connection_id_;
- // Connection id.
-
- ACE_INT32 type_;
- // Message type.
-
- ACE_INT32 consumers_[MAX_CONSUMERS];
- // Connection ids for consumers that will be routed information
- // containing this <connection_id_>
-
- ACE_INT32 total_consumers_;
- // Total number of these consumers.
-};
-
-class Consumer_Config_File_Parser : public File_Parser<Consumer_Config_Info>
- // = TITLE
- // Parser for the Consumer Map file.
-{
-public:
- virtual FP::Return_Type read_entry (Consumer_Config_Info &entry,
- int &line_number);
- // Read in a <Consumer_Config_Info> entry.
-};
-
-#endif /* _CONFIG_FILES */
diff --git a/apps/Gateway/Gateway/Connection_Handler.cpp b/apps/Gateway/Gateway/Connection_Handler.cpp
deleted file mode 100644
index 95212a7b2c7..00000000000
--- a/apps/Gateway/Gateway/Connection_Handler.cpp
+++ /dev/null
@@ -1,289 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "Event_Channel.h"
-#include "Concrete_Connection_Handlers.h"
-
-ACE_RCSID(Gateway, Connection_Handler, "$Id$")
-
-Event_Channel *
-Connection_Handler::event_channel (void) const
-{
- return this->event_channel_;
-}
-
-void
-Connection_Handler::event_channel (Event_Channel *ec)
-{
- this->event_channel_ = ec;
-}
-
-void
-Connection_Handler::connection_id (CONNECTION_ID id)
-{
- this->connection_id_ = id;
-}
-
-CONNECTION_ID
-Connection_Handler::connection_id (void) const
-{
- return this->connection_id_;
-}
-
-// The total number of bytes sent/received on this Proxy.
-
-size_t
-Connection_Handler::total_bytes (void) const
-{
- return this->total_bytes_;
-}
-
-void
-Connection_Handler::total_bytes (size_t bytes)
-{
- this->total_bytes_ += bytes;
-}
-
-Connection_Handler::Connection_Handler (void)
-{
-}
-
-Connection_Handler::Connection_Handler (const Connection_Config_Info &pci)
- : remote_addr_ (pci.remote_port_, pci.host_[0] == '\0' ? ACE_DEFAULT_SERVER_HOST : pci.host_),
- local_addr_ (pci.local_port_),
- connection_id_ (pci.connection_id_),
- total_bytes_ (0),
- state_ (Connection_Handler::IDLE),
- timeout_ (1),
- max_timeout_ (pci.max_retry_timeout_),
- event_channel_ (pci.event_channel_)
-{
- // Set the priority of the Proxy.
- this->priority (int (pci.priority_));
-}
-
-// Set the connection_role.
-
-void
-Connection_Handler::connection_role (char d)
-{
- this->connection_role_ = d;
-}
-
-// Get the connection_role.
-
-char
-Connection_Handler::connection_role (void) const
-{
- return this->connection_role_;
-}
-
-// Sets the timeout delay.
-
-void
-Connection_Handler::timeout (int to)
-{
- if (to > this->max_timeout_)
- to = this->max_timeout_;
-
- this->timeout_ = to;
-}
-
-// Re-calculate the current retry timeout delay using exponential
-// backoff. Returns the original timeout (i.e., before the
-// re-calculation).
-
-int
-Connection_Handler::timeout (void)
-{
- int old_timeout = this->timeout_;
- this->timeout_ *= 2;
-
- if (this->timeout_ > this->max_timeout_)
- this->timeout_ = this->max_timeout_;
-
- return old_timeout;
-}
-
-// Sets the max timeout delay.
-
-void
-Connection_Handler::max_timeout (int mto)
-{
- this->max_timeout_ = mto;
-}
-
-// Gets the max timeout delay.
-
-int
-Connection_Handler::max_timeout (void) const
-{
- return this->max_timeout_;
-}
-
-// Restart connection asynchronously when timeout occurs.
-
-int
-Connection_Handler::handle_timeout (const ACE_Time_Value &,
- const void *)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%t) attempting to reconnect Connection_Handler %d with timeout = %d\n",
- this->connection_id (),
- this->timeout_));
-
- // Delegate the re-connection attempt to the Event Channel.
- this->event_channel_->initiate_connection_connection (this);
-
- return 0;
-}
-
-// Handle shutdown of the Connection_Handler object.
-
-int
-Connection_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%t) shutting down %s Connection_Handler %d on handle %d\n",
- this->connection_role () == 'C' ? "Consumer" : "Supplier",
- this->connection_id (),
- this->get_handle ()));
-
- // Restart the connection, if possible.
- return this->event_channel_->reinitiate_connection_connection (this);
-}
-
-// Set the state of the Proxy.
-
-void
-Connection_Handler::state (Connection_Handler::State s)
-{
- this->state_ = s;
-}
-
-// Return the current state of the Proxy.
-
-Connection_Handler::State
-Connection_Handler::state (void) const
-{
- return this->state_;
-}
-
-// Upcall from the <ACE_Acceptor> or <ACE_Connector> that delegates
-// control to our Connection_Handler.
-
-int
-Connection_Handler::open (void *)
-{
- ACE_DEBUG ((LM_DEBUG, "(%t) %s Connection_Handler's handle = %d\n",
- this->connection_role () == 'C' ? "Consumer" : "Supplier",
- this->peer ().get_handle ()));
-
- // Call back to the <Event_Channel> to complete our initialization.
- if (this->event_channel_->complete_connection_connection (this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "complete_connection_connection"), -1);
-
- // Turn on non-blocking I/O.
- else if (this->peer ().enable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- // Register ourselves to receive input events.
- else if (ACE_Reactor::instance ()->register_handler
- (this, ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "register_handler"), -1);
- else
- return 0;
-}
-
-const ACE_INET_Addr &
-Connection_Handler::remote_addr (void) const
-{
- return this->remote_addr_;
-}
-
-void
-Connection_Handler::remote_addr (ACE_INET_Addr &ra)
-{
- this->remote_addr_ = ra;
-}
-
-const ACE_INET_Addr &
-Connection_Handler::local_addr (void) const
-{
- return this->local_addr_;
-}
-
-void
-Connection_Handler::local_addr (ACE_INET_Addr &la)
-{
- this->local_addr_ = la;
-}
-
-// Make the appropriate type of <Connection_Handler> (i.e.,
-// <Consumer_Handler>, <Supplier_Handler>, <Thr_Consumer_Handler>, or
-// <Thr_Supplier_Handler>).
-
-Connection_Handler *
-Connection_Handler_Factory::make_connection_handler (const Connection_Config_Info &pci)
-{
- Connection_Handler *connection_handler = 0;
-
- // The next few lines of code are dependent on whether we are making
- // a threaded/reactive Supplier_Handler/Consumer_Handler.
-
- if (pci.connection_role_ == 'C') // Configure a Consumer_Handler.
- {
- // Create a threaded Consumer_Handler.
- if (ACE_BIT_ENABLED (Options::instance ()->threading_strategy (),
- Options::OUTPUT_MT))
- ACE_NEW_RETURN (connection_handler,
- Thr_Consumer_Handler (pci),
- 0);
-
- // Create a reactive Consumer_Handler.
- else
- ACE_NEW_RETURN (connection_handler,
- Consumer_Handler (pci),
- 0);
- }
- else // connection_role == 'S', so configure a Supplier_Handler.
- {
- // Create a threaded Supplier_Handler.
- if (ACE_BIT_ENABLED (Options::instance ()->threading_strategy (),
- Options::INPUT_MT))
- ACE_NEW_RETURN (connection_handler,
- Thr_Supplier_Handler (pci),
- 0);
-
- // Create a reactive Supplier_Handler.
- else
- ACE_NEW_RETURN (connection_handler,
- Supplier_Handler (pci),
- 0);
- }
-
- return connection_handler;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Map_Entry<Event_Key, Consumer_Dispatch_Set *>;
-template class ACE_Map_Iterator_Base<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>;
-template class ACE_Map_Iterator<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>;
-template class ACE_Map_Reverse_Iterator<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>;
-template class ACE_Map_Manager<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>;
-template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-#if defined (ACE_HAS_THREADS)
-template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_MT_SYNCH>;
-#endif /* ACE_HAS_THREADS */
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Map_Entry<Event_Key, Consumer_Dispatch_Set *>
-#pragma instantiate ACE_Map_Iterator<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>
-#pragma instantiate ACE_Map_Reverse_Iterator<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>
-#pragma instantiate ACE_Map_Iterator_Base<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>
-#pragma instantiate ACE_Map_Manager<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>
-#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-#if defined (ACE_HAS_THREADS)
-#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_MT_SYNCH>
-#endif /* ACE_HAS_THREADS */
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/Gateway/Gateway/Connection_Handler.h b/apps/Gateway/Gateway/Connection_Handler.h
deleted file mode 100644
index 3003a81874e..00000000000
--- a/apps/Gateway/Gateway/Connection_Handler.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Connection_Handler.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef _CONNECTION_HANDLER
-#define _CONNECTION_HANDLER
-
-#include "ace/Service_Config.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Connector.h"
-#include "ace/Svc_Handler.h"
-#include "Config_Files.h"
-#include "Options.h"
-#include "Event.h"
-
-// Forward declaration.
-class Event_Channel;
-
-class Connection_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_SYNCH>
-{
- // = TITLE
- // <Connection_Handler> contains info about connection state and
- // addressing.
- //
- // = DESCRIPTION
- // The <Connection_Handler> classes process events sent to the
- // Event Channel from Suppliers and forward them to Consumers.
-public:
- Connection_Handler (void);
- // Default constructor (needed to make <ACE_Connector> happy).
-
- Connection_Handler (const Connection_Config_Info &);
- // Real constructor.
-
- virtual int open (void * = 0);
- // Initialize and activate a single-threaded <Connection_Handler>
- // (called by <ACE_Connector::handle_output>).
-
- // = The current state of the Connection_Handler.
- enum State
- {
- IDLE = 1, // Prior to initialization.
- CONNECTING, // During connection establishment.
- ESTABLISHED, // Connection_Handler is established and active.
- DISCONNECTING, // Connection_Handler is in the process of connecting.
- FAILED // Connection_Handler has failed.
- };
-
- // = Set/get the current state.
- void state (State);
- State state (void) const;
-
- // = Set/get remote INET addr.
- void remote_addr (ACE_INET_Addr &);
- const ACE_INET_Addr &remote_addr (void) const;
-
- // = Set/get local INET addr.
- void local_addr (ACE_INET_Addr &);
- const ACE_INET_Addr &local_addr (void) const;
-
- // = Set/get connection id.
- void connection_id (CONNECTION_ID);
- CONNECTION_ID connection_id (void) const;
-
- // = Set/get the current retry timeout delay.
- void timeout (int);
- int timeout (void);
-
- // = Set/get the maximum retry timeout delay.
- void max_timeout (int);
- int max_timeout (void) const;
-
- // = Set/get proxy role (i.e., 'S' for Supplier and 'C' for Consumer
- // (necessary for error checking).
- void connection_role (char);
- char connection_role (void) const;
-
- // = Set/get the <Event_Channel> *.
- void event_channel (Event_Channel *);
- Event_Channel *event_channel (void) const;
-
- // = The total number of bytes sent/received on this proxy.
- void total_bytes (size_t bytes);
- // Increment count by <bytes>.
- size_t total_bytes (void) const;
- // Return the current byte count.
-
- virtual int handle_timeout (const ACE_Time_Value &, const void *arg);
- // Perform timer-based Connection_Handler reconnection.
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
- // Perform Connection_Handler termination.
-
-protected:
- ACE_INET_Addr remote_addr_;
- // Address of peer.
-
- ACE_INET_Addr local_addr_;
- // Address of us.
-
- CONNECTION_ID connection_id_;
- // The assigned connection ID of this entry.
-
- size_t total_bytes_;
- // The total number of bytes sent/received on this proxy.
-
- State state_;
- // The current state of the proxy.
-
- int timeout_;
- // Amount of time to wait between reconnection attempts.
-
- int max_timeout_;
- // Maximum amount of time to wait between reconnection attempts.
-
- char connection_role_;
- // Indicates which role the proxy plays ('S' == Supplier and 'C' ==
- // Consumer).
-
- Event_Channel *event_channel_;
- // Reference to the <Event_Channel> that we use to forward all
- // the events from Consumers and Suppliers.
-};
-
-class Connection_Handler_Factory
-{
- // = TITLE
- // Creates the appropriate type of <Connection_Handler>.
- //
- // = DESCRIPTION
- // <Connection_Handler>s can include <Consumer_Handler>,
- // <Supplier_Handler>, <Thr_Consumer_Handler>, or
- // <Thr_Supplier_Handler>).
-public:
- Connection_Handler *make_connection_handler (const Connection_Config_Info &);
- // Make the appropriate type of <Connection_Handler>, based on the
- // <Connection_Config_Info> parameter.
-};
-
-#endif /* _CONNECTION_HANDLER */
diff --git a/apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp b/apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp
deleted file mode 100644
index 90c251ae8cc..00000000000
--- a/apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "Event_Channel.h"
-#include "Connection_Handler_Acceptor.h"
-
-ACE_RCSID(Gateway, Connection_Handler_Acceptor, "$Id$")
-
-int
-Connection_Handler_Acceptor::make_svc_handler (Connection_Handler *&ch)
-{
- ACE_ALLOCATOR_RETURN (ch,
- this->connection_handler_factory_.make_connection_handler (this->connection_config_info_),
- -1);
- return 0;
-}
-
-int
-Connection_Handler_Acceptor::accept_svc_handler (Connection_Handler *ch)
-{
- if (this->inherited::accept_svc_handler (ch) == -1)
- return -1;
- else
- {
- ch->connection_id (Options::instance ()->connection_id ());
- ACE_INET_Addr remote_addr;
-
- if (ch->peer ().get_remote_addr (remote_addr) == -1)
- return -1;
-
- // Set the remote address of our connected Peer.
- ch->remote_addr (remote_addr);
-
- // Set the Event_Channel pointer.
- ch->event_channel (&this->event_channel_);
-
- // Increment the connection ID by one.
- Options::instance ()->connection_id ()++;
- return 0;
- }
-}
-
-Connection_Handler_Acceptor::Connection_Handler_Acceptor (Event_Channel &ec,
- char connection_role)
- : event_channel_ (ec)
-{
- this->connection_config_info_.connection_id_ = 0;
- this->connection_config_info_.host_[0] = '\0';
- this->connection_config_info_.remote_port_ = 0;
- this->connection_config_info_.connection_role_ = connection_role;
- this->connection_config_info_.max_retry_timeout_ = Options::instance ()->max_timeout ();
- this->connection_config_info_.local_port_ = 0;
- this->connection_config_info_.priority_ = 1;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Acceptor<Connection_Handler, ACE_SOCK_ACCEPTOR>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Acceptor<Connection_Handler, ACE_SOCK_ACCEPTOR>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
diff --git a/apps/Gateway/Gateway/Connection_Handler_Acceptor.h b/apps/Gateway/Gateway/Connection_Handler_Acceptor.h
deleted file mode 100644
index 777f58c4a5b..00000000000
--- a/apps/Gateway/Gateway/Connection_Handler_Acceptor.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Connection_Handler_acceptor.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef _CONNECTION_HANDLER_ACCEPTOR
-#define _CONNECTION_HANDLER_ACCEPTOR
-
-#include "ace/Acceptor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Acceptor.h"
-#include "Connection_Handler.h"
-
-// Forward declaration
-class Event_Channel;
-
-class Connection_Handler_Acceptor : public ACE_Acceptor<Connection_Handler, ACE_SOCK_ACCEPTOR>
-{
- // = TITLE
- // A concrete factory class that setups connections to peerds
- // and produces a new Connection_Handler object to do the dirty
- // work...
-public:
- Connection_Handler_Acceptor (Event_Channel &,
- char connection_role);
- // Constructor.
-
- virtual int make_svc_handler (Connection_Handler *&ch);
- // Hook method for creating an appropriate <Connection_Handler>.
-
- virtual int accept_svc_handler (Connection_Handler *ch);
- // Hook method for accepting a connection into the
- // <Connection_Handler>.
-
-protected:
- typedef ACE_Acceptor<Connection_Handler, ACE_SOCK_ACCEPTOR>
- inherited;
- // Make life easier later on.
-
- Event_Channel &event_channel_;
- // Reference to the event channel.
-
- Connection_Config_Info connection_config_info_;
- // Keeps track of what type of proxy we need to create.
-
- Connection_Handler_Factory connection_handler_factory_;
- // Make the appropriate type of <Connection_Handler>.
-};
-
-#endif /* _CONNECTION_HANDLER_ACCEPTOR */
diff --git a/apps/Gateway/Gateway/Connection_Handler_Connector.cpp b/apps/Gateway/Gateway/Connection_Handler_Connector.cpp
deleted file mode 100644
index d5a250cec60..00000000000
--- a/apps/Gateway/Gateway/Connection_Handler_Connector.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-// $Id$
-
-#include "Connection_Handler_Connector.h"
-
-ACE_RCSID(Gateway, Connection_Handler_Connector, "$Id$")
-
-Connection_Handler_Connector::Connection_Handler_Connector (void)
-{
-}
-
-// Initiate (or reinitiate) a connection to the Connection_Handler.
-
-int
-Connection_Handler_Connector::initiate_connection (Connection_Handler *connection_handler,
- ACE_Synch_Options &synch_options)
-{
- char addr_buf[MAXHOSTNAMELEN];
-
- // Mark ourselves as idle so that the various iterators will ignore
- // us until we are reconnected.
- connection_handler->state (Connection_Handler::IDLE);
-
- // We check the remote addr second so that it remains in the
- // addr_buf.
- if (connection_handler->local_addr ().addr_to_string (addr_buf, sizeof addr_buf) == -1
- || connection_handler->remote_addr ().addr_to_string (addr_buf, sizeof addr_buf) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "can't obtain peer's address"), -1);
-
- // Try to connect to the Peer.
- if (this->connect (connection_handler,
- connection_handler->remote_addr (),
- synch_options,
- connection_handler->local_addr ()) == -1)
- {
- if (errno != EWOULDBLOCK)
- {
- connection_handler->state (Connection_Handler::FAILED);
- ACE_DEBUG ((LM_DEBUG, "(%t) %p on address %s\n",
- "connect", addr_buf));
- return -1;
- }
- else
- {
- connection_handler->state (Connection_Handler::CONNECTING);
- ACE_DEBUG ((LM_DEBUG,
- "(%t) in the process of connecting to %s\n",
- addr_buf));
- }
- }
- else
- {
- connection_handler->state (Connection_Handler::ESTABLISHED);
- ACE_DEBUG ((LM_DEBUG, "(%t) connected to %s on %d\n",
- addr_buf, connection_handler->get_handle ()));
- }
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Connector<Connection_Handler, ACE_SOCK_CONNECTOR>;
-template class ACE_Svc_Tuple<Connection_Handler>;
-template class ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Connector<Connection_Handler, ACE_SOCK_CONNECTOR>
-#pragma instantiate ACE_Svc_Tuple<Connection_Handler>
-#pragma instantiate ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/Gateway/Gateway/Connection_Handler_Connector.h b/apps/Gateway/Gateway/Connection_Handler_Connector.h
deleted file mode 100644
index f4e7d7d06a1..00000000000
--- a/apps/Gateway/Gateway/Connection_Handler_Connector.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Connection_Handler_Connector.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef _IO_HANDLER_CONNECTOR
-#define _IO_HANDLER_CONNECTOR
-
-#include "ace/Connector.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Connector.h"
-#include "Connection_Handler.h"
-
-class Connection_Handler_Connector : public ACE_Connector<Connection_Handler, ACE_SOCK_CONNECTOR>
-{
- // = TITLE
- // A concrete factory class that setups connections to peerds
- // and produces a new Connection_Handler object to do the dirty
- // work...
-public:
- Connection_Handler_Connector (void);
-
- // Initiate (or reinitiate) a connection on the Connection_Handler.
- int initiate_connection (Connection_Handler *,
- ACE_Synch_Options & = ACE_Synch_Options::synch);
-
-};
-
-#endif /* _IO_HANDLER_CONNECTOR */
diff --git a/apps/Gateway/Gateway/Consumer_Dispatch_Set.h b/apps/Gateway/Gateway/Consumer_Dispatch_Set.h
deleted file mode 100644
index 3a5d0cf3e25..00000000000
--- a/apps/Gateway/Gateway/Consumer_Dispatch_Set.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Consumer_Dispatch_Set.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef CONSUMER_DISPATCH_SET
-#define CONSUMER_DISPATCH_SET
-
-#include "ace/Containers.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Forward reference.
-class Connection_Handler;
-
-typedef ACE_Unbounded_Set<Connection_Handler *> Consumer_Dispatch_Set;
-typedef ACE_Unbounded_Set_Iterator<Connection_Handler *> Consumer_Dispatch_Set_Iterator;
-
-#endif /* CONSUMER_DISPATCH_SET */
diff --git a/apps/Gateway/Gateway/Consumer_Entry.cpp b/apps/Gateway/Gateway/Consumer_Entry.cpp
deleted file mode 100644
index c3dcd96ebbf..00000000000
--- a/apps/Gateway/Gateway/Consumer_Entry.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-// Defines an entry in the Consumer Map.
-// $Id$
-
-#include "Consumer_Entry.h"
-
-Consumer_Entry::Consumer_Entry (void)
-{
- ACE_NEW (this->destinations_, Consumer_Entry::ENTRY_SET);
-}
-
-Consumer_Entry::~Consumer_Entry (void)
-{
- delete this->destinations_;
-}
-
-// Get the associated set of destinations.
-
-Consumer_Entry::ENTRY_SET *
-Consumer_Entry::destinations (void)
-{
- return this->destinations_;
-}
-
-// Set the associated set of destinations.
-
-void
-Consumer_Entry::destinations (Consumer_Entry::ENTRY_SET *s)
-{
- this->destinations_ = s;
-}
-
diff --git a/apps/Gateway/Gateway/Consumer_Entry.h b/apps/Gateway/Gateway/Consumer_Entry.h
deleted file mode 100644
index fe502991514..00000000000
--- a/apps/Gateway/Gateway/Consumer_Entry.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Consumer_Entry.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_ROUTING_ENTRY)
-#define _ROUTING_ENTRY
-
-#include "ace/Set.h"
-
-// Forward reference.
-class IO_Handler;
-
-class Consumer_Entry
-{
- // = TITLE
- // Defines an entry in the Consumer_Map.
-public:
- Consumer_Entry (void);
- ~Consumer_Entry (void);
-
- typedef ACE_Unbounded_Set<IO_Handler *> ENTRY_SET;
- typedef ACE_Unbounded_Set_Iterator<IO_Handler *> ENTRY_ITERATOR;
-
- // = Set/get the associated set of destinations.
- ENTRY_SET *destinations (void);
- void destinations (ENTRY_SET *);
-
-protected:
- ENTRY_SET *destinations_;
- // The set of destinations;
-};
-
-#endif /* _ROUTING_ENTRY */
diff --git a/apps/Gateway/Gateway/Consumer_Map.cpp b/apps/Gateway/Gateway/Consumer_Map.cpp
deleted file mode 100644
index 6d16601f949..00000000000
--- a/apps/Gateway/Gateway/Consumer_Map.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#if !defined (_CONSUMER_MAP_C)
-#define _CONSUMER_MAP_C
-
-#include "Consumer_Map.h"
-
-// Bind the Event_Addr to the INT_ID.
-
-int
-Consumer_Map::bind (Event_Addr event_addr,
- Consumer_Entry *Consumer_Entry)
-{
- return this->map_.bind (event_addr, Consumer_Entry);
-}
-
-// Find the Consumer_Entry corresponding to the Event_Addr.
-
-int
-Consumer_Map::find (Event_Addr event_addr,
- Consumer_Entry *&Consumer_Entry)
-{
- return this->map_.find (event_addr, Consumer_Entry);
-}
-
-// Unbind (remove) the Event_Addr from the map.
-
-int
-Consumer_Map::unbind (Event_Addr event_addr)
-{
- return this->map_.unbind (event_addr);
-}
-
-Consumer_Map_Iterator::Consumer_Map_Iterator (Consumer_Map &rt)
- : map_iter_ (rt.map_)
-{
-}
-
-int
-Consumer_Map_Iterator::next (Consumer_Entry *&ss)
-{
- // Loop in order to skip over inactive entries if necessary.
-
- for (ACE_Map_Entry<Event_Addr, Consumer_Entry *> *temp = 0;
- this->map_iter_.next (temp) != 0;
- this->advance ())
- {
- // Otherwise, return the next item.
- ss = temp->int_id_;
- return 1;
- }
- return 0;
-}
-
-int
-Consumer_Map_Iterator::advance (void)
-{
- return this->map_iter_.advance ();
-}
-#endif /* _CONSUMER_MAP_C */
diff --git a/apps/Gateway/Gateway/Consumer_Map.h b/apps/Gateway/Gateway/Consumer_Map.h
deleted file mode 100644
index fd392afaf6e..00000000000
--- a/apps/Gateway/Gateway/Consumer_Map.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Consumer_Map.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_CONSUMER_MAP_H)
-#define _CONSUMER_MAP_H
-
-#include "ace/Map_Manager.h"
-#include "Concurrency_Strategies.h"
-#include "Event.h"
-#include "Consumer_Entry.h"
-
-class Consumer_Map
-{
- // = TITLE
- // Define a generic consumer map based on the ACE Map_Manager.
- //
- // = DESCRIPTION
- // This class makes it easier to use the Map_Manager.
-public:
- int bind (Event_Addr event, Consumer_Entry *Consumer_Entry);
- // Associate Event with the Consumer_Entry.
-
- int find (Event_Addr event, Consumer_Entry *&Consumer_Entry);
- // Break any association of EXID.
-
- int unbind (Event_Addr event);
- // Locate EXID and pass out parameter via INID. If found,
- // return 0, else -1.
-
-public:
- ACE_Map_Manager<Event_Addr, Consumer_Entry *, MAP_MUTEX> map_;
- // Map that associates Event Addrs (external ids) with Consumer_Entry *'s
- // <internal IDs>.
-};
-
-class Consumer_Map_Iterator
-{
- // = TITLE
- // Define an iterator for the Consumer Map.
-public:
- Consumer_Map_Iterator (Consumer_Map &mm);
- int next (Consumer_Entry *&);
- int advance (void);
-
-private:
- ACE_Map_Iterator<Event_Addr, Consumer_Entry *, MAP_MUTEX> map_iter_;
- // Map we are iterating over.
-};
-#endif /* _CONSUMER_MAP_H */
diff --git a/apps/Gateway/Gateway/Dispatch_Set.h b/apps/Gateway/Gateway/Dispatch_Set.h
deleted file mode 100644
index a867f1ca5ff..00000000000
--- a/apps/Gateway/Gateway/Dispatch_Set.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Dispatch_Set.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_DISPATCH_SET)
-#define _DISPATCH_SET
-
-#include "ace/Set.h"
-
-// Forward reference.
-class Proxy_Handler;
-
-typedef ACE_Unbounded_Set<Proxy_Handler *> Dispatch_Set;
-typedef ACE_Unbounded_Set_Iterator<Proxy_Handler *> Dispatch_Set_Iterator;
-
-#endif /* _DISPATCH_SET */
diff --git a/apps/Gateway/Gateway/Event.h b/apps/Gateway/Gateway/Event.h
deleted file mode 100644
index fe4ae2c2272..00000000000
--- a/apps/Gateway/Gateway/Event.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Event.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef EVENT_H
-#define EVENT_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// = The following #defines should really be in a separate include
-// file that is shared with the ../Peer/ directory. For now, we'll
-// keep them here to simplify the sharing between the two directories.
-// BTW, this is also the reason why all the methods are inlined...
-
-// Used by Peers to create Consumers in a Gateway.
-#if !defined (DEFAULT_GATEWAY_CONSUMER_PORT)
-#define DEFAULT_GATEWAY_CONSUMER_PORT 10009
-#endif /* DEFAULT_GATEWAY_CONSUMER_PORT */
-
-// Used by Peers create Suppliers in a Gateway.
-#if !defined (DEFAULT_GATEWAY_SUPPLIER_PORT)
-#define DEFAULT_GATEWAY_SUPPLIER_PORT 10010
-#endif /* DEFAULT_GATEWAY_SUPPLIER_PORT */
-
-// Used by a Gateway to create Consumers in a Peer.
-#if !defined (DEFAULT_PEER_CONSUMER_PORT)
-#define DEFAULT_PEER_CONSUMER_PORT 10011
-#endif /* DEFAULT_PEER_CONSUMER_PORT */
-
-// Used by a Gateway to create Suppliers in a Peer.
-#if !defined (DEFAULT_PEER_SUPPLIER_PORT)
-#define DEFAULT_PEER_SUPPLIER_PORT 10012
-#endif /* DEFAULT_PEER_SUPPLIER_PORT */
-
-#if !defined (MAX_CONSUMERS)
-#define MAX_CONSUMERS 1000
-#endif /* MAX_CONSUMERS */
-
-// This is the unique supplier identifier that denotes a particular
-// <Connection_Handler> in the Gateway.
-typedef ACE_INT32 CONNECTION_ID;
-
-enum
-{
- // = These are the types of events generated by the <Suppliers> and
- // handled by the <Event_Channel>.
-
- ROUTING_EVENT = 0,
- // A normal event, which is forwarded to the <Consumers>.
-
- SUBSCRIPTION_EVENT = 1
- // A subscription to <Suppliers> managed by the <Event_Channel>.
-};
-
-class Event_Key
-{
- // = TITLE
- // Address used to identify the source/destination of an event.
- //
- // = DESCRIPTION
- // This is really a "processing descriptor" that is used to
- // decouple the processing, filtering, and forwarding logic of
- // the Event Channel from the format of the data. The
- // <connection_id_> and <type_> fields are copied from the
- // <Event_Header> class below.
-public:
- Event_Key (CONNECTION_ID cid = -1,
- ACE_INT32 type = 0,
- ACE_INT32 priority = 0)
- : connection_id_ (cid),
- type_ (type),
- priority_ (priority)
- {
- }
-
- int operator== (const Event_Key &event_addr) const
- {
- return this->connection_id_ == event_addr.connection_id_
- && this->type_ == event_addr.type_;
- }
-
- CONNECTION_ID connection_id_;
- // Unique connection identifier that denotes a particular
- // Connection_Handler.
-
- ACE_INT32 type_;
- // Event type, e.g., <ROUTING_EVENT> or <SUBSCRIPTION_EVENT>.
-
- ACE_INT32 priority_;
- // Event priority.
-};
-
-class Event_Header
-{
- // = TITLE
- // Fixed sized header.
- //
- // = DESCRIPTION
- // This is designed to have a sizeof (16) to avoid alignment
- // problems on most platforms.
-public:
- enum
- {
- INVALID_ID = -1 // No peer can validly use this number.
- };
-
- Event_Header (ACE_INT32 len,
- CONNECTION_ID connection_id,
- ACE_INT32 type,
- ACE_INT32 priority)
- : len_ (len),
- connection_id_ (connection_id),
- type_ (type),
- priority_ (priority)
- {
- }
-
- void decode (void)
- {
- this->len_ = ntohl (this->len_);
- this->connection_id_ = ntohl (this->connection_id_);
- this->type_ = ntohl (this->type_);
- this->priority_ = ntohl (this->priority_);
- }
- // Decode from network byte order to host byte order.
-
- void encode (void)
- {
- this->len_ = htonl (this->len_);
- this->connection_id_ = htonl (this->connection_id_);
- this->type_ = htonl (this->type_);
- this->priority_ = htonl (this->priority_);
- }
- // Encode from host byte order to network byte order.
-
- ACE_INT32 len_;
- // Length of the data_ payload, in bytes.
-
- CONNECTION_ID connection_id_;
- // Unique connection identifier that denotes a particular
- // Connection_Handler.
-
- ACE_INT32 type_;
- // Event type, e.g., <ROUTING_EVENT> or <SUBSCRIPTION_EVENT>.
-
- ACE_INT32 priority_;
- // Event priority.
-};
-
-class Event
-{
- // = TITLE
- // Variable-sized event (data_ may be variable-sized between
- // 0 and MAX_PAYLOAD_SIZE).
-public:
- enum { MAX_PAYLOAD_SIZE = 1024 };
- // The maximum size of an Event.
-
- Event () : header_ (0, -1, 0, 0) {};
-
- Event_Header header_;
- // Event header.
-
- char data_[MAX_PAYLOAD_SIZE];
- // Event data.
-};
-
-class Subscription
-{
- // = TITLE
- // Allows Consumers to subscribe to be routed information
- // arriving from a particular Supplier connection id.
-public:
- void decode (void)
- {
- this->connection_id_ = ntohl (this->connection_id_);
-
- for (ACE_INT32 i = 0; i < this->total_consumers_; i++)
- this->consumers_[i] = ntohl (this->consumers_[i]);
-
- this->total_consumers_ = ntohl (this->total_consumers_);
- }
- // Decode from network byte order to host byte order.
-
- void encode (void)
- {
- this->connection_id_ = htonl (this->connection_id_);
-
- for (ACE_INT32 i = 0; i < this->total_consumers_; i++)
- this->consumers_[i] = htonl (this->consumers_[i]);
-
- this->total_consumers_ = htonl (this->total_consumers_);
- }
- // Encode from host byte order to network byte order.
-
- ACE_INT32 connection_id_;
- // Connection id.
-
- ACE_INT32 consumers_[MAX_CONSUMERS];
- // Connection ids for consumers that will be routed information
- // containing this <connection_id_>
-
- ACE_INT32 total_consumers_;
- // Total number of these consumers.
-};
-
-#endif /* EVENT_H */
diff --git a/apps/Gateway/Gateway/Event_Channel.cpp b/apps/Gateway/Gateway/Event_Channel.cpp
deleted file mode 100644
index 57329337afa..00000000000
--- a/apps/Gateway/Gateway/Event_Channel.cpp
+++ /dev/null
@@ -1,548 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "Connection_Handler_Connector.h"
-#include "Event_Channel.h"
-
-ACE_RCSID(Gateway, Event_Channel, "$Id$")
-
-Event_Channel::~Event_Channel (void)
-{
-}
-
-Event_Channel::Event_Channel (void)
- : supplier_acceptor_ (*this, 'S'),
- consumer_acceptor_ (*this, 'C')
-{
-}
-
-int
-Event_Channel::compute_performance_statistics (void)
-{
- ACE_DEBUG ((LM_DEBUG, "(%t) doing the performance timeout here...\n"));
- CONNECTION_MAP_ITERATOR cmi (this->connection_map_);
-
- // If we've got a <ACE_Thread_Manager> then use it to suspend all
- // the threads. This will enable us to get an accurate count.
-
- if (Options::instance ()->threading_strategy ()
- != Options::REACTIVE)
- {
- if (ACE_Thread_Manager::instance ()->suspend_all () == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "suspend_all"), -1);
- ACE_DEBUG ((LM_DEBUG, "(%t) suspending all threads..."));
- }
-
- size_t total_bytes_in = 0;
- size_t total_bytes_out = 0;
-
- // Iterate through the connection map summing up the number of bytes
- // sent/received.
-
- for (CONNECTION_MAP_ENTRY *me = 0;
- cmi.next (me) != 0;
- cmi.advance ())
- {
- Connection_Handler *connection_handler = me->int_id_;
-
- if (connection_handler->connection_role () == 'C')
- total_bytes_out += connection_handler->total_bytes ();
- else // connection_handler->connection_role () == 'S'
- total_bytes_in += connection_handler->total_bytes ();
- }
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) after %d seconds, \ntotal_bytes_in = %d\ntotal_bytes_out = %d\n",
- Options::instance ()->performance_window (),
- total_bytes_in,
- total_bytes_out));
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) %f Mbits/sec received.\n",
- (float) (total_bytes_in * 8 /
- (float) (1024 * 1024 * Options::instance ()->performance_window ()))));
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) %f Mbits/sec sent.\n",
- (float) (total_bytes_out * 8 /
- (float) (1024 * 1024 * Options::instance ()->performance_window ()))));
-
- // Resume all the threads again.
-
- if (Options::instance ()->threading_strategy ()
- != Options::REACTIVE)
- {
- if (ACE_Thread_Manager::instance ()->resume_all () == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "resume_all"), -1);
- ACE_DEBUG ((LM_DEBUG, "(%t) resuming all threads..."));
- }
-
- return 0;
-}
-
-int
-Event_Channel::handle_timeout (const ACE_Time_Value &,
- const void *)
-{
- // This is called periodically to compute performance statistics.
- return this->compute_performance_statistics ();
-}
-
-int
-Event_Channel::put (ACE_Message_Block *event,
- ACE_Time_Value *)
-{
- // We got a valid event, so determine its type, which is stored in
- // the first of the two <ACE_Message_Block>s, which are chained
- // together by <ACE::recv>.
- Event_Key *event_key = (Event_Key *) event->rd_ptr ();
-
- // Skip over the address portion and get the data, which is in the
- // second <ACE_Message_Block>.
- ACE_Message_Block *data = event->cont ();
-
- switch (event_key->type_)
- {
- case ROUTING_EVENT:
- this->routing_event (event_key,
- data);
- break;
- case SUBSCRIPTION_EVENT:
- this->subscription_event (data);
- break;
- }
-
- // Release the memory in the message block.
- event->release ();
- return 0;
-}
-
-void
-Event_Channel::subscription_event (ACE_Message_Block *data)
-{
- Event *event = (Event *) data->rd_ptr ();
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) received a subscription with %d bytes from connection id %d\n",
- event->header_.len_,
- event->header_.connection_id_));
- Subscription *subscription = (Subscription *) event->data_;
- // Convert the subscription into host byte order so that we can
- // access it directly without having to repeatedly muck with it...
- subscription->decode ();
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) connection_id_ = %d, total_consumers_ = %d\n",
- subscription->connection_id_,
- subscription->total_consumers_));
-
- for (ACE_INT32 i = 0;
- i < subscription->total_consumers_;
- i++)
- ACE_DEBUG ((LM_DEBUG,
- "(%t) consumers_[%d] = %d\n",
- i,
- subscription->consumers_[i]));
-
-}
-
-void
-Event_Channel::routing_event (Event_Key *forwarding_address,
- ACE_Message_Block *data)
-{
- Consumer_Dispatch_Set *dispatch_set = 0;
-
- // Initialize the <dispatch_set> to points to the set of Consumers
- // associated with this forwarding address.
-
- if (this->efd_.find (*forwarding_address,
- dispatch_set) == -1)
- // Failure.
- ACE_ERROR ((LM_DEBUG,
- "(%t) find failed on connection id = %d, type = %d\n",
- forwarding_address->connection_id_,
- forwarding_address->type_));
- else
- {
- // Check to see if there are any consumers.
- if (dispatch_set->size () == 0)
- ACE_DEBUG ((LM_WARNING,
- "there are no active consumers for this event currently\n"));
-
- else // There are consumers, so forward the event.
- {
- // Initialize the interator.
- Consumer_Dispatch_Set_Iterator dsi (*dispatch_set);
-
- // At this point, we should assign a thread-safe locking
- // strategy to the <ACE_Message_Block> is we're running in a
- // multi-threaded configuration.
- data->locking_strategy (Options::instance ()->locking_strategy ());
-
- for (Connection_Handler **connection_handler = 0;
- dsi.next (connection_handler) != 0;
- dsi.advance ())
- {
- // Only process active connection_handlers.
- if ((*connection_handler)->state () == Connection_Handler::ESTABLISHED)
- {
- // Duplicate the event portion via reference
- // counting.
- ACE_Message_Block *dup_msg = data->duplicate ();
-
- ACE_DEBUG ((LM_DEBUG, "(%t) forwarding to Consumer %d\n",
- (*connection_handler)->connection_id ()));
-
- if ((*connection_handler)->put (dup_msg) == -1)
- {
- if (errno == EWOULDBLOCK) // The queue has filled up!
- ACE_ERROR ((LM_ERROR, "(%t) %p\n",
- "gateway is flow controlled, so we're dropping events"));
- else
- ACE_ERROR ((LM_ERROR,
- "(%t) %p transmission error to peer %d\n",
- "put",
- (*connection_handler)->connection_id ()));
-
- // We are responsible for releasing an
- // ACE_Message_Block if failures occur.
- dup_msg->release ();
- }
- }
- }
- }
- }
-}
-
-int
-Event_Channel::initiate_connection_connection (Connection_Handler *connection_handler)
-{
- ACE_Synch_Options synch_options;
-
- if (Options::instance ()->blocking_semantics () == ACE_NONBLOCK)
- synch_options = ACE_Synch_Options::asynch;
- else
- synch_options = ACE_Synch_Options::synch;
-
- return this->connector_.initiate_connection (connection_handler,
- synch_options);
-}
-
-int
-Event_Channel::complete_connection_connection (Connection_Handler *connection_handler)
-{
- int option = connection_handler->connection_role () == 'S' ? SO_RCVBUF : SO_SNDBUF;
- int socket_queue_size = Options::instance ()->socket_queue_size ();
-
- if (socket_queue_size > 0)
- if (connection_handler->peer ().set_option (SOL_SOCKET,
- option,
- &socket_queue_size,
- sizeof (int)) == -1)
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "set_option"));
-
- connection_handler->thr_mgr (ACE_Thread_Manager::instance ());
-
- // Our state is now "established."
- connection_handler->state (Connection_Handler::ESTABLISHED);
-
- // Restart the timeout to 1.
- connection_handler->timeout (1);
-
- ACE_INT32 id = htonl (connection_handler->connection_id ());
-
- // Send the connection id to the peerd.
-
- ssize_t n = connection_handler->peer ().send ((const void *) &id, sizeof id);
-
- if (n != sizeof id)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- n == 0 ? "peer has closed down unexpectedly" : "send"),
- -1);
- return 0;
-}
-
-// Restart connection (blocking_semantics dicates whether we restart
-// synchronously or asynchronously).
-
-int
-Event_Channel::reinitiate_connection_connection (Connection_Handler *connection_handler)
-{
- // Skip over proxies with deactivated handles.
- if (connection_handler->get_handle () != ACE_INVALID_HANDLE)
- // Make sure to close down peer to reclaim descriptor.
- connection_handler->peer ().close ();
-
- if (connection_handler->state () != Connection_Handler::DISCONNECTING)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) scheduling reinitiation of Connection_Handler %d\n",
- connection_handler->connection_id ()));
-
- // Reschedule ourselves to try and connect again.
- if (ACE_Reactor::instance ()->schedule_timer
- (connection_handler, 0, connection_handler->timeout ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "schedule_timer"), -1);
- }
- return 0;
-}
-
-// Initiate active connections with the Consumer and Supplier Peers.
-
-void
-Event_Channel::initiate_connector (void)
-{
- if (Options::instance ()->enabled
- (Options::CONSUMER_CONNECTOR | Options::SUPPLIER_CONNECTOR))
- {
- CONNECTION_MAP_ITERATOR cmi (this->connection_map_);
-
- // Iterate through the Consumer Map connecting all the
- // Connection_Handlers.
-
- for (CONNECTION_MAP_ENTRY *me = 0;
- cmi.next (me) != 0;
- cmi.advance ())
- {
- Connection_Handler *connection_handler = me->int_id_;
-
- if (this->initiate_connection_connection (connection_handler) == -1)
- continue; // Failures are handled elsewhere...
- }
- }
-}
-
-// Initiate passive acceptor to wait for Consumer and Supplier Peers
-// to accept.
-
-int
-Event_Channel::initiate_acceptors (void)
-{
- if (Options::instance ()->enabled (Options::CONSUMER_ACCEPTOR)
- && this->consumer_acceptor_.open
- (Options::instance ()->consumer_acceptor_port (),
- ACE_Reactor::instance (),
- Options::instance ()->blocking_semantics ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "cannot register acceptor"),
- -1);
- else
- ACE_DEBUG ((LM_DEBUG,
- "accepting Consumers at %d\n",
- Options::instance ()->consumer_acceptor_port ()));
-
- if (Options::instance ()->enabled (Options::SUPPLIER_ACCEPTOR)
- && this->supplier_acceptor_.open
- (Options::instance ()->supplier_acceptor_port (),
- ACE_Reactor::instance (),
- Options::instance ()->blocking_semantics ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "cannot register acceptor"),
- -1);
- else
- ACE_DEBUG ((LM_DEBUG,
- "accepting Suppliers at %d\n",
- Options::instance ()->supplier_acceptor_port ()));
-
- return 0;
-}
-
-// This method gracefully shuts down all the Handlers in the
-// Connection_Handler Connection Map.
-
-int
-Event_Channel::close (u_long)
-{
- if (Options::instance ()->threading_strategy () != Options::REACTIVE)
- {
- if (ACE_Thread_Manager::instance ()->suspend_all () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) %p\n",
- "suspend_all"),
- -1);
- ACE_DEBUG ((LM_DEBUG,
- "(%t) suspending all threads\n"));
- }
-
- // First tell everyone that the spaceship is here...
- {
- CONNECTION_MAP_ITERATOR cmi (this->connection_map_);
-
- // Iterate over all the handlers and shut them down.
-
- for (CONNECTION_MAP_ENTRY *me;
- cmi.next (me) != 0;
- cmi.advance ())
- {
- Connection_Handler *connection_handler = me->int_id_;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) closing down connection %d\n",
- connection_handler->connection_id ()));
-
- // Mark Connection_Handler as DISCONNECTING so we don't try to
- // reconnect...
- connection_handler->state (Connection_Handler::DISCONNECTING);
- }
- }
-
- // Close down the connector
- this->connector_.close ();
-
- // Close down the supplier acceptor.
- this->supplier_acceptor_.close ();
-
- // Close down the consumer acceptor.
- this->consumer_acceptor_.close ();
-
- // Now tell everyone that it is now time to commit suicide.
- {
- CONNECTION_MAP_ITERATOR cmi (this->connection_map_);
-
- for (CONNECTION_MAP_ENTRY *me;
- cmi.next (me) != 0;
- cmi.advance ())
- {
- Connection_Handler *connection_handler = me->int_id_;
-
- // Deallocate Connection_Handler resources.
- connection_handler->destroy (); // Will trigger a delete.
- }
- }
-
- return 0;
-}
-
-int
-Event_Channel::find_proxy (ACE_INT32 connection_id,
- Connection_Handler *&connection_handler)
-{
- return this->connection_map_.find (connection_id,
- connection_handler);
-}
-
-int
-Event_Channel::bind_proxy (Connection_Handler *connection_handler)
-{
- int result = this->connection_map_.bind (connection_handler->connection_id (),
- connection_handler);
-
- switch (result)
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) bind failed for connection %d\n",
- connection_handler->connection_id ()),
- -1);
- /* NOTREACHED */
- case 1: // Oops, found a duplicate!
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) duplicate connection %d, already bound\n",
- connection_handler->connection_id ()),
- -1);
- /* NOTREACHED */
- case 0:
- // Success.
- return 0;
- /* NOTREACHED */
- default:
- ACE_ERROR_RETURN ((LM_DEBUG,
- "(%t) invalid result %d\n",
- result),
- -1);
- /* NOTREACHED */
- }
-
- ACE_NOTREACHED (return 0);
-}
-
-int
-Event_Channel::subscribe (const Event_Key &event_addr,
- Consumer_Dispatch_Set *cds)
-{
- int result = this->efd_.bind (event_addr, cds);
-
- // Bind with consumer map, keyed by peer address.
- switch (result)
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) bind failed for connection %d\n",
- event_addr.connection_id_),
- -1);
- /* NOTREACHED */
- case 1: // Oops, found a duplicate!
- ACE_ERROR_RETURN ((LM_DEBUG,
- "(%t) duplicate consumer map entry %d, "
- "already bound\n",
- event_addr.connection_id_),
- -1);
- /* NOTREACHED */
- case 0:
- // Success.
- return 0;
- default:
- ACE_ERROR_RETURN ((LM_DEBUG,
- "(%t) invalid result %d\n",
- result),
- -1);
- /* NOTREACHED */
- }
-
- ACE_NOTREACHED (return 0);
-}
-
-int
-Event_Channel::open (void *)
-{
- // Ignore <SIGPIPE> so each <Consumer_Handler> can handle it.
- ACE_Sig_Action sig (ACE_SignalHandler (SIG_IGN), SIGPIPE);
- ACE_UNUSED_ARG (sig);
-
- // Actively initiate Peer connections.
- this->initiate_connector ();
-
- // Passively initiate Peer acceptor.
- if (this->initiate_acceptors () == -1)
- return -1;
-
- // If we're not running reactively, then we need to make sure that
- // <ACE_Message_Block> reference counting operations are
- // thread-safe. Therefore, we create an <ACE_Lock_Adapter> that is
- // parameterized by <ACE_SYNCH_MUTEX> to prevent race conditions.
- if (Options::instance ()->threading_strategy ()
- != Options::REACTIVE)
- {
- ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *la;
-
- ACE_NEW_RETURN (la,
- ACE_Lock_Adapter<ACE_SYNCH_MUTEX>,
- -1);
-
- Options::instance ()->locking_strategy (la);
- }
-
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Lock_Adapter<ACE_SYNCH_MUTEX>;
-template class ACE_Map_Entry<ACE_INT32, Connection_Handler *>;
-template class ACE_Map_Iterator<ACE_INT32, Connection_Handler *, MAP_MUTEX>;
-template class ACE_Map_Reverse_Iterator<ACE_INT32, Connection_Handler *, MAP_MUTEX>;
-template class ACE_Map_Iterator_Base<ACE_INT32, Connection_Handler *, MAP_MUTEX>;
-template class ACE_Map_Manager<ACE_INT32, Connection_Handler *, MAP_MUTEX>;
-template class ACE_Unbounded_Set_Iterator<Connection_Handler *>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Lock_Adapter<ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Map_Entry<ACE_INT32, Connection_Handler *>
-#pragma instantiate ACE_Map_Iterator<ACE_INT32, Connection_Handler *, MAP_MUTEX>
-#pragma instantiate ACE_Map_Reverse_Iterator<ACE_INT32, Connection_Handler *, MAP_MUTEX>
-#pragma instantiate ACE_Map_Iterator_Base<ACE_INT32, Connection_Handler *, MAP_MUTEX>
-#pragma instantiate ACE_Map_Manager<ACE_INT32, Connection_Handler *, MAP_MUTEX>
-#pragma instantiate ACE_Unbounded_Set_Iterator<Connection_Handler *>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/Gateway/Gateway/Event_Channel.h b/apps/Gateway/Gateway/Event_Channel.h
deleted file mode 100644
index 4dcb86d24d3..00000000000
--- a/apps/Gateway/Gateway/Event_Channel.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Event_Channel.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef ACE_EVENT_CHANNEL
-#define ACE_EVENT_CHANNEL
-
-#include "Connection_Handler_Connector.h"
-#include "Connection_Handler_Acceptor.h"
-#include "Consumer_Dispatch_Set.h"
-#include "Event_Forwarding_Discriminator.h"
-
-typedef ACE_Null_Mutex MAP_MUTEX;
-
-class ACE_Svc_Export Event_Channel : public ACE_Event_Handler
-{
- // = TITLE
- // Define a generic Event_Channel.
- //
- // = DESCRIPTION
- // The inspiration for this class is derived from the CORBA COS
- // Event Channel, though the design is simplified.
- //
- // We inherit from <ACE_Event_Handler> so that we can be
- // registered with an <ACE_Reactor> to handle timeouts.
-public:
- // = Initialization and termination methods.
- Event_Channel (void);
- ~Event_Channel (void);
-
- virtual int open (void * = 0);
- // Open the channel.
-
- virtual int close (u_long = 0);
- // Close down the Channel.
-
- // = Proxy management methods.
- int initiate_connection_connection (Connection_Handler *);
- // Initiate the connection of the <Connection_Handler> to its peer.
-
- int complete_connection_connection (Connection_Handler *);
- // Complete the initialization of the <Connection_Handler> once it's
- // connected to its Peer.
-
- int reinitiate_connection_connection (Connection_Handler *);
- // Reinitiate a connection asynchronously when the Peer fails.
-
- int bind_proxy (Connection_Handler *);
- // Bind the <Connection_Handler> to the <connection_map_>.
-
- int find_proxy (ACE_INT32 connection_id,
- Connection_Handler *&);
- // Locate the <Connection_Handler> with <connection_id>.
-
- int subscribe (const Event_Key &event_addr,
- Consumer_Dispatch_Set *cds);
- // Subscribe the <Consumer_Dispatch_Set> to receive events that
- // match <Event_Key>.
-
- // = Event processing entry point.
- virtual int put (ACE_Message_Block *mb,
- ACE_Time_Value * = 0);
- // Pass <mb> to the Event Channel so it can forward it to Consumers.
-
- void initiate_connector (void);
- // Actively initiate connections to the Peers.
-
- int initiate_acceptors (void);
- // Passively initiate the <Peer_Acceptor>s for Consumer and
- // Suppliers.
-
-private:
- int parse_args (int argc, char *argv[]);
- // Parse the command-line arguments.
-
- // = Methods for handling events.
- void routing_event (Event_Key *event_key,
- ACE_Message_Block *data);
- // Forwards the <data> to Consumer that have registered to receive
- // it, based on addressing information in the <event_key>.
-
- void subscription_event (ACE_Message_Block *data);
- // Add a Consumer subscription.
-
- int compute_performance_statistics (void);
- // Perform timer-based performance profiling.
-
- virtual int handle_timeout (const ACE_Time_Value &,
- const void *arg);
- // Periodically callback to perform timer-based performance
- // profiling.
-
- Connection_Handler_Connector connector_;
- // Used to establish the connections actively.
-
- Connection_Handler_Acceptor supplier_acceptor_;
- // Used to establish connections passively and create Suppliers.
-
- Connection_Handler_Acceptor consumer_acceptor_;
- // Used to establish connections passively and create Consumers.
-
- // = Make life easier by defining typedefs.
- typedef ACE_Map_Manager<CONNECTION_ID, Connection_Handler *, MAP_MUTEX>
- CONNECTION_MAP;
- typedef ACE_Map_Iterator<CONNECTION_ID, Connection_Handler *, MAP_MUTEX>
- CONNECTION_MAP_ITERATOR;
- typedef ACE_Map_Entry<CONNECTION_ID, Connection_Handler *>
- CONNECTION_MAP_ENTRY;
-
- CONNECTION_MAP connection_map_;
- // Table that maps <CONNECTION_ID>s to <Connection_Handler> *'s.
-
- Event_Forwarding_Discriminator efd_;
- // Map that associates an event to a set of <Consumer_Handler> *'s.
-};
-
-#endif /* ACE_EVENT_CHANNEL */
diff --git a/apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp b/apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp
deleted file mode 100644
index 9e33509a29f..00000000000
--- a/apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-// $Id$
-
-#if !defined (_CONSUMER_MAP_C)
-#define _CONSUMER_MAP_C
-
-#include "Event_Forwarding_Discriminator.h"
-
-ACE_RCSID(Gateway, Event_Forwarding_Discriminator, "$Id$")
-
-// Bind the Event_Key to the INT_ID.
-
-int
-Event_Forwarding_Discriminator::bind (Event_Key event_addr,
- Consumer_Dispatch_Set *cds)
-{
- return this->map_.bind (event_addr, cds);
-}
-
-// Find the Consumer_Dispatch_Set corresponding to the Event_Key.
-
-int
-Event_Forwarding_Discriminator::find (Event_Key event_addr,
- Consumer_Dispatch_Set *&cds)
-{
- return this->map_.find (event_addr, cds);
-}
-
-// Unbind (remove) the Event_Key from the map.
-
-int
-Event_Forwarding_Discriminator::unbind (Event_Key event_addr)
-{
- return this->map_.unbind (event_addr);
-}
-
-Event_Forwarding_Discriminator_Iterator::Event_Forwarding_Discriminator_Iterator
- (Event_Forwarding_Discriminator &rt)
- : map_iter_ (rt.map_)
-{
-}
-
-int
-Event_Forwarding_Discriminator_Iterator::next (Consumer_Dispatch_Set *&cds)
-{
- ACE_Map_Entry<Event_Key, Consumer_Dispatch_Set *> *temp;
-
- if (this->map_iter_.next (temp) == 0)
- return 0;
- else
- {
- cds = temp->int_id_;
- return 1;
- }
-}
-
-int
-Event_Forwarding_Discriminator_Iterator::advance (void)
-{
- return this->map_iter_.advance ();
-}
-#endif /* _CONSUMER_MAP_C */
diff --git a/apps/Gateway/Gateway/Event_Forwarding_Discriminator.h b/apps/Gateway/Gateway/Event_Forwarding_Discriminator.h
deleted file mode 100644
index 10bc4409589..00000000000
--- a/apps/Gateway/Gateway/Event_Forwarding_Discriminator.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Event_Forwarding_Discriminator.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef _CONSUMER_MAP_H
-#define _CONSUMER_MAP_H
-
-#include "ace/Map_Manager.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-#include "Event.h"
-#include "Consumer_Dispatch_Set.h"
-
-class Event_Forwarding_Discriminator
-{
- // = TITLE
- // Map events to the set of Consumer_Proxies that have subscribed
- // to receive the event.
-public:
- int bind (Event_Key event, Consumer_Dispatch_Set *cds);
- // Associate Event with the Consumer_Dispatch_Set.
-
- int unbind (Event_Key event);
- // Locate EXID and pass out parameter via INID. If found,
- // return 0, else -1.
-
- int find (Event_Key event, Consumer_Dispatch_Set *&cds);
- // Break any association of EXID.
-
-public:
- ACE_Map_Manager<Event_Key, Consumer_Dispatch_Set *, ACE_Null_Mutex> map_;
- // Map that associates <Event_Key>s (external ids) with
- // <Consumer_Dispatch_Set> *'s <internal IDs>.
-};
-
-class Event_Forwarding_Discriminator_Iterator
-{
- // = TITLE
- // Define an iterator for the Consumer Map.
-public:
- Event_Forwarding_Discriminator_Iterator (Event_Forwarding_Discriminator &mm);
- int next (Consumer_Dispatch_Set *&);
- int advance (void);
-
-private:
- ACE_Map_Iterator<Event_Key, Consumer_Dispatch_Set *, ACE_Null_Mutex> map_iter_;
- // Map we are iterating over.
-};
-#endif /* _CONSUMER_MAP_H */
diff --git a/apps/Gateway/Gateway/File_Parser.cpp b/apps/Gateway/Gateway/File_Parser.cpp
deleted file mode 100644
index 6f248e6762d..00000000000
--- a/apps/Gateway/Gateway/File_Parser.cpp
+++ /dev/null
@@ -1,164 +0,0 @@
-// $Id$
-
-#ifndef FILE_PARSER_C
-
-#define FILE_PARSER_C
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "File_Parser.h"
-
-ACE_RCSID(Gateway, File_Parser, "$Id$")
-
-// This fixes a nasty bug with cfront-based compilers (like
-// Centerline).
-typedef FP::Return_Type FP_RETURN_TYPE;
-
-// File_Parser stuff.
-
-template <class ENTRY> int
-File_Parser<ENTRY>::open (const char filename[])
-{
- this->infile_ = ACE_OS::fopen (filename, "r");
- if (this->infile_ == 0)
- return -1;
- else
- return 0;
-}
-
-template <class ENTRY> int
-File_Parser<ENTRY>::close (void)
-{
- return ACE_OS::fclose (this->infile_);
-}
-
-template <class ENTRY> FP_RETURN_TYPE
-File_Parser<ENTRY>::getword (char buf[])
-{
- return this->readword (buf);
-}
-
-// Get the next string from the file via this->readword()
-// Check make sure the string forms a valid number.
-
-template <class ENTRY> FP_RETURN_TYPE
-File_Parser<ENTRY>::getint (ACE_INT32 &value)
-{
- char buf[BUFSIZ];
-#if defined (__GNUG__)
- // egcs 1.1b can't handle the typedef.
- FP::Return_Type
-#else /* ! __GNUG__ */
- FP_RETURN_TYPE
-#endif /* ! __GNUG__ */
- read_result = this->readword (buf);
-
- if (read_result == FP::SUCCESS)
- {
- // Check to see if this is the "use the default value" symbol?
- if (buf[0] == '*')
- return FP::DEFAULT;
- else
- {
- // ptr is used for error checking with ACE_OS::strtol.
- char *ptr;
-
- // try to convert the buf to a decimal number
- value = ACE_OS::strtol (buf, &ptr, 10);
-
- // check if the buf is a decimal or not
- if (value == 0 && ptr == buf)
- return FP::PARSE_ERROR;
- else
- return FP::SUCCESS;
- }
- }
- else
- return read_result;
-}
-
-
-template <class ENTRY> FP_RETURN_TYPE
-File_Parser<ENTRY>::readword (char buf[])
-{
- int wordlength = 0;
- int c;
-
- // Skip over leading delimiters and get word.
-
- while ((c = getc (this->infile_)) != EOF && c != '\n')
- if (this->delimiter (c))
- {
- // We've reached the end of a "word".
- if (wordlength > 0)
- break;
- }
- else
- buf[wordlength++] = c;
-
- buf[wordlength] = '\0';
-
- if (c == EOF) {
- // If EOF is just a delimiter, don't return EOF so that the word
- // gets processed.
- if (wordlength > 0)
- {
- ungetc (c, this->infile_);
- return FP::SUCCESS;
- }
- else
- // else return EOF so that read loops stop
- return FP::EOFILE;
- }
- else if (c == '\n')
- {
- // if the EOLINE is just a delimiter, don't return EOLINE
- // so that the word gets processed
- if (wordlength > 0)
- ungetc (c, this->infile_);
- else
- return FP::EOLINE;
- }
-
- // Skip comments.
- if (this->comments (buf[0]))
- {
- if (this->skipline () == EOF)
- return FP::EOFILE;
- else
- return FP::COMMENT;
- }
- else
- return FP::SUCCESS;
-}
-
-template <class ENTRY> int
-File_Parser<ENTRY>::delimiter (char ch)
-{
- return ch == ' ' || ch == ',' || ch == '\t';
-}
-
-template <class ENTRY> int
-File_Parser<ENTRY>::comments (char ch)
-{
- return ch == '#';
-}
-
-template <class ENTRY> int
-File_Parser<ENTRY>::skipline (void)
-{
- // Skip the remainder of the line.
-
- int c;
-
- while ((c = getc (this->infile_)) != '\n' && c != EOF)
- continue;
-
- return c;
-}
-
-#endif /* _FILE_PARSER_C */
diff --git a/apps/Gateway/Gateway/File_Parser.h b/apps/Gateway/Gateway/File_Parser.h
deleted file mode 100644
index a91a8f75827..00000000000
--- a/apps/Gateway/Gateway/File_Parser.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// File_Parser.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef _FILE_PARSER
-#define _FILE_PARSER
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class FP
-{
- // = TITLE
- // This class serves as a namespace for the <Return_Type>.
-public:
- enum Return_Type
- {
- EOLINE,
- EOFILE,
- SUCCESS,
- COMMENT,
- DEFAULT,
- PARSE_ERROR
- };
-};
-
-template <class ENTRY>
-class File_Parser
-{
- // = TITLE
- // Class used to parse the configuration file for the
- // <Consumer_Map>.
-public:
- // = Open and Close the file specified
- int open (const char filename[]);
- int close (void);
-
- virtual FP::Return_Type read_entry (ENTRY &entry,
- int &line_number) = 0;
- // Pure virtual hook that subclasses override and use the protected
- // methods to fill in the <entry>.
-
-protected:
- FP::Return_Type getword (char buf[]);
- // Read the next ASCII word.
-
- FP::Return_Type getint (ACE_INT32 &value);
- // Read the next integer.
-
- FP::Return_Type readword (char buf[]);
- // Read the next "word," which is demarcated by <delimiter>s.
- //
- // @@ This function is inherently flawed since it doesn't take a
- // count of the size of <buf>...
-
- int delimiter (char ch);
- // Returns true if <ch> is a delimiter, i.e., ' ', ',', or '\t'.
-
- int comments (char ch);
- // Returns true if <ch> is the comment character, i.e., '#'.
-
- int skipline (void);
- // Skips to the remainder of a line, e.g., when we find a comment
- // character.
-
- FILE *infile_;
- // Pointer to the file we're reading.
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "File_Parser.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("File_Parser.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#endif /* _FILE_PARSER */
diff --git a/apps/Gateway/Gateway/Gateway.cpp b/apps/Gateway/Gateway/Gateway.cpp
deleted file mode 100644
index 3838f6f8758..00000000000
--- a/apps/Gateway/Gateway/Gateway.cpp
+++ /dev/null
@@ -1,342 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "ace/Service_Config.h"
-#include "Config_Files.h"
-#include "Event_Channel.h"
-#include "Gateway.h"
-
-ACE_RCSID(Gateway, Gateway, "$Id$")
-
-class ACE_Svc_Export Gateway : public ACE_Service_Object
-{
- // = TITLE
- // Integrates the whole Gateway application.
- //
- // = DESCRIPTION
- // This implementation uses the <Event_Channel> as the basis
- // for the <Gateway> routing.
-protected:
- // = Service configurator hooks.
- virtual int init (int argc, char *argv[]);
- // Perform initialization.
-
- virtual int fini (void);
- // Perform termination when unlinked dynamically.
-
- virtual int info (char **, size_t) const;
- // Return info about this service.
-
- // = Configuration methods.
- int parse_connection_config_file (void);
- // Parse the proxy configuration file.
-
- int parse_consumer_config_file (void);
- // Parse the consumer configuration file.
-
- // = Lifecycle management methods.
- int handle_input (ACE_HANDLE);
- // Shut down the Gateway when input comes in from the controlling
- // console.
-
- int handle_signal (int signum, siginfo_t * = 0, ucontext_t * = 0);
- // Shut down the Gateway when a signal arrives.
-
- Event_Channel event_channel_;
- // The Event Channel routes events from Supplier(s) to Consumer(s)
- // using <Supplier_Handler> and <Consumer_Handler> objects.
-
- Connection_Handler_Factory connection_handler_factory_;
- // Creates the appropriate type of <Connection_Handlers>.
-};
-
-int
-Gateway::handle_signal (int signum, siginfo_t *, ucontext_t *)
-{
- ACE_UNUSED_ARG (signum);
-
- // Shut down the main event loop.
- ACE_Reactor::end_event_loop ();
- return 0;
-}
-
-int
-Gateway::handle_input (ACE_HANDLE h)
-{
- char buf[BUFSIZ];
- // Consume the input...
- ACE_OS::read (h, buf, sizeof (buf));
-
- // Shut us down.
- return this->handle_signal ((int) h);
-}
-
-int
-Gateway::init (int argc, char *argv[])
-{
- // Parse the "command-line" arguments.
- Options::instance ()->parse_args (argc, argv);
-
- ACE_Sig_Set sig_set;
- sig_set.sig_add (SIGINT);
- sig_set.sig_add (SIGQUIT);
-
- // Register ourselves to receive signals so we can shut down
- // gracefully.
-
- if (ACE_Reactor::instance ()->register_handler (sig_set,
- this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) %p\n",
- "register_handler"),
- -1);
-
- // Register this handler to receive events on stdin. We use this to
- // shutdown the Gateway gracefully.
- if (ACE_Event_Handler::register_stdin_handler (this,
- ACE_Reactor::instance (),
- ACE_Thread_Manager::instance ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) %p\n",
- "register_stdin_handler"),
- -1);
-
- // If this->performance_window_ > 0 start a timer.
-
- if (Options::instance ()->performance_window () > 0)
- {
- if (ACE_Reactor::instance ()->schedule_timer
- (&this->event_channel_, 0,
- Options::instance ()->performance_window ()) == -1)
- ACE_ERROR ((LM_ERROR,
- "(%t) %p\n",
- "schedule_timer"));
- else
- ACE_DEBUG ((LM_DEBUG,
- "starting timer for %d seconds...\n",
- Options::instance ()->performance_window ()));
- }
-
- // Are we running as a connector?
- if (Options::instance ()->enabled
- (Options::CONSUMER_CONNECTOR | Options::SUPPLIER_CONNECTOR))
- {
- // Parse the proxy configuration file.
- this->parse_connection_config_file ();
-
- // Parse the consumer config file and build the event forwarding
- // discriminator.
- this->parse_consumer_config_file ();
- }
-
- // Initialize the Event_Channel.
- return this->event_channel_.open ();
-}
-
-// This method is automatically called when the Gateway is shutdown.
-
-int
-Gateway::fini (void)
-{
- // Remove the handler that receive events on stdin. Otherwise, we
- // will crash on shutdown.
- ACE_Event_Handler::remove_stdin_handler (ACE_Reactor::instance (),
- ACE_Thread_Manager::instance ());
-
- // Close down the event channel.
- this->event_channel_.close ();
-
- // Need to make sure we cleanup this Singleton.
- delete Options::instance ();
- return 0;
-}
-
-// Returns information on the currently active service.
-
-int
-Gateway::info (char **strp, size_t length) const
-{
- char buf[BUFSIZ];
-
- ACE_OS::sprintf (buf, "%s\t %s", "Gateway daemon",
- "# Application-level gateway\n");
-
- if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
- return -1;
- else
- ACE_OS::strncpy (*strp, buf, length);
- return ACE_OS::strlen (buf);
-}
-
-// Parse and build the proxy table.
-
-int
-Gateway::parse_connection_config_file (void)
-{
- // File that contains the proxy configuration information.
- Connection_Config_File_Parser connection_file;
- int file_empty = 1;
- int line_number = 0;
-
- if (connection_file.open (Options::instance ()->connection_config_file ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) %p\n",
- Options::instance ()->connection_config_file ()),
- -1);
-
- // Keep track of the previous connection id to make sure the
- // connection config file isn't corrupted.
- int previous_connection_id = 0;
-
- // Read config file one line at a time.
-
- for (Connection_Config_Info pci;
- connection_file.read_entry (pci, line_number) != FP::EOFILE;
- )
- {
- file_empty = 0;
-
- // First time in check.
- if (previous_connection_id == 0)
- {
- previous_connection_id = 1;
-
- if (pci.connection_id_ != 1)
- ACE_DEBUG ((LM_DEBUG,
- "(%t) warning, the first connection id should be 1 not %d\n",
- pci.connection_id_));
- }
- else if (previous_connection_id + 1 != pci.connection_id_)
- ACE_DEBUG ((LM_DEBUG,
- "(%t) warning, connection ids should keep increasing by 1 and %d + 1 != %d\n",
- previous_connection_id,
- pci.connection_id_));
-
- // Update the last connection id to ensure that we monotonically
- // increase by 1.
- previous_connection_id = pci.connection_id_;
-
- if (Options::instance ()->enabled (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "(%t) conn id = %d, "
- "host = %s, "
- "remote port = %d, "
- "proxy role = %c, "
- "max retry timeout = %d, "
- "local port = %d, "
- "priority = %d\n",
- pci.connection_id_,
- pci.host_,
- pci.remote_port_,
- pci.connection_role_,
- pci.max_retry_timeout_,
- pci.local_port_,
- pci.priority_));
-
- pci.event_channel_ = &this->event_channel_;
-
- // Create the appropriate type of Proxy.
- Connection_Handler *connection_handler;
-
- ACE_ALLOCATOR_RETURN (connection_handler,
- this->connection_handler_factory_.make_connection_handler (pci),
- -1);
-
- // Bind the new Connection_Handler to the connection ID.
- this->event_channel_.bind_proxy (connection_handler);
- }
-
- // Keep track of the next available connection id, which is
- // necessary for Peers that connect with us, rather than vice versa.
- Options::instance ()->connection_id () = previous_connection_id + 1;
-
- if (file_empty)
- ACE_ERROR ((LM_WARNING,
- "warning: connection connection_handler configuration file was empty\n"));
- return 0;
-}
-
-int
-Gateway::parse_consumer_config_file (void)
-{
- // File that contains the consumer event forwarding information.
- Consumer_Config_File_Parser consumer_file;
- int file_empty = 1;
- int line_number = 0;
-
- if (consumer_file.open (Options::instance ()->consumer_config_file ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) %p\n",
- Options::instance ()->consumer_config_file ()),
- -1);
-
- // Read config file line at a time.
- for (Consumer_Config_Info cci_entry;
- consumer_file.read_entry (cci_entry, line_number) != FP::EOFILE;
- )
- {
- file_empty = 0;
-
- if (Options::instance ()->enabled (Options::DEBUG))
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) connection id = %d, payload = %d, "
- "number of consumers = %d\n",
- cci_entry.connection_id_,
- cci_entry.type_,
- cci_entry.total_consumers_));
-
- for (int i = 0; i < cci_entry.total_consumers_; i++)
- ACE_DEBUG ((LM_DEBUG,
- "(%t) destination[%d] = %d\n",
- i,
- cci_entry.consumers_[i]));
- }
-
- Consumer_Dispatch_Set *dispatch_set;
- ACE_NEW_RETURN (dispatch_set,
- Consumer_Dispatch_Set,
- -1);
-
- Event_Key event_addr (cci_entry.connection_id_,
- cci_entry.type_);
-
- // Add the Consumers to the Dispatch_Set.
- for (int i = 0; i < cci_entry.total_consumers_; i++)
- {
- Connection_Handler *connection_handler = 0;
-
- // Lookup destination and add to Consumer_Dispatch_Set set
- // if found.
- if (this->event_channel_.find_proxy (cci_entry.consumers_[i],
- connection_handler) != -1)
- dispatch_set->insert (connection_handler);
- else
- ACE_ERROR ((LM_ERROR,
- "(%t) not found: destination[%d] = %d\n",
- i,
- cci_entry.consumers_[i]));
- }
-
- this->event_channel_.subscribe (event_addr, dispatch_set);
- }
-
- if (file_empty)
- ACE_ERROR ((LM_WARNING,
- "warning: consumer map configuration file was empty\n"));
- return 0;
-}
-
-// The following is a "Factory" used by the ACE_Service_Config and
-// svc.conf file to dynamically initialize the state of the Gateway.
-
-ACE_SVC_FACTORY_DEFINE (Gateway)
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Node<Connection_Handler *>;
-template class ACE_Unbounded_Set<Connection_Handler *>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Node<Connection_Handler *>
-#pragma instantiate ACE_Unbounded_Set<Connection_Handler *>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/Gateway/Gateway/Gateway.dsp b/apps/Gateway/Gateway/Gateway.dsp
deleted file mode 100644
index 4a6ecc2686a..00000000000
--- a/apps/Gateway/Gateway/Gateway.dsp
+++ /dev/null
@@ -1,96 +0,0 @@
-# Microsoft Developer Studio Project File - Name="Gateway" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=Gateway - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "Gateway.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Gateway.mak" CFG="Gateway - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Gateway - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /D "_WINDOWS" /D "WIN32" /D "_DEBUG" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-# Begin Target
-
-# Name "Gateway - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\Concrete_Connection_Handlers.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Config_Files.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connection_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connection_Handler_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connection_Handler_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Channel.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Forwarding_Discriminator.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\File_Parser.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Gateway.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Options.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/apps/Gateway/Gateway/Gateway.dsw b/apps/Gateway/Gateway/Gateway.dsw
deleted file mode 100644
index 46009cd5c09..00000000000
--- a/apps/Gateway/Gateway/Gateway.dsw
+++ /dev/null
@@ -1,44 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "Gateway"=.\Gateway.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "gatewayd"=.\gatewayd.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name Gateway
- End Project Dependency
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/apps/Gateway/Gateway/Gateway.h b/apps/Gateway/Gateway/Gateway.h
deleted file mode 100644
index 56f68644c39..00000000000
--- a/apps/Gateway/Gateway/Gateway.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Gateway.h
-//
-// = DESCRIPTION
-// Since the Gateway is an <ACE_Service_Object>, this file defines
-// the entry point into the Service Configurator framework.
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef ACE_GATEWAY
-#define ACE_GATEWAY
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_SVC_FACTORY_DECLARE (Gateway)
-
-#endif /* ACE_GATEWAY */
-
diff --git a/apps/Gateway/Gateway/IO_Handler.cpp b/apps/Gateway/Gateway/IO_Handler.cpp
deleted file mode 100644
index ba1b355b3ba..00000000000
--- a/apps/Gateway/Gateway/IO_Handler.cpp
+++ /dev/null
@@ -1,710 +0,0 @@
-// $Id$
-
-#include "Consumer_Entry.h"
-#include "IO_Handler_Connector.h"
-
-// Convenient short-hands.
-#define CO CONDITION
-#define MU MAP_MUTEX
-
-// The total number of bytes sent/received on this channel.
-
-size_t
-IO_Handler::total_bytes (void)
-{
- return this->total_bytes_;
-}
-
-void
-IO_Handler::total_bytes (size_t bytes)
-{
- this->total_bytes_ += bytes;
-}
-
-IO_Handler::IO_Handler (Consumer_Map *consumer_map,
- IO_Handler_Connector *ioc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : ACE_Svc_Handler<ACE_SOCK_STREAM, SYNCH_STRATEGY> (thr_mgr),
- consumer_map_ (consumer_map),
- id_ (-1),
- total_bytes_ (0),
- state_ (IO_Handler::IDLE),
- connector_ (ioc),
- timeout_ (1),
- max_timeout_ (IO_Handler::MAX_RETRY_TIMEOUT),
- socket_queue_size_ (socket_queue_size)
-{
-}
-
-// Set the associated channel.
-
-void
-IO_Handler::active (int a)
-{
- this->state (a == 0 ? IO_Handler::IDLE : IO_Handler::ESTABLISHED);
-}
-
-// Get the associated channel.
-
-int
-IO_Handler::active (void)
-{
- return this->state () == IO_Handler::ESTABLISHED;
-}
-
-// Set the direction.
-
-void
-IO_Handler::direction (char d)
-{
- this->direction_ = d;
-}
-
-// Get the direction.
-
-char
-IO_Handler::direction (void)
-{
- return this->direction_;
-}
-
-// Sets the timeout delay.
-
-void
-IO_Handler::timeout (int to)
-{
- if (to > this->max_timeout_)
- to = this->max_timeout_;
-
- this->timeout_ = to;
-}
-
-// Recalculate the current retry timeout delay using exponential
-// backoff. Returns the original timeout (i.e., before the
-// recalculation).
-
-int
-IO_Handler::timeout (void)
-{
- int old_timeout = this->timeout_;
- this->timeout_ *= 2;
-
- if (this->timeout_ > this->max_timeout_)
- this->timeout_ = this->max_timeout_;
-
- return old_timeout;
-}
-
-// Sets the max timeout delay.
-
-void
-IO_Handler::max_timeout (int mto)
-{
- this->max_timeout_ = mto;
-}
-
-// Gets the max timeout delay.
-
-int
-IO_Handler::max_timeout (void)
-{
- return this->max_timeout_;
-}
-
-// Restart connection asynchronously when timeout occurs.
-
-int
-IO_Handler::handle_timeout (const ACE_Time_Value &, const void *)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%t) attempting to reconnect IO_Handler %d with timeout = %d\n",
- this->id (), this->timeout_));
- return this->connector_->initiate_connection (this, ACE_Synch_Options::asynch);
-}
-
-// Restart connection (blocking_semantics dicates whether we
-// restart synchronously or asynchronously).
-
-int
-IO_Handler::reinitiate_connection (void)
-{
- // Skip over deactivated descriptors.
- if (this->get_handle () != -1)
- {
- // Make sure to close down peer to reclaim descriptor.
- this->peer ().close ();
-
-#if 0
-// if (this->state () == FAILED)
-// {
- // Reinitiate timeout to improve reconnection time.
-// this->timeout (1);
-#endif
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) scheduling reinitiation of IO_Handler %d\n",
- this->id ()));
-
- // Reschedule ourselves to try and connect again.
- if (ACE_Service_Config::reactor ()->schedule_timer
- (this, 0, this->timeout ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "schedule_timer"), -1);
- }
- return 0;
-}
-
-// Handle shutdown of the IO_Handler object.
-
-int
-IO_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%t) shutting down IO_Handler %d on handle %d\n",
- this->id (), this->get_handle ()));
-
- return this->reinitiate_connection ();
-}
-
-// Set the state of the channel.
-
-void
-IO_Handler::state (IO_Handler::State s)
-{
- this->state_ = s;
-}
-
-// Perform the first-time initiation of a connection to the peer.
-
-int
-IO_Handler::initialize_connection (void)
-{
- this->state_ = IO_Handler::ESTABLISHED;
-
- // Restart the timeout to 1.
- this->timeout (1);
-
-#if defined (ASSIGN_SUPPLIER_ID)
- // Action that sends the route id to the peerd.
-
- CONN_ID id = htons (this->id ());
-
- ssize_t n = this->peer ().send ((const void *) &id, sizeof id);
-
- if (n != sizeof id)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- n == 0 ? "gatewayd has closed down unexpectedly" : "send"),
- -1);
-#endif /* ASSIGN_SUPPLIER_ID */
- return 0;
-}
-
-// Set the size of the socket queue.
-
-void
-IO_Handler::socket_queue_size (void)
-{
- if (this->socket_queue_size_ > 0)
- {
- int option = this->direction_ == 'S' ? SO_RCVBUF : SO_SNDBUF;
-
- if (this->peer ().set_option (SOL_SOCKET, option,
- &this->socket_queue_size_, sizeof (int)) == -1)
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "set_option"));
- }
-}
-
-// Upcall from the ACE_Acceptor::handle_input() that
-// delegates control to our application-specific IO_Handler.
-
-int
-IO_Handler::open (void *a)
-{
- ACE_DEBUG ((LM_DEBUG, "(%t) IO_Handler's fd = %d\n",
- this->peer ().get_handle ()));
-
- // Set the size of the socket queue.
- this->socket_queue_size ();
-
- // Turn on non-blocking I/O.
- if (this->peer ().enable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- // Call down to the base class to activate and register this handler.
- if (this->ACE_Svc_Handler<ACE_SOCK_STREAM, SYNCH_STRATEGY>::open (a) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "activate"), -1);
-
- return this->initialize_connection ();
-}
-
-// Return the current state of the channel.
-
-IO_Handler::State
-IO_Handler::state (void)
-{
- return this->state_;
-}
-
-void
-IO_Handler::id (CONN_ID id)
-{
- this->id_ = id;
-}
-
-CONN_ID
-IO_Handler::id (void)
-{
- return this->id_;
-}
-
-// Set the peer's address information.
-int
-IO_Handler::bind (const ACE_INET_Addr &remote_addr,
- const ACE_INET_Addr &local_addr,
- CONN_ID id)
-{
- this->remote_addr_ = remote_addr;
- this->local_addr_ = local_addr;
- this->id_ = id;
- return 0;
-}
-
-ACE_INET_Addr &
-IO_Handler::remote_addr (void)
-{
- return this->remote_addr_;
-}
-
-ACE_INET_Addr &
-IO_Handler::local_addr (void)
-{
- return this->local_addr_;
-}
-
-// Constructor sets the consumer map pointer.
-
-Consumer_Handler::Consumer_Handler (Consumer_Map *consumer_map,
- IO_Handler_Connector *ioc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : IO_Handler (consumer_map, ioc, thr_mgr, socket_queue_size)
-{
- this->direction_ = 'C';
- this->msg_queue ()->high_water_mark (Consumer_Handler::QUEUE_SIZE);
-}
-
-// This method should be called only when the peer shuts down
-// unexpectedly. This method simply marks the IO_Handler as
-// having failed so that handle_close () can reconnect.
-
-int
-Consumer_Handler::handle_input (ACE_HANDLE)
-{
- char buf[1];
-
- this->state (IO_Handler::FAILED);
-
- switch (this->peer ().recv (buf, sizeof buf))
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer has failed unexpectedly for Output IO_Handler %d\n",
- this->id ()), -1);
- /* NOTREACHED */
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer has shutdown unexpectedly for Output IO_Handler %d\n",
- this->id ()), -1);
- /* NOTREACHED */
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer is sending input on Output IO_Handler %d\n",
- this->id ()), -1);
- /* NOTREACHED */
- }
-}
-
-// Perform a non-blocking put() of event MB. If we are unable to
-// send the entire event the remainder is re-queued at the *front* of
-// the Event_List.
-
-int
-Consumer_Handler::nonblk_put (ACE_Message_Block *mb)
-{
- // Try to send the event. If we don't send it all (e.g., due to
- // flow control), then re-queue the remainder at the head of the
- // Event_List and ask the ACE_Reactor to inform us (via
- // handle_output()) when it is possible to try again.
-
- ssize_t n = this->send (mb);
-
- if (n == -1)
- {
- // Things have gone wrong, let's try to close down and set up a new reconnection.
- this->state (IO_Handler::FAILED);
- this->handle_close ();
- return -1;
- }
- else if (errno == EWOULDBLOCK) // Didn't manage to send everything.
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) queueing activated on handle %d to routing id %d\n",
- this->get_handle (), this->id ()));
-
- // ACE_Queue in *front* of the list to preserve order.
- if (this->msg_queue ()->enqueue_head
- (mb, (ACE_Time_Value *) &ACE_Time_Value::zero) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enqueue_head"), -1);
-
- // Tell ACE_Reactor to call us back when we can send again.
- else if (ACE_Service_Config::reactor ()->
- schedule_wakeup (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "schedule_wakeup"), -1);
- return 0;
- }
- else
- return n;
-}
-
-ssize_t
-Consumer_Handler::send (ACE_Message_Block *mb)
-{
- ssize_t len = mb->length ();
- ssize_t n = this->peer ().send (mb->rd_ptr (), len);
-
- if (n <= 0)
- return errno == EWOULDBLOCK ? 0 : n;
- else if (n < len)
- // Re-adjust pointer to skip over the part we did send.
- mb->rd_ptr (n);
- else /* if (n == length) */
- {
- // The whole event is sent, we can now safely deallocate the
- // buffer. Note that this should decrement a reference count...
- delete mb;
- errno = 0;
- }
- this->total_bytes (n);
- return n;
-}
-
-// Finish sending an event when flow control conditions abate.
-// This method is automatically called by the ACE_Reactor.
-
-int
-Consumer_Handler::handle_output (ACE_HANDLE)
-{
- ACE_Message_Block *mb = 0;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) in handle_output on handle %d\n",
- this->get_handle ()));
- // The list had better not be empty, otherwise there's a bug!
-
- if (this->msg_queue ()->dequeue_head
- (mb, (ACE_Time_Value *) &ACE_Time_Value::zero) != -1)
- {
- switch (this->nonblk_put (mb))
- {
- case 0: // Partial send.
- ACE_ASSERT (errno == EWOULDBLOCK);
- // Didn't write everything this time, come back later...
- break;
-
- case -1:
- // Caller is responsible for freeing a ACE_Message_Block if failures occur.
- delete mb;
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "transmission failure"));
-
- /* FALLTHROUGH */
- default: // Sent the whole thing.
-
- // If we succeed in writing the entire event (or we did not
- // fail due to EWOULDBLOCK) then check if there are more
- // events on the Event_List. If there aren't, tell the
- // ACE_Reactor not to notify us anymore (at least until
- // there are new events queued up).
-
- if (this->msg_queue ()->is_empty ())
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) queueing deactivated on handle %d to routing id %d\n",
- this->get_handle (), this->id ()));
-
-
- if (ACE_Service_Config::reactor ()->
- cancel_wakeup (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "cancel_wakeup"));
- }
- }
- }
- else
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "dequeue_head"));
- return 0;
-}
-
-// Send an event to a peer (may queue if necessary).
-
-int
-Consumer_Handler::put (ACE_Message_Block *mb, ACE_Time_Value *)
-{
- if (this->msg_queue ()->is_empty ())
- // Try to send the event *without* blocking!
- return this->nonblk_put (mb);
- else
- // If we have queued up events due to flow control then just
- // enqueue and return.
- return this->msg_queue ()->enqueue_tail
- (mb, (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-// Constructor sets the consumer map pointer and the connector
-// pointer.
-
-Supplier_Handler::Supplier_Handler (Consumer_Map *consumer_map,
- IO_Handler_Connector *ioc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : msg_frag_ (0),
- IO_Handler (consumer_map, ioc, thr_mgr, socket_queue_size)
-{
- this->direction_ = 'S';
- this->msg_queue ()->high_water_mark (0);
-}
-
-// Receive a Peer event from peerd. Handles fragmentation.
-//
-// The routing event returned from recv consists of two parts:
-// 1. The Address part, contains the virtual routing id.
-// 2. The Data part, which contains the actual data to be routed.
-//
-// The reason for having two parts is to shield the higher layers
-// of software from knowledge of the event structure.
-
-int
-Supplier_Handler::recv (ACE_Message_Block *&forward_addr)
-{
- Event *event;
- ssize_t len;
- ssize_t n = 0;
- size_t offset = 0;
-
- if (this->msg_frag_ == 0)
- // No existing fragment...
- ACE_NEW_RETURN (this->msg_frag_,
- ACE_Message_Block (sizeof (Event)),
- -1);
-
- event = (Event *) this->msg_frag_->rd_ptr ();
-
- const ssize_t HEADER_SIZE = sizeof (Event_Header);
- ssize_t header_bytes_left_to_read = HEADER_SIZE - this->msg_frag_->length ();
-
- if (header_bytes_left_to_read > 0)
- {
- n = this->peer ().recv (this->msg_frag_->wr_ptr (),
- header_bytes_left_to_read);
-
- if (n == -1 /* error */
- || n == 0 /* EOF */)
- {
- ACE_ERROR ((LM_ERROR, "%p\n",
- "Recv error during header read "));
- ACE_DEBUG ((LM_DEBUG,
- "attempted to read %d\n",
- header_bytes_left_to_read));
- delete this->msg_frag_;
- this->msg_frag_ = 0;
- return n;
- }
-
- // Bump the write pointer by the amount read.
- this->msg_frag_->wr_ptr (n);
-
- // At this point we may or may not have the ENTIRE header.
- if (this->msg_frag_->length () < HEADER_SIZE)
- {
- ACE_DEBUG ((LM_DEBUG,
- "Partial header received: only %d bytes\n",
- this->msg_frag_->length ()));
- // Notify the caller that we didn't get an entire event.
- errno = EWOULDBLOCK;
- return -1;
- }
- }
-
- // At this point there is a complete, valid header in msg_frag_
- len = sizeof event->buf_ + HEADER_SIZE - this->msg_frag_->length ();
-
- ssize_t m = this->peer ().recv (event->buf_ + offset, len);
-
- // Try to receive the remainder of the event
-
- switch (m)
- {
- case -1:
- if (errno == EWOULDBLOCK)
- {
- // This shouldn't happen since the ACE_Reactor
- // just triggered us to handle pending I/O!
- ACE_DEBUG ((LM_DEBUG, "(%t) unexpected recv failure\n"));
- errno = EWOULDBLOCK;
- return -1;
- }
- else
- /* FALLTHROUGH */;
-
- case 0: // Premature EOF.
- delete this->msg_frag_;
- this->msg_frag_ = 0;
- return 0;
-
- default:
- if (m != len)
- // Re-adjust pointer to skip over the part we've read.
- {
- this->msg_frag_->wr_ptr (m);
- errno = EWOULDBLOCK;
- return -1; // Inform caller that we didn't get the whole event.
- }
- else
- {
- // Set the write pointer at 1 past the end of the event.
- this->msg_frag_->wr_ptr (m);
-
- // Set the read pointer to the beginning of the event.
- this->msg_frag_->rd_ptr (this->msg_frag_->base ());
-
- // Allocate an event forwarding header and chain the data
- // portion onto its continuation field.
- ACE_NEW_RETURN (forward_addr,
- ACE_Message_Block (sizeof (Event_Addr),
- ACE_Message_Block::MB_PROTO,
- this->msg_frag_),
- -1);
-
- Event_Addr event_addr (this->id (), event->header_.routing_id_, 0);
- // Copy the forwarding address from the Event_Addr into
- // forward_addr.
- forward_addr->copy ((char *) &event_addr, sizeof (Event));
-
- // Reset the pointer to indicate we've got an entire event.
- this->msg_frag_ = 0;
- }
- this->total_bytes (m + n);
-#if defined (VERBOSE)
- ACE_DEBUG ((LM_DEBUG, "(%t) channel id = %d, route id = %d, len = %d, payload = %*s",
- event_addr.conn_id_, event->header_.routing_id_, event->header_.len_,
- event->header_.len_, event->buf_));
-#else
- ACE_DEBUG ((LM_DEBUG, "(%t) route id = %d, cur len = %d, total bytes read = %d\n",
- event->header_.routing_id_, event->header_.len_, this->total_bytes ()));
-#endif
- return m + n;
- }
-}
-
-// Receive various types of input (e.g., Peer event from the
-// gatewayd, as well as stdio).
-
-int
-Supplier_Handler::handle_input (ACE_HANDLE)
-{
- ACE_Message_Block *forward_addr = 0;
-
- switch (this->recv (forward_addr))
- {
- case 0:
- // Note that a peer should never initiate a shutdown.
- this->state (IO_Handler::FAILED);
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer has closed down unexpectedly for Input IO_Handler %d\n",
- this->id ()), -1);
- /* NOTREACHED */
- case -1:
- if (errno == EWOULDBLOCK)
- // A short-read, we'll come back and finish it up later on!
- return 0;
- else // A weird problem occurred, shut down and start again.
- {
- this->state (IO_Handler::FAILED);
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p for Input IO_Handler %d\n",
- "Peer has failed unexpectedly",
- this->id ()), -1);
- }
- /* NOTREACHED */
- default:
- return this->forward (forward_addr);
- }
-}
-
-// Route an event to its appropriate destination.
-
-int
-Supplier_Handler::forward (ACE_Message_Block *forward_addr)
-{
- // We got a valid event, so determine its virtual routing id,
- // which is stored in the first of the two event blocks chained
- // together.
-
- Event_Addr *forwarding_key = (Event_Addr *) forward_addr->rd_ptr ();
-
- // Skip over the address portion.
- const ACE_Message_Block *const data = forward_addr->cont ();
-
- // RE points to the routing entry located for this routing id.
- Consumer_Entry *re = 0;
-
- if (this->consumer_map_->find (*forwarding_key, re) != -1)
- {
- // Check to see if there are any destinations.
- if (re->destinations ()->size () == 0)
- ACE_DEBUG ((LM_WARNING,
- "there are no active destinations for this event currently\n"));
-
- else // There are destinations, so forward the event.
- {
- Consumer_Entry::ENTRY_SET *esp = re->destinations ();
- Consumer_Entry::ENTRY_ITERATOR si (*esp);
-
- for (IO_Handler **channel = 0; si.next (channel) != 0; si.advance ())
- {
- // Only process active channels.
- if ((*channel)->active ())
- {
- // Clone the event portion (should be doing reference counting here...)
- ACE_Message_Block *newmsg = data->clone ();
-
- ACE_DEBUG ((LM_DEBUG, "(%t) sending to peer %d\n", (*channel)->id ()));
-
- if ((*channel)->put (newmsg) == -1)
- {
- if (errno == EWOULDBLOCK) // The queue has filled up!
- ACE_ERROR ((LM_ERROR, "(%t) %p\n",
- "gateway is flow controlled, so we're dropping events"));
- else
- ACE_ERROR ((LM_ERROR, "(%t) %p transmission error to route %d\n",
- "put", (*channel)->id ()));
-
- // Caller is responsible for freeing a ACE_Message_Block if failures occur.
- delete newmsg;
- }
- }
- }
- // Will become superfluous once we have reference counting...
- delete forward_addr;
- return 0;
- }
- }
- delete forward_addr;
- // Failure return.
- ACE_ERROR ((LM_DEBUG, "(%t) find failed on conn id = %d, logical id = %d, payload = %d\n",
- forwarding_key->conn_id_, forwarding_key->logical_id_, forwarding_key->payload_));
- return 0;
-}
-
-#if defined (ACE_TEMPLATES_REQUIRE_SPECIALIZATION)
-template class ACE_Map_Manager<Event_Addr, Consumer_Entry *, MAP_MUTEX>;
-template class ACE_Map_Iterator<Event_Addr, Consumer_Entry *, MAP_MUTEX>;
-template class ACE_Map_Entry<Event_Addr, Consumer_Entry *>;
-#endif /* ACE_TEMPLATES_REQUIRE_SPECIALIZATION */
diff --git a/apps/Gateway/Gateway/IO_Handler.h b/apps/Gateway/Gateway/IO_Handler.h
deleted file mode 100644
index 7bda073f09b..00000000000
--- a/apps/Gateway/Gateway/IO_Handler.h
+++ /dev/null
@@ -1,224 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// IO_Handler.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_IO_HANDLER)
-#define _IO_HANDLER
-
-#include "ace/Service_Config.h"
-#include "ace/SOCK_Connector.h"
-#include "ace/Svc_Handler.h"
-#include "Consumer_Map.h"
-#include "Consumer_Entry.h"
-#include "Event.h"
-
-// Forward declaration.
-class IO_Handler_Connector;
-
-class IO_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, SYNCH_STRATEGY>
- // = TITLE
- // IO_Handler contains info about connection state and addressing.
- //
- // = DESCRIPTION
- // The IO_Handler classes process events sent from the peers to the
- // gateway. These classes works as follows:
- //
- // 1. IO_Handler_Connector creates a number of connections with the set of
- // peers specified in a configuration file.
- //
- // 2. For each peer that connects successfully, IO_Handler_Connector
- // creates an IO_Handler object. Each object assigns a unique routing
- // id to its associated peer. The Handlers are used by gatewayd
- // that to receive, route, and forward events from source peer(s)
- // to destination peer(s).
-{
-public:
- IO_Handler (Consumer_Map *,
- IO_Handler_Connector *,
- ACE_Thread_Manager * = 0,
- int socket_queue_size = 0);
-
- virtual int open (void * = 0);
- // Initialize and activate a single-threaded IO_Handler (called by
- // ACE_Connector::handle_output()).
-
- int bind (const ACE_INET_Addr &remote_addr,
- const ACE_INET_Addr &local_addr,
- CONN_ID);
- // Set the peer's addressing and routing information.
-
- ACE_INET_Addr &remote_addr (void);
- // Returns the peer's routing address.
-
- ACE_INET_Addr &local_addr (void);
- // Returns our local address.
-
- // = Set/get routing id.
- CONN_ID id (void);
- void id (CONN_ID);
-
- // = Set/get the current state of the IO_Handler.
- enum State
- {
- IDLE = 1, // Prior to initialization.
- CONNECTING, // During connection establishment.
- ESTABLISHED, // IO_Handler is established and active.
- DISCONNECTING, // IO_Handler is in the process of connecting.
- FAILED // IO_Handler has failed.
- };
-
- // = Set/get the current state.
- State state (void);
- void state (State);
-
- // = Set/get the current retry timeout delay.
- int timeout (void);
- void timeout (int);
-
- // = Set/get the maximum retry timeout delay.
- int max_timeout (void);
- void max_timeout (int);
-
- // = Set/get IO_Handler activity status.
- int active (void);
- void active (int);
-
- // = Set/get direction (necessary for error checking).
- char direction (void);
- void direction (char);
-
- // = The total number of bytes sent/received on this channel.
- size_t total_bytes (void);
- void total_bytes (size_t bytes);
- // Increment count by <bytes>.
-
- virtual int handle_timeout (const ACE_Time_Value &, const void *arg);
- // Perform timer-based IO_Handler reconnection.
-
-protected:
- enum
- {
- MAX_RETRY_TIMEOUT = 300 // 5 minutes is the maximum timeout.
- };
-
- int initialize_connection (void);
- // Perform the first-time initiation of a connection to the peer.
-
- int reinitiate_connection (void);
- // Reinitiate a connection asynchronously when peers fail.
-
- void socket_queue_size (void);
- // Set the socket queue size.
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::RWE_MASK);
- // Perform IO_Handler termination.
-
- Consumer_Map *consumer_map_;
- // Pointer to table that maps an event
- // to a Set of IO_Handler *'s for output.
-
- ACE_INET_Addr remote_addr_;
- // Address of peer.
-
- ACE_INET_Addr local_addr_;
- // Address of us.
-
- CONN_ID id_;
- // The assigned routing ID of this entry.
-
- size_t total_bytes_;
- // The total number of bytes sent/received on this channel.
-
- State state_;
- // The current state of the channel.
-
- IO_Handler_Connector *connector_;
- // Back pointer to IO_Handler_Connector to reestablish broken
- // connections.
-
- int timeout_;
- // Amount of time to wait between reconnection attempts.
-
- int max_timeout_;
- // Maximum amount of time to wait between reconnection attempts.
-
- char direction_;
- // Indicates which direction data flows through the channel ('O' ==
- // output and 'I' == input).
-
- int socket_queue_size_;
- // Size of the socket queue (0 means "use default").
-};
-
-class Supplier_Handler : public IO_Handler
- // = TITLE
- // Handle reception of Peer events arriving as events.
-{
-public:
- Supplier_Handler (Consumer_Map *,
- IO_Handler_Connector *,
- ACE_Thread_Manager * = 0,
- int socket_queue_size = 0);
- // Constructor sets the consumer map pointer.
-
- virtual int handle_input (ACE_HANDLE = ACE_INVALID_HANDLE);
- // Receive and process peer events.
-
-protected:
- virtual int recv (ACE_Message_Block *&);
- // Receive an event from a Supplier.
-
- int forward (ACE_Message_Block *event);
- // Forward the Event to a Consumer.
-
- ACE_Message_Block *msg_frag_;
- // Keep track of event fragment to handle non-blocking recv's from
- // Suppliers.
-};
-
-class Consumer_Handler : public IO_Handler
- // = TITLE
- // Handle transmission of events to other Peers using a
- // single-threaded approach.
-{
-public:
- Consumer_Handler (Consumer_Map *,
- IO_Handler_Connector *,
- ACE_Thread_Manager * = 0,
- int socket_queue_size = 0);
-
- virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0);
- // Send an event to a Consumer (may be queued if necessary).
-
-protected:
- // = We'll allow up to 16 megabytes to be queued per-output
- // channel.
- enum {QUEUE_SIZE = 1024 * 1024 * 16};
-
- virtual int handle_input (ACE_HANDLE);
- // Receive and process shutdowns from a Consumer.
-
- virtual int handle_output (ACE_HANDLE);
- // Finish sending event when flow control conditions abate.
-
- int nonblk_put (ACE_Message_Block *mb);
- // Perform a non-blocking put().
-
- virtual ssize_t send (ACE_Message_Block *);
- // Send an event to a Consumer.
-};
-
-#endif /* _IO_HANDLER */
diff --git a/apps/Gateway/Gateway/IO_Handler_Connector.cpp b/apps/Gateway/Gateway/IO_Handler_Connector.cpp
deleted file mode 100644
index 712b348951d..00000000000
--- a/apps/Gateway/Gateway/IO_Handler_Connector.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-#include "IO_Handler_Connector.h"
-// $Id$
-
-
-IO_Handler_Connector::IO_Handler_Connector (void)
-{
-}
-
-// Override the connection-failure method to add timer support.
-// Note that these timers perform "expoential backoff" to
-// avoid rapidly trying to reestablish connections when a link
-// goes down.
-
-int
-IO_Handler_Connector::handle_close (ACE_HANDLE sd, ACE_Reactor_Mask)
-{
- ACE_Connector<IO_Handler, ACE_SOCK_CONNECTOR>::AST *stp = 0;
-
- // Locate the ACE_Svc_Handler corresponding to the socket descriptor.
- if (this->handler_map_.find (sd, stp) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) can't locate channel %d in map, %p\n",
- sd, "find"), -1);
-
- IO_Handler *channel = stp->svc_handler ();
-
- // Schedule a reconnection request at some point in the future
- // (note that channel uses an exponential backoff scheme).
- if (ACE_Service_Config::reactor ()->schedule_timer (channel, 0,
- channel->timeout ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "schedule_timer"), -1);
- return 0;
-}
-
-// Initiate (or reinitiate) a connection to the IO_Handler.
-
-int
-IO_Handler_Connector::initiate_connection (IO_Handler *channel,
- ACE_Synch_Options &synch_options)
-{
- char buf[MAXHOSTNAMELEN];
-
- // Mark ourselves as idle so that the various iterators
- // will ignore us until we are reconnected.
- channel->state (IO_Handler::IDLE);
-
- if (channel->remote_addr ().addr_to_string (buf, sizeof buf) == -1
- || channel->local_addr ().addr_to_string (buf, sizeof buf) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "can't obtain peer's address"), -1);
-
- // Try to connect to the Peer.
-
- if (this->connect (channel, channel->remote_addr (),
- synch_options, channel->local_addr ()) == -1)
- {
- if (errno != EWOULDBLOCK)
- {
- channel->state (IO_Handler::FAILED);
- ACE_DEBUG ((LM_DEBUG, "(%t) %p on address %s\n",
- "connect", buf));
-
- // Reschedule ourselves to try and connect again.
- if (synch_options[ACE_Synch_Options::USE_REACTOR])
- {
- if (ACE_Service_Config::reactor ()->schedule_timer
- (channel, 0, channel->timeout ()) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "schedule_timer"), -1);
- }
- else
- // Failures on synchronous connects are reported as errors
- // so that the caller can decide how to proceed.
- return -1;
- }
- else
- {
- channel->state (IO_Handler::CONNECTING);
- ACE_DEBUG ((LM_DEBUG,
- "(%t) in the process of connecting %s to %s\n",
- synch_options[ACE_Synch_Options::USE_REACTOR]
- ? "asynchronously" : "synchronously", buf));
- }
- }
- else
- {
- channel->state (IO_Handler::ESTABLISHED);
- ACE_DEBUG ((LM_DEBUG, "(%t) connected to %s on %d\n",
- buf, channel->get_handle ()));
- }
- return 0;
-}
diff --git a/apps/Gateway/Gateway/IO_Handler_Connector.h b/apps/Gateway/Gateway/IO_Handler_Connector.h
deleted file mode 100644
index 585428c88ee..00000000000
--- a/apps/Gateway/Gateway/IO_Handler_Connector.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// IO_Handler_Connector.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_IO_HANDLER_CONNECTOR)
-#define _IO_HANDLER_CONNECTOR
-
-#include "ace/Connector.h"
-#include "Thr_IO_Handler.h"
-
-class IO_Handler_Connector : public ACE_Connector<IO_Handler, ACE_SOCK_CONNECTOR>
- // = TITLE
- // A concrete factory class that setups connections to peerds
- // and produces a new IO_Handler object to do the dirty work...
-{
-public:
- IO_Handler_Connector (void);
-
- // Initiate (or reinitiate) a connection on the IO_Handler.
- int initiate_connection (IO_Handler *,
- ACE_Synch_Options & = ACE_Synch_Options::synch);
-
-protected:
- // Override the connection-failure method to add timer support.
- virtual int handle_close (ACE_HANDLE sd, ACE_Reactor_Mask);
-};
-
-#endif /* _IO_HANDLER_CONNECTOR */
diff --git a/apps/Gateway/Gateway/Makefile b/apps/Gateway/Gateway/Makefile
deleted file mode 100644
index fc4d116030b..00000000000
--- a/apps/Gateway/Gateway/Makefile
+++ /dev/null
@@ -1,1139 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the Gateway.
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = gatewayd
-LIB = libGateway.a
-SHLIB = libGateway.$(SOEXT)
-
-FILES = Concrete_Connection_Handlers \
- Config_Files \
- File_Parser \
- Gateway \
- Event_Channel \
- Event_Forwarding_Discriminator \
- Options \
- Connection_Handler \
- Connection_Handler_Acceptor \
- Connection_Handler_Connector
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LDLIBS = -lGateway
-
-LIBS += $(ACELIB)
-
-BUILD = $(VLIB) $(VSHLIB) $(SHLIBA) $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/Concrete_Connection_Handlers.o .obj/Concrete_Connection_Handlers.so .shobj/Concrete_Connection_Handlers.o .shobj/Concrete_Connection_Handlers.so: Concrete_Connection_Handlers.cpp \
- Event_Channel.h Connection_Handler_Connector.h \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/Connector.cpp \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- Connection_Handler.h Config_Files.h File_Parser.h File_Parser.cpp \
- Event.h Options.h Connection_Handler_Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.i \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- Consumer_Dispatch_Set.h Event_Forwarding_Discriminator.h \
- Concrete_Connection_Handlers.h
-.obj/Config_Files.o .obj/Config_Files.so .shobj/Config_Files.o .shobj/Config_Files.so: Config_Files.cpp Config_Files.h File_Parser.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- File_Parser.cpp Event.h Options.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp
-.obj/File_Parser.o .obj/File_Parser.so .shobj/File_Parser.o .shobj/File_Parser.so: File_Parser.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- File_Parser.h File_Parser.cpp
-.obj/Gateway.o .obj/Gateway.so .shobj/Gateway.o .shobj/Gateway.so: Gateway.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- Config_Files.h File_Parser.h File_Parser.cpp Event.h Event_Channel.h \
- Connection_Handler_Connector.h \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/Connector.cpp \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- Connection_Handler.h Options.h Connection_Handler_Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.i \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- Consumer_Dispatch_Set.h Event_Forwarding_Discriminator.h Gateway.h
-.obj/Event_Channel.o .obj/Event_Channel.so .shobj/Event_Channel.o .shobj/Event_Channel.so: Event_Channel.cpp Connection_Handler_Connector.h \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/Connector.cpp \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- Connection_Handler.h Config_Files.h File_Parser.h File_Parser.cpp \
- Event.h Options.h Event_Channel.h Connection_Handler_Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.i \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- Consumer_Dispatch_Set.h Event_Forwarding_Discriminator.h
-.obj/Event_Forwarding_Discriminator.o .obj/Event_Forwarding_Discriminator.so .shobj/Event_Forwarding_Discriminator.o .shobj/Event_Forwarding_Discriminator.so: Event_Forwarding_Discriminator.cpp \
- Event_Forwarding_Discriminator.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- Event.h Consumer_Dispatch_Set.h
-.obj/Options.o .obj/Options.so .shobj/Options.o .shobj/Options.so: Options.cpp \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Get_Opt.i \
- Event.h Options.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp
-.obj/Connection_Handler.o .obj/Connection_Handler.so .shobj/Connection_Handler.o .shobj/Connection_Handler.so: Connection_Handler.cpp Event_Channel.h \
- Connection_Handler_Connector.h \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/Connector.cpp \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- Connection_Handler.h Config_Files.h File_Parser.h File_Parser.cpp \
- Event.h Options.h Connection_Handler_Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.i \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- Consumer_Dispatch_Set.h Event_Forwarding_Discriminator.h \
- Concrete_Connection_Handlers.h
-.obj/Connection_Handler_Acceptor.o .obj/Connection_Handler_Acceptor.so .shobj/Connection_Handler_Acceptor.o .shobj/Connection_Handler_Acceptor.so: Connection_Handler_Acceptor.cpp \
- Event_Channel.h Connection_Handler_Connector.h \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/Connector.cpp \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- Connection_Handler.h Config_Files.h File_Parser.h File_Parser.cpp \
- Event.h Options.h Connection_Handler_Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.i \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- Consumer_Dispatch_Set.h Event_Forwarding_Discriminator.h
-.obj/Connection_Handler_Connector.o .obj/Connection_Handler_Connector.so .shobj/Connection_Handler_Connector.o .shobj/Connection_Handler_Connector.so: Connection_Handler_Connector.cpp \
- Connection_Handler_Connector.h \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/Connector.cpp \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- Connection_Handler.h Config_Files.h File_Parser.h File_Parser.cpp \
- Event.h Options.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/Gateway/Gateway/Makefile.bor b/apps/Gateway/Gateway/Makefile.bor
deleted file mode 100644
index 1fc1899b603..00000000000
--- a/apps/Gateway/Gateway/Makefile.bor
+++ /dev/null
@@ -1,15 +0,0 @@
-NAME = gatewayd
-OBJFILES = \
- $(OBJDIR)\Concrete_Connection_Handlers.obj \
- $(OBJDIR)\Config_Files.obj \
- $(OBJDIR)\File_Parser.obj \
- $(OBJDIR)\Gateway.obj \
- $(OBJDIR)\Event_Channel.obj \
- $(OBJDIR)\Event_Forwarding_Discriminator.obj \
- $(OBJDIR)\Options.obj \
- $(OBJDIR)\Connection_Handler.obj \
- $(OBJDIR)\Connection_Handler_Acceptor.obj \
- $(OBJDIR)\Connection_Handler_Connector.obj \
- $(OBJDIR)\gatewayd.obj
-!include <$(ACE_ROOT)\apps\build.bor>
-
diff --git a/apps/Gateway/Gateway/Options.cpp b/apps/Gateway/Gateway/Options.cpp
deleted file mode 100644
index ae3fae96ef3..00000000000
--- a/apps/Gateway/Gateway/Options.cpp
+++ /dev/null
@@ -1,259 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "ace/Get_Opt.h"
-#include "Event.h"
-#include "Options.h"
-
-ACE_RCSID(Gateway, Options, "$Id$")
-
-// Static initialization.
-Options *Options::instance_ = 0;
-
-Options *
-Options::instance (void)
-{
- if (Options::instance_ == 0)
- ACE_NEW_RETURN (Options::instance_, Options, 0);
-
- return Options::instance_;
-}
-
-Options::Options (void)
- : locking_strategy_ (0),
- performance_window_ (0),
- blocking_semantics_ (ACE_NONBLOCK),
- socket_queue_size_ (0),
- threading_strategy_ (REACTIVE),
- options_ (0),
- supplier_acceptor_port_ (DEFAULT_GATEWAY_SUPPLIER_PORT),
- consumer_acceptor_port_ (DEFAULT_GATEWAY_CONSUMER_PORT),
- supplier_connector_port_ (DEFAULT_PEER_SUPPLIER_PORT),
- consumer_connector_port_ (DEFAULT_PEER_CONSUMER_PORT),
- max_timeout_ (MAX_TIMEOUT),
- max_queue_size_ (MAX_QUEUE_SIZE),
- connection_id_ (1)
-{
- ACE_OS::strcpy (this->connection_config_file_, "connection_config");
- ACE_OS::strcpy (this->consumer_config_file_, "consumer_config");
-}
-
-int
-Options::enabled (int option) const
-{
- return ACE_BIT_ENABLED (this->options_, option);
-}
-
-Options::~Options (void)
-{
- delete this->locking_strategy_;
-}
-
-ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *
-Options::locking_strategy (void) const
-{
- return this->locking_strategy_;
-}
-
-void
-Options::locking_strategy (ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *ls)
-{
- this->locking_strategy_ = ls;
-}
-
-int
-Options::performance_window (void) const
-{
- return this->performance_window_;
-}
-
-CONNECTION_ID &
-Options::connection_id (void)
-{
- return this->connection_id_;
-}
-
-long
-Options::max_timeout (void) const
-{
- return this->max_timeout_;
-}
-
-int
-Options::blocking_semantics (void) const
-{
- return this->blocking_semantics_;
-}
-
-int
-Options::socket_queue_size (void) const
-{
- return this->socket_queue_size_;
-}
-
-u_long
-Options::threading_strategy (void) const
-{
- return this->threading_strategy_;
-}
-
-const char *
-Options::connection_config_file (void) const
-{
- return this->connection_config_file_;
-}
-
-const char *
-Options::consumer_config_file (void) const
-{
- return this->consumer_config_file_;
-}
-
-u_short
-Options::consumer_acceptor_port (void) const
-{
- return this->consumer_acceptor_port_;
-}
-
-u_short
-Options::supplier_acceptor_port (void) const
-{
- return this->supplier_acceptor_port_;
-}
-
-u_short
-Options::consumer_connector_port (void) const
-{
- return this->consumer_connector_port_;
-}
-
-long
-Options::max_queue_size (void) const
-{
- return this->max_queue_size_;
-}
-
-u_short
-Options::supplier_connector_port (void) const
-{
- return this->supplier_connector_port_;
-}
-
-// Parse the "command-line" arguments and set the corresponding flags.
-
-int
-Options::parse_args (int argc, char *argv[])
-{
- // Assign defaults.
- ACE_Get_Opt get_opt (argc,
- argv,
- "a:bC:c:dm:P:p:q:r:t:vw:",
- 0);
-
- for (int c; (c = get_opt ()) != EOF; )
- {
- switch (c)
- {
- case 'a':
- {
- // Become an Acceptor.
-
- for (char *flag = ACE_OS::strtok (get_opt.optarg, "|");
- flag != 0;
- flag = ACE_OS::strtok (0, "|"))
- if (ACE_OS::strncasecmp (flag, "C", 1) == 0)
- {
- ACE_SET_BITS (this->options_,
- Options::CONSUMER_ACCEPTOR);
- if (ACE_OS::strlen (flag) > 1)
- // Set the Consumer Acceptor port number.
- this->consumer_acceptor_port_ = ACE_OS::atoi (flag + 2);
- }
- else if (ACE_OS::strncasecmp (flag, "S", 1) == 0)
- {
- ACE_SET_BITS (this->options_,
- Options::SUPPLIER_ACCEPTOR);
- if (ACE_OS::strlen (flag) > 1)
- // Set the Supplier Acceptor port number.
- this->supplier_acceptor_port_ = ACE_OS::atoi (flag + 2);
- }
- }
- break;
- /* NOTREACHED */
- case 'b': // Use blocking connection establishment.
- this->blocking_semantics_ = 1;
- break;
- case 'C': // Use a different proxy config filename.
- ACE_OS::strncpy (this->consumer_config_file_,
- get_opt.optarg,
- sizeof this->consumer_config_file_);
- break;
- case 'c':
- {
- // Become a Connector.
-
- for (char *flag = ACE_OS::strtok (get_opt.optarg, "|");
- flag != 0;
- flag = ACE_OS::strtok (0, "|"))
- if (ACE_OS::strncasecmp (flag, "C", 1) == 0)
- {
- ACE_SET_BITS (this->options_,
- Options::CONSUMER_CONNECTOR);
- if (ACE_OS::strlen (flag) > 1)
- // Set the Consumer Connector port number.
- this->consumer_connector_port_ = ACE_OS::atoi (flag + 2);
- }
- else if (ACE_OS::strncasecmp (flag, "S", 1) == 0)
- {
- ACE_SET_BITS (this->options_,
- Options::SUPPLIER_CONNECTOR);
- if (ACE_OS::strlen (flag) > 1)
- // Set the Supplier Connector port number.
- this->supplier_connector_port_ = ACE_OS::atoi (flag + 2);
- }
- }
- break;
- /* NOTREACHED */
- case 'd': // We are debugging.
- ACE_SET_BITS (this->options_,
- Options::DEBUG);
- break;
- case 'P': // Use a different consumer config filename.
- ACE_OS::strncpy (this->connection_config_file_,
- get_opt.optarg,
- sizeof this->connection_config_file_);
- break;
- case 'q': // Use a different socket queue size.
- this->socket_queue_size_ = ACE_OS::atoi (get_opt.optarg);
- break;
- case 't': // Use a different threading strategy.
- {
- for (char *flag = ACE_OS::strtok (get_opt.optarg, "|");
- flag != 0;
- flag = ACE_OS::strtok (0, "|"))
- if (ACE_OS::strcmp (flag, "OUTPUT_MT") == 0)
- ACE_SET_BITS (this->threading_strategy_,
- Options::OUTPUT_MT);
- else if (ACE_OS::strcmp (flag, "INPUT_MT") == 0)
- ACE_SET_BITS (this->threading_strategy_,
- Options::INPUT_MT);
- break;
- }
- case 'v': // Verbose mode.
- ACE_SET_BITS (this->options_,
- Options::VERBOSE);
- break;
- case 'w': // Time performance for a designated amount of time.
- this->performance_window_ = ACE_OS::atoi (get_opt.optarg);
- // Use blocking connection semantics so that we get accurate
- // timings (since all connections start at once).
- this->blocking_semantics_ = 0;
- break;
- default:
- break;
- }
- }
-
- return 0;
-}
diff --git a/apps/Gateway/Gateway/Options.h b/apps/Gateway/Gateway/Options.h
deleted file mode 100644
index b3da9174a9b..00000000000
--- a/apps/Gateway/Gateway/Options.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Options.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef OPTIONS_H
-#define OPTIONS_H
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_Svc_Export Options
-{
- // = TITLE
- // Singleton that consolidates all Options for a gatewayd.
-public:
- // = Options that can be enabled/disabled.
- enum
- {
- // = The types of threading strategies.
- REACTIVE = 0,
- OUTPUT_MT = 1,
- INPUT_MT = 2,
-
- VERBOSE = 01,
- DEBUG = 02,
-
- SUPPLIER_ACCEPTOR = 04,
- CONSUMER_ACCEPTOR = 010,
- SUPPLIER_CONNECTOR = 020,
- CONSUMER_CONNECTOR = 040
- };
-
- static Options *instance (void);
- // Return Singleton.
-
- ~Options (void);
- // Termination.
-
- int parse_args (int argc, char *argv[]);
- // Parse the arguments and set the options.
-
- // = Accessor methods.
- int enabled (int option) const;
- // Determine if an option is enabled.
-
- ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *locking_strategy (void) const;
- // Gets the locking strategy used for serializing access to the
- // reference count in <ACE_Message_Block>. If it's 0, then there's
- // no locking strategy and we're using a REACTIVE concurrency
- // strategy.
-
- void locking_strategy (ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *);
- // Set the locking strategy used for serializing access to the
- // reference count in <ACE_Message_Block>.
-
- int performance_window (void) const;
- // Number of seconds after connection establishment to report
- // throughput.
-
- int blocking_semantics (void) const;
- // 0 == blocking connects, ACE_NONBLOCK == non-blocking connects.
-
- int socket_queue_size (void) const;
- // Size of the socket queue (0 means "use default").
-
- u_long threading_strategy (void) const;
- // i.e., REACTIVE, OUTPUT_MT, and/or INPUT_MT.
-
- u_short supplier_acceptor_port (void) const;
- // Our acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Supplier.
-
- u_short consumer_acceptor_port (void) const;
- // Our acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Consumer.
-
- u_short supplier_connector_port (void) const;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Supplier.
-
- u_short consumer_connector_port (void) const;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Consumer.
-
- const char *connector_host (void) const;
- // Our connector port host, i.e., the host running the gatewayd
- // process.
-
- const char *connection_config_file (void) const;
- // Name of the connection configuration file.
-
- const char *consumer_config_file (void) const;
- // Name of the consumer map configuration file.
-
- long max_timeout (void) const;
- // The maximum retry timeout delay.
-
- long max_queue_size (void) const;
- // The maximum size of the queue.
-
- CONNECTION_ID &connection_id (void);
- // Returns a reference to the next available connection id;
-
-private:
- enum
- {
- MAX_QUEUE_SIZE = 1024 * 1024 * 16,
- // We'll allow up to 16 megabytes to be queued per-output proxy.
-
- MAX_TIMEOUT = 32
- // The maximum timeout for trying to re-establish connections.
- };
-
- Options (void);
- // Initialization.
-
- static Options *instance_;
- // Options Singleton instance.
-
- ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *locking_strategy_;
- // Points to the locking strategy used for serializing access to the
- // reference count in <ACE_Message_Block>. If it's 0, then there's
- // no locking strategy and we're using a REACTIVE concurrency
- // strategy.
-
- int performance_window_;
- // Number of seconds after connection establishment to report
- // throughput.
-
- int blocking_semantics_;
- // 0 == blocking connects, ACE_NONBLOCK == non-blocking connects.
-
- int socket_queue_size_;
- // Size of the socket queue (0 means "use default").
-
- u_long threading_strategy_;
- // i.e., REACTIVE, OUTPUT_MT, and/or INPUT_MT.
-
- u_long options_;
- // Flag to indicate if we want verbose diagnostics.
-
- u_short supplier_acceptor_port_;
- // The acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Supplier.
-
- u_short consumer_acceptor_port_;
- // The acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Consumer.
-
- u_short supplier_connector_port_;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Supplier.
-
- u_short consumer_connector_port_;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Consumer.
-
- long max_timeout_;
- // The maximum retry timeout delay.
-
- long max_queue_size_;
- // The maximum size of the queue.
-
- CONNECTION_ID connection_id_;
- // The next available connection id.
-
- char connection_config_file_[MAXPATHLEN + 1];
- // Name of the connection configuration file.
-
- char consumer_config_file_[MAXPATHLEN + 1];
- // Name of the consumer map configuration file.
-};
-
-#endif /* OPTIONS_H */
diff --git a/apps/Gateway/Gateway/Peer_Message.h b/apps/Gateway/Gateway/Peer_Message.h
deleted file mode 100644
index d9e65650095..00000000000
--- a/apps/Gateway/Gateway/Peer_Message.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Peer_Message.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (PEER_MESSAGE)
-#define PEER_MESSAGE
-
-// This is the unique connection identifier that denotes a particular
-// Channel in the Gateway.
-typedef short CONN_ID;
-
-class Peer_Addr
- // = TITLE
- // Peer address is used to identify the source/destination of a
- // routing message.
-{
-public:
- Peer_Addr (CONN_ID cid = -1, u_char lid = 0, u_char pay = 0)
- : conn_id_ (cid), logical_id_ (lid), payload_ (pay) {}
-
- int operator== (const Peer_Addr &pa) const
- {
- return this->conn_id_ == pa.conn_id_
- && this->logical_id_ == pa.logical_id_
- && this->payload_ == pa.payload_;
- }
-
- CONN_ID conn_id_;
- // Unique connection identifier that denotes a particular Channel.
-
- u_char logical_id_;
- // Logical ID.
-
- u_char payload_;
- // Payload type.
-};
-
-
-class Peer_Header
- // = TITLE
- // Fixed sized header.
-{
-public:
- typedef u_short ROUTING_ID;
- // Type used to route messages from gatewayd.
-
- enum
- {
- INVALID_ID = -1 // No peer can validly use this number.
- };
-
- ROUTING_ID routing_id_;
- // Source ID.
-
- size_t len_;
- // Length of the message in bytes.
-};
-
-class Peer_Message
- // = TITLE
- // Variable-sized message (buf_ may be variable-sized between
- // 0 and MAX_PAYLOAD_SIZE).
-{
-public:
- enum { MAX_PAYLOAD_SIZE = 1024 };
- // The maximum size of an Peer message (see Peer protocol specs for
- // exact #).
-
- Peer_Header header_;
- // Message header.
-
- char buf_[MAX_PAYLOAD_SIZE];
- // Message payload.
-};
-
-#endif /* PEER_MESSAGE */
diff --git a/apps/Gateway/Gateway/Routing_Entry.cpp b/apps/Gateway/Gateway/Routing_Entry.cpp
deleted file mode 100644
index cc270cfac3a..00000000000
--- a/apps/Gateway/Gateway/Routing_Entry.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-// Defines an entry in the Routing Table.
-// $Id$
-
-#include "Routing_Entry.h"
-
-Routing_Entry::Routing_Entry (int validity_interval)
- : validity_interval_ (validity_interval)
-{
- ACE_NEW (this->destinations_, Routing_Entry::ENTRY_SET);
-}
-
-Routing_Entry::~Routing_Entry (void)
-{
- delete this->destinations_;
-}
-
-// Get the associated set of destinations.
-
-Routing_Entry::ENTRY_SET *
-Routing_Entry::destinations (void)
-{
- return this->destinations_;
-}
-
-// Set the associated set of destinations.
-
-void
-Routing_Entry::destinations (Routing_Entry::ENTRY_SET *s)
-{
- this->destinations_ = s;
-}
-
-// Get the current validity interval for this route.
-
-int
-Routing_Entry::validity_interval (void)
-{
- return this->validity_interval_;
-}
-
-// Set the current validity interval for this route.
-
-void
-Routing_Entry::validity_interval (int vi)
-{
- this->validity_interval_ = vi;
-}
diff --git a/apps/Gateway/Gateway/Routing_Entry.h b/apps/Gateway/Gateway/Routing_Entry.h
deleted file mode 100644
index ab8e0eee53d..00000000000
--- a/apps/Gateway/Gateway/Routing_Entry.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Routing_Entry.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_ROUTING_ENTRY)
-#define _ROUTING_ENTRY
-
-#include "ace/Set.h"
-
-// Forward reference.
-class Channel;
-
-class Routing_Entry
-{
- // = TITLE
- // Defines an entry in the Routing_Table.
-public:
- Routing_Entry (int validity_interval = 0);
- ~Routing_Entry (void);
-
- typedef ACE_Unbounded_Set<Channel *> ENTRY_SET;
- typedef ACE_Unbounded_Set_Iterator<Channel *> ENTRY_ITERATOR;
-
- // = Set/get the associated set of destinations.
- ENTRY_SET *destinations (void);
- void destinations (ENTRY_SET *);
-
- // = Set/get current validity interval for this routing entry.
- int validity_interval (void);
- void validity_interval (int);
-
-protected:
- ENTRY_SET *destinations_;
- // The set of destinations;
-
- int validity_interval_;
- // The current validity interval of this link.
-};
-
-#endif /* _ROUTING_ENTRY */
diff --git a/apps/Gateway/Gateway/Routing_Table.cpp b/apps/Gateway/Gateway/Routing_Table.cpp
deleted file mode 100644
index 3ef2f21bc1f..00000000000
--- a/apps/Gateway/Gateway/Routing_Table.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-#if !defined (_ROUTING_TABLE_C)
-#define _ROUTING_TABLE_C
-
-
-#include "Routing_Table.h"
-
-/* Bind the EXT_ID to the INT_ID. */
-
-template <class EXT_ID, class INT_ID, class LOCK> int
-Routing_Table<EXT_ID, INT_ID, LOCK>::bind (EXT_ID ext_id, INT_ID *int_id)
-{
- return this->map_.bind (ext_id, int_id);
-}
-
-/* Find the INT_ID corresponding to the EXT_ID. */
-
-template <class EXT_ID, class INT_ID, class LOCK> int
-Routing_Table<EXT_ID, INT_ID, LOCK>::find (EXT_ID ext_id, INT_ID *&int_id)
-{
- return this->map_.find (ext_id, int_id);
-}
-
-/* Unbind (remove) the EXT_ID from the map. */
-
-template <class EXT_ID, class INT_ID, class LOCK> int
-Routing_Table<EXT_ID, INT_ID, LOCK>::unbind (EXT_ID ext_id)
-{
- return this->map_.unbind (ext_id);
-}
-
-template <class EXT_ID, class INT_ID, class LOCK>
-Routing_Iterator<EXT_ID, INT_ID, LOCK>::Routing_Iterator (Routing_Table<EXT_ID,
- INT_ID, LOCK> &rt,
- int ignore_inactive)
- : map_iter_ (rt.map_),
- ignore_inactive_ (ignore_inactive)
-{
-}
-
-template <class EXT_ID, class INT_ID, class LOCK> int
-Routing_Iterator<EXT_ID, INT_ID, LOCK>::next (INT_ID *&ss)
-{
- // Loop in order to skip over inactive entries if necessary.
-
- for (ACE_Map_Entry<EXT_ID, INT_ID *> *temp = 0;
- this->map_iter_.next (temp) != 0;
- this->advance ())
- {
- // Skip over inactive entries if necessary.
- if (temp->int_id_->active () == 0 && this->ignore_inactive_)
- continue;
-
- // Otherwise, return the next item.
- ss = temp->int_id_;
- return 1;
- }
- return 0;
-}
-
-template <class EXT_ID, class INT_ID, class LOCK> int
-Routing_Iterator<EXT_ID, INT_ID, LOCK>::advance (void)
-{
- return this->map_iter_.advance ();
-}
-#endif /* _ROUTING_TABLE_C */
diff --git a/apps/Gateway/Gateway/Routing_Table.h b/apps/Gateway/Gateway/Routing_Table.h
deleted file mode 100644
index 84194f13e49..00000000000
--- a/apps/Gateway/Gateway/Routing_Table.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Routing_Table.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_ROUTING_TABLE_H)
-#define _ROUTING_TABLE_H
-
-#include "ace/Map_Manager.h"
-
-template <class EXT_ID, class INT_ID, class LOCK>
-class Routing_Table
-{
- // = TITLE
- // Define a generic routing table based on the ACE Map_Manager.
- //
- // = DESCRIPTION
- // We need to have this table, rather than just using the Map_Manager
- // directly in order to ignore "inactive" routing entries...
-public:
- int bind (EXT_ID ext_id, INT_ID *int_id);
- // Associate EXT_ID with the INT_ID.
-
- int find (EXT_ID ext_id, INT_ID *&int_id);
- // Break any association of EXID.
-
- int unbind (EXT_ID ext_id);
- // Locate EXID and pass out parameter via INID. If found,
- // return 0, else -1.
-
-public:
- ACE_Map_Manager<EXT_ID, INT_ID *, LOCK> map_;
- // Map external IDs to internal IDs.
-};
-
-template <class EXT_ID, class INT_ID, class LOCK>
-class Routing_Iterator
-{
- // = TITLE
- // Define an iterator for the Routing Table.
-public:
- Routing_Iterator (Routing_Table<EXT_ID, INT_ID, LOCK> &mm,
- int ignore_inactive = 1);
- int next (INT_ID *&);
- int advance (void);
-
-private:
- ACE_Map_Iterator<EXT_ID, INT_ID *, LOCK> map_iter_;
- int ignore_inactive_;
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "Routing_Table.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-#endif /* _ROUTING_TABLE_H */
diff --git a/apps/Gateway/Gateway/Thr_Channel.cpp b/apps/Gateway/Gateway/Thr_Channel.cpp
deleted file mode 100644
index 26e385e2727..00000000000
--- a/apps/Gateway/Gateway/Thr_Channel.cpp
+++ /dev/null
@@ -1,204 +0,0 @@
-#include "Thr_Channel.h"
-// $Id$
-
-#include "Channel_Connector.h"
-
-#if defined (ACE_HAS_THREADS)
-Thr_Output_Channel::Thr_Output_Channel (ROUTING_TABLE *rt,
- Channel_Connector *cc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : Output_Channel (rt, cc, thr_mgr, socket_queue_size)
-{
-}
-
-// This method should be called only when the peer shuts down
-// unexpectedly. This method marks the Channel as having failed and
-// deactivates the ACE_Message_Queue (to wake up the thread blocked on
-// <dequeue_head> in svc()). Thr_Output_Handler::handle_close () will
-// eventually try to reconnect...
-
-int
-Thr_Output_Channel::handle_input (ACE_HANDLE h)
-{
- this->Output_Channel::handle_input (h);
- ACE_Service_Config::reactor ()->remove_handler (h,
- ACE_Event_Handler::RWE_MASK
- | ACE_Event_Handler::DONT_CALL);
- // Deactivate the queue while we try to get reconnected.
- this->msg_queue ()->deactivate ();
- return 0;
-}
-
-// Initialize the threaded Output_Channel object and spawn a new
-// thread.
-
-int
-Thr_Output_Channel::open (void *)
-{
- // Set the size of the socket queue.
- this->socket_queue_size ();
-
- // Turn off non-blocking I/O.
- if (this->peer ().disable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- // Register ourselves to receive input events (which indicate that
- // the Peer has shut down unexpectedly).
- if (ACE_Service_Config::reactor ()->register_handler (this,
- ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "register_handler"), -1);
-
- if (this->initialize_connection ())
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "initialize_connection"), -1);
-
- // Reactivate message queue. If it was active then this is the
- // first time in and we need to spawn a thread, otherwise the queue
- // was inactive due to some problem and we've already got a thread.
- if (this->msg_queue ()->activate () == ACE_Message_Queue<SYNCH>::WAS_ACTIVE)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n"));
- // Become an active object by spawning a new thread to transmit
- // messages to peers.
- return this->activate (THR_NEW_LWP | THR_DETACHED);
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n"));
- return 0;
- }
-}
-
-// ACE_Queue up a message for transmission (must not block since all
-// Input_Channels are single-threaded).
-
-int
-Thr_Output_Channel::put (ACE_Message_Block *mb, ACE_Time_Value *)
-{
- // Perform non-blocking enqueue.
- return this->msg_queue ()->enqueue_tail (mb, (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-// Transmit messages to the peer (note simplification resulting from
-// threads...)
-
-int
-Thr_Output_Channel::svc (void)
-{
- for (;;)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) connected! Thr_Output_Channel's fd = %d\n",
- this->peer ().get_handle ()));
-
- // Since this method runs in its own thread it is OK to block on
- // output.
-
- for (ACE_Message_Block *mb = 0;
- this->msg_queue ()->dequeue_head (mb) != -1; )
- if (this->send_peer (mb) == -1)
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "send failed"));
-
- ACE_ASSERT (errno == ESHUTDOWN);
-
- ACE_DEBUG ((LM_DEBUG, "(%t) shutting down threaded Output_Channel %d on handle %d\n",
- this->id (), this->get_handle ()));
-
- this->peer ().close ();
-
- for (this->timeout (1);
- // Default is to reconnect synchronously.
- this->connector_->initiate_connection (this) == -1; )
- {
- ACE_Time_Value tv (this->timeout ());
- ACE_ERROR ((LM_ERROR,
- "(%t) reattempting connection, sec = %d\n",
- tv.sec ()));
- ACE_OS::sleep (tv);
- }
- }
-
- return 0;
-}
-
-Thr_Input_Channel::Thr_Input_Channel (ROUTING_TABLE *rt,
- Channel_Connector *cc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : Input_Channel (rt, cc, thr_mgr, socket_queue_size)
-{
-}
-
-int
-Thr_Input_Channel::open (void *)
-{
- // Set the size of the socket queue.
- this->socket_queue_size ();
-
- // Turn off non-blocking I/O.
- if (this->peer ().disable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- if (this->initialize_connection ())
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "initialize_connection"), -1);
-
- // Reactivate message queue. If it was active then this is the
- // first time in and we need to spawn a thread, otherwise the queue
- // was inactive due to some problem and we've already got a thread.
- if (this->msg_queue ()->activate () == ACE_Message_Queue<SYNCH>::WAS_ACTIVE)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n"));
- // Become an active object by spawning a new thread to transmit
- // messages to peers.
- return this->activate (THR_NEW_LWP | THR_DETACHED);
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n"));
- return 0;
- }
-}
-
-// Receive messages from a Peer in a separate thread (note reuse of
-// existing code!).
-
-int
-Thr_Input_Channel::svc (void)
-{
- for (;;)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) connected! Thr_Input_Channel's fd = %d\n",
- this->peer ().get_handle ()));
-
- // Since this method runs in its own thread and processes
- // messages for one connection it is OK to block on input and
- // output.
-
- while (this->handle_input () != -1)
- continue;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) shutting down threaded Input_Channel %d on handle %d\n",
- this->id (),
- this->get_handle ()));
-
- this->peer ().close ();
-
- // Deactivate the queue while we try to get reconnected.
- this->msg_queue ()->deactivate ();
-
- for (this->timeout (1);
- // Default is to reconnect synchronously.
- this->connector_->initiate_connection (this) == -1; )
- {
- ACE_Time_Value tv (this->timeout ());
- ACE_ERROR ((LM_ERROR,
- "(%t) reattempting connection, sec = %d\n", tv.sec ()));
- ACE_OS::sleep (tv);
- }
- }
- return 0;
-}
-
-#endif /* ACE_HAS_THREADS */
diff --git a/apps/Gateway/Gateway/Thr_Channel.h b/apps/Gateway/Gateway/Thr_Channel.h
deleted file mode 100644
index a1dc91b1619..00000000000
--- a/apps/Gateway/Gateway/Thr_Channel.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Thr_Channel.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_THR_CHANNEL)
-#define _THR_CHANNEL
-
-#include "Channel.h"
-
-#if defined (ACE_HAS_THREADS)
-class Thr_Output_Channel : public Output_Channel
- // = TITLE
- // Runs each Output Channel in a separate thread.
-{
-public:
- Thr_Output_Channel (ROUTING_TABLE *,
- Channel_Connector *,
- ACE_Thread_Manager *,
- int socket_queue_size);
-
- virtual int open (void *);
- // Initialize the threaded Output_Channel object and spawn a new
- // thread.
-
- virtual int handle_input (ACE_HANDLE);
- // Called when Peer shutdown unexpectedly.
-
- virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0);
- // Send a message to a peer.
-
- virtual int svc (void);
- // Transmit peer messages.
-};
-
-class Thr_Input_Channel : public Input_Channel
- // = TITLE
- // Runs each Input Channel in a separate thread.
-{
-public:
- Thr_Input_Channel (ROUTING_TABLE *,
- Channel_Connector *,
- ACE_Thread_Manager *,
- int socket_queue_size);
-
- virtual int open (void *);
- // Initialize the object and spawn a new thread.
-
- virtual int svc (void);
- // Transmit peer messages.
-};
-#endif /* ACE_HAS_THREADS */
-#endif /* _THR_CHANNEL */
diff --git a/apps/Gateway/Gateway/Thr_IO_Handler.cpp b/apps/Gateway/Gateway/Thr_IO_Handler.cpp
deleted file mode 100644
index 109cfad9c3f..00000000000
--- a/apps/Gateway/Gateway/Thr_IO_Handler.cpp
+++ /dev/null
@@ -1,204 +0,0 @@
-#include "Thr_IO_Handler.h"
-// $Id$
-
-#include "IO_Handler_Connector.h"
-
-#if defined (ACE_HAS_THREADS)
-Thr_Consumer_Handler::Thr_Consumer_Handler (Consumer_Map *consumer_map,
- IO_Handler_Connector *ioc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : Consumer_Handler (consumer_map, ioc, thr_mgr, socket_queue_size)
-{
-}
-
-// This method should be called only when the peer shuts down
-// unexpectedly. This method marks the IO_Handler as having failed and
-// deactivates the ACE_Message_Queue (to wake up the thread blocked on
-// <dequeue_head> in svc()). Thr_Output_Handler::handle_close () will
-// eventually try to reconnect...
-
-int
-Thr_Consumer_Handler::handle_input (ACE_HANDLE h)
-{
- this->Consumer_Handler::handle_input (h);
- ACE_Service_Config::reactor ()->remove_handler (h,
- ACE_Event_Handler::RWE_MASK
- | ACE_Event_Handler::DONT_CALL);
- // Deactivate the queue while we try to get reconnected.
- this->msg_queue ()->deactivate ();
- return 0;
-}
-
-// Initialize the threaded Consumer_Handler object and spawn a new
-// thread.
-
-int
-Thr_Consumer_Handler::open (void *)
-{
- // Set the size of the socket queue.
- this->socket_queue_size ();
-
- // Turn off non-blocking I/O.
- if (this->peer ().disable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- // Register ourselves to receive input events (which indicate that
- // the Peer has shut down unexpectedly).
- if (ACE_Service_Config::reactor ()->register_handler (this,
- ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "register_handler"), -1);
-
- if (this->initialize_connection ())
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "initialize_connection"), -1);
-
- // Reactivate message queue. If it was active then this is the
- // first time in and we need to spawn a thread, otherwise the queue
- // was inactive due to some problem and we've already got a thread.
- if (this->msg_queue ()->activate () == ACE_Message_Queue<SYNCH_STRATEGY>::WAS_ACTIVE)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n"));
- // Become an active object by spawning a new thread to transmit
- // messages to peers.
- return this->activate (THR_NEW_LWP | THR_DETACHED);
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n"));
- return 0;
- }
-}
-
-// ACE_Queue up a message for transmission (must not block since all
-// Supplier_Handlers are single-threaded).
-
-int
-Thr_Consumer_Handler::put (ACE_Message_Block *mb, ACE_Time_Value *)
-{
- // Perform non-blocking enqueue.
- return this->msg_queue ()->enqueue_tail (mb, (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-// Transmit messages to the peer (note simplification resulting from
-// threads...)
-
-int
-Thr_Consumer_Handler::svc (void)
-{
- for (;;)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) connected! Thr_Consumer_Handler's fd = %d\n",
- this->peer ().get_handle ()));
-
- // Since this method runs in its own thread it is OK to block on
- // output.
-
- for (ACE_Message_Block *mb = 0;
- this->msg_queue ()->dequeue_head (mb) != -1; )
- if (this->send (mb) == -1)
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "send failed"));
-
- ACE_ASSERT (errno == ESHUTDOWN);
-
- ACE_DEBUG ((LM_DEBUG, "(%t) shutting down threaded Consumer_Handler %d on handle %d\n",
- this->id (), this->get_handle ()));
-
- this->peer ().close ();
-
- for (this->timeout (1);
- // Default is to reconnect synchronously.
- this->connector_->initiate_connection (this) == -1; )
- {
- ACE_Time_Value tv (this->timeout ());
- ACE_ERROR ((LM_ERROR,
- "(%t) reattempting connection, sec = %d\n",
- tv.sec ()));
- ACE_OS::sleep (tv);
- }
- }
-
- return 0;
-}
-
-Thr_Supplier_Handler::Thr_Supplier_Handler (Consumer_Map *consumer_map,
- IO_Handler_Connector *ioc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : Supplier_Handler (consumer_map, ioc, thr_mgr, socket_queue_size)
-{
-}
-
-int
-Thr_Supplier_Handler::open (void *)
-{
- // Set the size of the socket queue.
- this->socket_queue_size ();
-
- // Turn off non-blocking I/O.
- if (this->peer ().disable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- if (this->initialize_connection ())
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "initialize_connection"), -1);
-
- // Reactivate message queue. If it was active then this is the
- // first time in and we need to spawn a thread, otherwise the queue
- // was inactive due to some problem and we've already got a thread.
- if (this->msg_queue ()->activate () == ACE_Message_Queue<SYNCH_STRATEGY>::WAS_ACTIVE)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n"));
- // Become an active object by spawning a new thread to transmit
- // messages to peers.
- return this->activate (THR_NEW_LWP | THR_DETACHED);
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n"));
- return 0;
- }
-}
-
-// Receive messages from a Peer in a separate thread (note reuse of
-// existing code!).
-
-int
-Thr_Supplier_Handler::svc (void)
-{
- for (;;)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) connected! Thr_Supplier_Handler's fd = %d\n",
- this->peer ().get_handle ()));
-
- // Since this method runs in its own thread and processes
- // messages for one connection it is OK to block on input and
- // output.
-
- while (this->handle_input () != -1)
- continue;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) shutting down threaded Supplier_Handler %d on handle %d\n",
- this->id (),
- this->get_handle ()));
-
- this->peer ().close ();
-
- // Deactivate the queue while we try to get reconnected.
- this->msg_queue ()->deactivate ();
-
- for (this->timeout (1);
- // Default is to reconnect synchronously.
- this->connector_->initiate_connection (this) == -1; )
- {
- ACE_Time_Value tv (this->timeout ());
- ACE_ERROR ((LM_ERROR,
- "(%t) reattempting connection, sec = %d\n", tv.sec ()));
- ACE_OS::sleep (tv);
- }
- }
- return 0;
-}
-
-#endif /* ACE_HAS_THREADS */
diff --git a/apps/Gateway/Gateway/Thr_IO_Handler.h b/apps/Gateway/Gateway/Thr_IO_Handler.h
deleted file mode 100644
index ee056b35361..00000000000
--- a/apps/Gateway/Gateway/Thr_IO_Handler.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Thr_IO_Handler.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_THR_IO_HANDLER)
-#define _THR_IO_HANDLER
-
-#include "IO_Handler.h"
-
-#if defined (ACE_HAS_THREADS)
-class Thr_Consumer_Handler : public Consumer_Handler
- // = TITLE
- // Runs each Output IO_Handler in a separate thread.
-{
-public:
- Thr_Consumer_Handler (Consumer_Map *,
- IO_Handler_Connector *,
- ACE_Thread_Manager *,
- int socket_queue_size);
-
- virtual int open (void *);
- // Initialize the threaded Consumer_Handler object and spawn a new
- // thread.
-
- virtual int handle_input (ACE_HANDLE);
- // Called when Peer shutdown unexpectedly.
-
- virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0);
- // Send a message to a peer.
-
- virtual int svc (void);
- // Transmit peer messages.
-};
-
-class Thr_Supplier_Handler : public Supplier_Handler
- // = TITLE
- // Runs each Input IO_Handler in a separate thread.
-{
-public:
- Thr_Supplier_Handler (Consumer_Map *,
- IO_Handler_Connector *,
- ACE_Thread_Manager *,
- int socket_queue_size);
-
- virtual int open (void *);
- // Initialize the object and spawn a new thread.
-
- virtual int svc (void);
- // Transmit peer messages.
-};
-#endif /* ACE_HAS_THREADS */
-#endif /* _THR_IO_HANDLER */
diff --git a/apps/Gateway/Gateway/Thr_Proxy_Handler.cpp b/apps/Gateway/Gateway/Thr_Proxy_Handler.cpp
deleted file mode 100644
index f316e4e82bf..00000000000
--- a/apps/Gateway/Gateway/Thr_Proxy_Handler.cpp
+++ /dev/null
@@ -1,211 +0,0 @@
-// $Id$
-
-#include "Event_Channel.h"
-#include "Thr_Proxy_Handler.h"
-
-#if defined (ACE_HAS_THREADS)
-Thr_Consumer_Proxy::Thr_Consumer_Proxy (ACE_Event_Channel &ec,
- const ACE_INET_Addr &remote_addr,
- const ACE_INET_Addr &local_addr,
- ACE_INT32 conn_id)
- : Consumer_Proxy (ec, remote_addr, local_addr, conn_id)
-{
-}
-
-// This method should be called only when the Consumer shuts down
-// unexpectedly. This method marks the Proxy_Handler as having failed
-// and deactivates the ACE_Message_Queue (to wake up the thread
-// blocked on <dequeue_head> in svc()).
-// Thr_Output_Handler::handle_close () will eventually try to
-// reconnect...
-
-int
-Thr_Consumer_Proxy::handle_input (ACE_HANDLE h)
-{
- // Call down to the <Consumer_Proxy> to handle this first.
- this->Consumer_Proxy::handle_input (h);
-
- ACE_Service_Config::reactor ()->remove_handler
- (h, ACE_Event_Handler::ALL_EVENTS_MASK | ACE_Event_Handler::DONT_CALL);
-
- // Deactivate the queue while we try to get reconnected.
- this->msg_queue ()->deactivate ();
- return 0;
-}
-
-// Initialize the threaded Consumer_Proxy object and spawn a new
-// thread.
-
-int
-Thr_Consumer_Proxy::open (void *)
-{
- // Turn off non-blocking I/O.
- if (this->peer ().disable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- // Call back to the <Event_Channel> to complete our initialization.
- else if (this->event_channel_.complete_proxy_connection (this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "complete_proxy_connection"), -1);
-
- // Register ourselves to receive input events (which indicate that
- // the Consumer has shut down unexpectedly).
- else if (ACE_Service_Config::reactor ()->register_handler
- (this, ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "register_handler"), -1);
-
- // Reactivate message queue. If it was active then this is the
- // first time in and we need to spawn a thread, otherwise the queue
- // was inactive due to some problem and we've already got a thread.
- else if (this->msg_queue ()->activate () == ACE_Message_Queue<SYNCH_STRATEGY>::WAS_ACTIVE)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n"));
- // Become an active object by spawning a new thread to transmit
- // events to Consumers.
- return this->activate (THR_NEW_LWP | THR_DETACHED);
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n"));
- return 0;
- }
-}
-
-// Queue up an event for transmission (must not block since
-// Supplier_Proxys may be single-threaded).
-
-int
-Thr_Consumer_Proxy::put (ACE_Message_Block *mb, ACE_Time_Value *)
-{
- // Perform non-blocking enqueue.
- return this->msg_queue ()->enqueue_tail
- (mb, (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-// Transmit events to the peer (note simplification resulting from
-// threads...)
-
-int
-Thr_Consumer_Proxy::svc (void)
-{
-
- for (;;)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) connected! Thr_Consumer_Proxy's handle = %d\n",
- this->peer ().get_handle ()));
-
- // Since this method runs in its own thread it is OK to block on
- // output.
-
- for (ACE_Message_Block *mb = 0;
- this->msg_queue ()->dequeue_head (mb) != -1;
- )
- {
- if (this->send (mb) == -1)
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "send failed"));
- }
-
- ACE_ASSERT (errno == ESHUTDOWN);
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) shutting down threaded Consumer_Proxy %d on handle %d\n",
- this->id (), this->get_handle ()));
-
- this->peer ().close ();
-
- for (this->timeout (1);
- // Default is to reconnect synchronously.
- this->event_channel_.initiate_proxy_connection (this) == -1; )
- {
- ACE_Time_Value tv (this->timeout ());
-
- ACE_ERROR ((LM_ERROR,
- "(%t) reattempting connection, sec = %d\n",
- tv.sec ()));
-
- ACE_OS::sleep (tv);
- }
- }
-
- return 0;
-}
-
-Thr_Supplier_Proxy::Thr_Supplier_Proxy (ACE_Event_Channel &ec,
- const ACE_INET_Addr &remote_addr,
- const ACE_INET_Addr &local_addr,
- ACE_INT32 conn_id)
- : Supplier_Proxy (ec, remote_addr, local_addr, conn_id)
-{
-}
-
-int
-Thr_Supplier_Proxy::open (void *)
-{
- // Turn off non-blocking I/O.
- if (this->peer ().disable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- // Call back to the <Event_Channel> to complete our initialization.
- else if (this->event_channel_.complete_proxy_connection (this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "complete_proxy_connection"), -1);
-
- // Reactivate message queue. If it was active then this is the
- // first time in and we need to spawn a thread, otherwise the queue
- // was inactive due to some problem and we've already got a thread.
- else if (this->msg_queue ()->activate () == ACE_Message_Queue<SYNCH_STRATEGY>::WAS_ACTIVE)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n"));
- // Become an active object by spawning a new thread to transmit
- // events to peers.
- return this->activate (THR_NEW_LWP | THR_DETACHED);
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n"));
- return 0;
- }
-}
-
-// Receive events from a Peer in a separate thread (note reuse of
-// existing code!).
-
-int
-Thr_Supplier_Proxy::svc (void)
-{
- for (;;)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) connected! Thr_Supplier_Proxy's handle = %d\n",
- this->peer ().get_handle ()));
-
- // Since this method runs in its own thread and processes events
- // for one connection it is OK to call down to the
- // <Supplier_Proxy::handle_input> method, which blocks on input.
-
- while (this->handle_input () != -1)
- continue;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) shutting down threaded Supplier_Proxy %d on handle %d\n",
- this->id (), this->get_handle ()));
-
- this->peer ().close ();
-
- // Deactivate the queue while we try to get reconnected.
- this->msg_queue ()->deactivate ();
-
- for (this->timeout (1);
- // Default is to reconnect synchronously.
- this->event_channel_.initiate_proxy_connection (this) == -1; )
- {
- ACE_Time_Value tv (this->timeout ());
- ACE_ERROR ((LM_ERROR,
- "(%t) reattempting connection, sec = %d\n",
- tv.sec ()));
- ACE_OS::sleep (tv);
- }
- }
- return 0;
-}
-
-#endif /* ACE_HAS_THREADS */
diff --git a/apps/Gateway/Gateway/Thr_Proxy_Handler.h b/apps/Gateway/Gateway/Thr_Proxy_Handler.h
deleted file mode 100644
index 275bc87b320..00000000000
--- a/apps/Gateway/Gateway/Thr_Proxy_Handler.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Thr_Proxy_Handler.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_THR_IO_HANDLER)
-#define _THR_IO_HANDLER
-
-#include "Proxy_Handler.h"
-
-#if defined (ACE_HAS_THREADS)
-class Thr_Consumer_Proxy : public Consumer_Proxy
- // = TITLE
- // Runs each Output Proxy_Handler in a separate thread.
-{
-public:
- Thr_Consumer_Proxy (ACE_Event_Channel &,
- const ACE_INET_Addr &remote_addr,
- const ACE_INET_Addr &local_addr,
- ACE_INT32 conn_id);
-
- virtual int open (void *);
- // Initialize the threaded Consumer_Proxy object and spawn a new
- // thread.
-
- virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0);
- // Send a message to a peer.
-
-protected:
- virtual int handle_input (ACE_HANDLE);
- // Called when Peer shutdown unexpectedly.
-
- virtual int svc (void);
- // Transmit peer messages.
-};
-
-class Thr_Supplier_Proxy : public Supplier_Proxy
- // = TITLE
- // Runs each Input Proxy_Handler in a separate thread.
-{
-public:
- Thr_Supplier_Proxy (ACE_Event_Channel &,
- const ACE_INET_Addr &remote_addr,
- const ACE_INET_Addr &local_addr,
- ACE_INT32 conn_id);
-
- virtual int open (void *);
- // Initialize the object and spawn a new thread.
-
-protected:
- virtual int svc (void);
- // Transmit peer messages.
-};
-#endif /* ACE_HAS_THREADS */
-#endif /* _THR_IO_HANDLER */
diff --git a/apps/Gateway/Gateway/cc_config b/apps/Gateway/Gateway/cc_config
deleted file mode 100644
index 96f9ebdedd7..00000000000
--- a/apps/Gateway/Gateway/cc_config
+++ /dev/null
@@ -1,10 +0,0 @@
-# Conn ID Hostname Remote Port Direction Max Retry Delay Local Port
-# ------- -------- ---- --------- --------------- ----------
- 1 tango.cs 10004 I 32 20000
-# 2 tango.cs 10004 O 32
- 3 merengue.cs 10004 O 32 20001
-# 4 mambo.cs 10004 O 32 20000
-# 5 lambada.cs 10004 O 32 20000
-# 6 tango.cs 10004 O 32 20000
-# 7 tango.cs 5001 I 32
-# 8 tango.cs 5002 O 32
diff --git a/apps/Gateway/Gateway/connection_config b/apps/Gateway/Gateway/connection_config
deleted file mode 100644
index 93730edc0da..00000000000
--- a/apps/Gateway/Gateway/connection_config
+++ /dev/null
@@ -1,55 +0,0 @@
-# Configuration file that the gatewayd process uses to determine
-# connection information about proxies.
-#
-# The following provides an explanation for the fields in this file,
-# and how they relate to fields in the corresponding "consumer_config"
-# file.
-#
-# 1. Connection ID -- Each Connection Handler is given a unique ID
-# that is used in the "consumer_config" file to specify to which
-# Consumers the Event Channel will forward incoming events from
-# Suppliers using that connection. The Connection ID field is the
-# "key" that is used to match up connections in this file with the
-# Consumer subscription requests in the "consumer_config" file.
-# The connection ids should start at 1 and monotonically increase
-# by increments of 1. This makes it possible for the Gateway to
-# properly allocate connection ids for Peers that connect to it.
-#
-# 2. Host -- The host name where the Supplier/Consumer peerd
-# process is running.
-#
-# 3. Remote Port -- The port number where the remote
-# Supplier/Consumer peerd process is listening on.
-# If this is a '*' character it is an indication to the
-# Gateway to use the "default value," e.g., which can be provided
-# on the command-line, etc.
-#
-# 4. Handler Role -- i.e., Consumer ('C') or Supplier ('S')
-#
-# 5. Max Retry Timeout -- The maximum amount of time that we'll
-# wait between retry attempts (these start at 1 second and
-# double until they reach the Max Retry Timeout).
-# If this is a '*' character it is an indication to the
-# Gateway to use the "default value," e.g., which can be provided
-# on the command-line, etc.
-#
-# 6. Local Port -- The port number that we want to use for
-# our local Proxy connection. If this is the value 0 or the '*'
-# character, then we'll let the socket implementation pick this
-# value for us.
-#
-# 7. Priority -- Each Consumer/Supplier can be given a priority
-# that will determine its importance relative to other
-# Consumers/Suppliers (this feature isn't implemented yet).
-#
-# Connection Host Remote Handler Max Retry Local Priority
-# ID Port Role Timeout Port
-# ---------- -------- ------ ------ ---------- ----- --------
- 1 localhost * S * * 1
- 2 localhost * C * * 1
-# 3 mambo.cs * C * * 1
-# 4 lambada.cs * C * * 1
-# 5 lambada.cs * C * * 1
-# 6 tango.cs * C * * 1
-# 7 tango.cs * S * * 1
-# 8 tango.cs * C * * 1
diff --git a/apps/Gateway/Gateway/consumer_config b/apps/Gateway/Gateway/consumer_config
deleted file mode 100644
index 1aaa3fc4028..00000000000
--- a/apps/Gateway/Gateway/consumer_config
+++ /dev/null
@@ -1,35 +0,0 @@
-# Configuration file that the gatewayd process uses to determine which
-# Consumers will receive events from which Suppliers. For now, the
-# Gateway only allows Consumers to "subscribe" to receive events from
-# particular Suppliers. A more flexible implementation will allow
-# Consumers to subscribe to particular types of events, as well.
-#
-# The following provides an explanation for the fields in this file,
-# and how they relate to fields in the corresponding "connection_config"
-# file.
-#
-# 1. Connection ID -- Each Connection Handler is given a unique ID
-# that is used in the "consumer_config" file to specify to which
-# Consumers the Event Channel will forward incoming events from
-# Suppliers. The Connection ID field is the "key" that is used to
-# match up Consumer subscription requests in this file with
-# connections in the "connection_config" file.
-#
-# 2. Event Type -- Indicates the type of the event. Consumers
-# can use this to only subscribe to certain types of events.
-# This feature is currently not implemented.
-#
-# 3. Consumers -- Indicates which Consumers will receive events sent
-# from this Proxy/Supplier ID, i.e., Consumers can subscribe to
-# receive events from particular Suppliers. Note that more than
-# one Consumer can subscribe to the same Supplier event, i.e.,
-# we support logical "multicast" (which is currently implemented
-# using multi-point unicast via TCP/IP).
-#
-# Connection Event Consumers
-# ID Type
-# ---------- ---- ---------
- 1 0 2
-# 2 0 3,4
-# 3 0 4
-# 4 0 5
diff --git a/apps/Gateway/Gateway/gatewayd.cpp b/apps/Gateway/Gateway/gatewayd.cpp
deleted file mode 100644
index a1f6ff4bc14..00000000000
--- a/apps/Gateway/Gateway/gatewayd.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// peerd.h
-//
-// = DESCRIPTION
-// Driver for the gateway daemon (gatewayd). Note that this is
-// completely generic code due to the Service Configurator
-// framework!
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#include "ace/Service_Config.h"
-#include "Gateway.h"
-
-ACE_RCSID(Gateway, gatewayd, "$Id$")
-
-int
-main (int argc, char *argv[])
-{
- if (ACE_OS::access (ACE_DEFAULT_SVC_CONF, F_OK) != 0)
- {
- // Use static linking.
- ACE_Service_Object_Ptr sp = ACE_SVC_INVOKE (Gateway);
-
- if (sp->init (argc - 1, argv + 1) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "init"),
- 1);
-
- // Run forever, performing the configured services until we
- // are shut down by a SIGINT/SIGQUIT signal.
-
- ACE_Reactor::run_event_loop ();
-
- // Destructor of <ACE_Service_Object_Ptr> automagically call
- // <fini>.
- }
- else
- {
- if (ACE_Service_Config::open (argc, argv) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- 1);
- else // Use dynamic linking.
-
- // Run forever, performing the configured services until we are
- // shut down by a signal (e.g., SIGINT or SIGQUIT).
-
- ACE_Reactor::run_event_loop ();
- }
- return 0;
-}
diff --git a/apps/Gateway/Gateway/gatewayd.dsp b/apps/Gateway/Gateway/gatewayd.dsp
deleted file mode 100644
index 96dc43e3e54..00000000000
--- a/apps/Gateway/Gateway/gatewayd.dsp
+++ /dev/null
@@ -1,57 +0,0 @@
-# Microsoft Developer Studio Project File - Name="gatewayd" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=gatewayd - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "gatewayd.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "gatewayd.mak" CFG="gatewayd - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "gatewayd - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /D "_DEBUG" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 Gateway.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-# Begin Target
-
-# Name "gatewayd - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\gatewayd.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/apps/Gateway/Gateway/rt_config b/apps/Gateway/Gateway/rt_config
deleted file mode 100644
index e951a0f09be..00000000000
--- a/apps/Gateway/Gateway/rt_config
+++ /dev/null
@@ -1,7 +0,0 @@
-# Conn ID Logical ID Payload Destinations
-# ------- ---------- ------- ------------
-# 1 1 0 3,4,5
- 1 1 0 3
- 3 1 0 3
-# 4 1 0 4
-# 5 1 0 5
diff --git a/apps/Gateway/Gateway/svc.conf b/apps/Gateway/Gateway/svc.conf
deleted file mode 100644
index 9b35a7dcbd6..00000000000
--- a/apps/Gateway/Gateway/svc.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-#static Svc_Manager "-d -p 2913"
-dynamic Gateway Service_Object * ./Gateway:_make_Gateway() active "-b -d -c C|S -a C|S -P connection_config -C consumer_config"
-
diff --git a/apps/Gateway/Makefile b/apps/Gateway/Makefile
deleted file mode 100644
index feb67278477..00000000000
--- a/apps/Gateway/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the Gateway application
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README
-
-DIRS = Gateway \
- Peer
-
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU
-
diff --git a/apps/Gateway/Makefile.bor b/apps/Gateway/Makefile.bor
deleted file mode 100644
index bbe0f9444be..00000000000
--- a/apps/Gateway/Makefile.bor
+++ /dev/null
@@ -1,9 +0,0 @@
-
-!include <$(ACE_ROOT)\include\makeinclude\make_flags.bor>
-
-all:
- cd $(ACE_ROOT)\apps\Gateway\Gateway
- $(MAKE) -f Makefile.bor $(MAKE_FLAGS)
- cd $(ACE_ROOT)\apps\Gateway\Peer
- $(MAKE) -f Makefile.bor $(MAKE_FLAGS)
-
diff --git a/apps/Gateway/Peer/Event.h b/apps/Gateway/Peer/Event.h
deleted file mode 100644
index 5e288edf910..00000000000
--- a/apps/Gateway/Peer/Event.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Event.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (EVENT)
-#define EVENT
-
-#include "ace/OS.h"
-
-// This is the unique connection identifier that denotes a particular
-// Proxy_Handler in the Gateway.
-typedef ACE_INT32 ACE_INT32;
-
-class Event_Key
- // = TITLE
- // Address used to identify the source/destination of an event.
- //
- // = DESCRIPTION
- // This is really a "virtual forwarding address" thatis used to
- // decouple the filtering and forwarding logic of the Event
- // Channel from the format of the data.
-{
-public:
- Event_Key (ACE_INT32 cid = -1,
- u_char sid = 0,
- u_char type = 0)
- : conn_id_ (cid),
- supplier_id_ (sid),
- type_ (type) {}
-
- int operator== (const Event_Key &event_addr) const
- {
- return this->conn_id_ == event_addr.conn_id_
- && this->supplier_id_ == event_addr.supplier_id_
- && this->type_ == event_addr.type_;
- }
-
- ACE_INT32 conn_id_;
- // Unique connection identifier that denotes a particular
- // Proxy_Handler.
-
- ACE_INT32 supplier_id_;
- // Logical ID.
-
- ACE_INT32 type_;
- // Event type.
-};
-
-class Event_Header
- // = TITLE
- // Fixed sized header.
- //
- // = DESCRIPTION
- // This is designed to have a sizeof (16) to avoid alignment
- // problems on most platforms.
-{
-public:
- typedef ACE_INT32 SUPPLIER_ID;
- // Type used to forward events from gatewayd.
-
- enum
- {
- INVALID_ID = -1 // No peer can validly use this number.
- };
-
- void decode (void)
- {
- this->len_ = ntohl (this->len_);
- this->supplier_id_ = ntohl (this->supplier_id_);
- this->type_ = ntohl (this->type_);
- this->priority_ = ntohl (this->priority_);
- }
- // Decode from network byte order to host byte order.
-
- void encode (void)
- {
- this->len_ = htonl (this->len_);
- this->supplier_id_ = htonl (this->supplier_id_);
- this->type_ = htonl (this->type_);
- this->priority_ = htonl (this->priority_);
- }
- // Encode from host byte order to network byte order.
-
- size_t len_;
- // Length of the data_ payload, in bytes.
-
- SUPPLIER_ID supplier_id_;
- // Source ID.
-
- ACE_INT32 type_;
- // Event type.
-
- ACE_INT32 priority_;
- // Event priority.
-};
-
-class Event
- // = TITLE
- // Variable-sized event (data_ may be variable-sized between
- // 0 and MAX_PAYLOAD_SIZE).
-{
-public:
- enum { MAX_PAYLOAD_SIZE = 1024 };
- // The maximum size of an Event.
-
- Event_Header header_;
- // Event header.
-
- char data_[MAX_PAYLOAD_SIZE];
- // Event data.
-};
-
-#endif /* EVENT */
diff --git a/apps/Gateway/Peer/Gateway_Handler.cpp b/apps/Gateway/Peer/Gateway_Handler.cpp
deleted file mode 100644
index cfc9a7dad6f..00000000000
--- a/apps/Gateway/Peer/Gateway_Handler.cpp
+++ /dev/null
@@ -1,652 +0,0 @@
-#include "ace/Get_Opt.h"
-// $Id$
-
-
-#include "Gateway_Handler.h"
-
-Gateway_Handler::Gateway_Handler (ACE_Thread_Manager *)
- : routing_id_ (0),
- msg_frag_ (0),
- total_bytes_ (0)
-{
- this->msg_queue ()->high_water_mark (Gateway_Handler::QUEUE_SIZE);
-}
-
-int
-Gateway_Handler::handle_signal (int signum, siginfo_t *, ucontext_t *)
-{
- ACE_DEBUG ((LM_DEBUG, "(%t) %S\n", signum));
-
- // Shut down the main event loop.
- ACE_Service_Config::end_reactor_event_loop ();
- return 0;
-}
-
-// Cache a binding to the HANDLER_MAP.
-
-void
-Gateway_Handler::map (HANDLER_MAP *m)
-{
- this->map_ = m;
-}
-
-// Upcall from the ACE_Acceptor::handle_input() that turns control
-// over to our application-specific Gateway handler.
-
-int
-Gateway_Handler::open (void *a)
-{
- ACE_DEBUG ((LM_DEBUG, "Gateway handler's fd = %d\n",
- this->peer ().get_handle ()));
-
- // Call down to the base class to activate and register this
- // handler.
- if (this->inherited::open (a) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
-
- if (this->peer ().enable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "enable"), -1);
-
- Gateway_Handler *this_ = this;
-
- // Add ourselves to the map so we can be removed later on.
- if (this->map_->bind (this->get_handle (), this_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "bind"), -1);
-
- char *to = ACE_OS::getenv ("TIMEOUT");
- int timeout = to == 0 ? 100000 : ACE_OS::atoi (to);
-
- // Schedule the time between disconnects. This should really be a
- // "tunable" parameter.
- if (ACE_Service_Config::reactor ()->schedule_timer (this, 0, timeout) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "schedule_timer"));
-
- // If there are messages left in the queue, make sure we
- // enable the ACE_Reactor appropriately to get them sent out.
- if (this->msg_queue ()->is_empty () == 0
- && ACE_Service_Config::reactor ()->schedule_wakeup (this,
- ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "schedule_wakeup"), -1);
-
- // First action is to wait to be notified of our routing id.
- this->do_action_ = &Gateway_Handler::await_route_id;
- return 0;
-}
-
-// Read messages from stdin and send them to the gatewayd.
-
-int
-Gateway_Handler::xmit_stdin (void)
-{
- if (this->routing_id_ != -1)
- {
- ssize_t n;
- ACE_Message_Block *mb;
-
- ACE_NEW_RETURN (mb,
- ACE_Message_Block (sizeof (Event)),
- -1);
-
- Event *peer_msg = (Event *) mb->rd_ptr ();
- peer_msg->header_.routing_id_ = this->routing_id_;
-
- n = ACE_OS::read (ACE_STDIN, peer_msg->buf_, sizeof peer_msg->buf_);
-
- switch (n)
- {
- case 0:
- ACE_DEBUG ((LM_DEBUG, "stdin closing down\n"));
-
- // Take stdin out of the ACE_Reactor so we stop trying to
- // send messages.
- if (ACE_Service_Config::reactor ()->remove_handler
- (0, ACE_Event_Handler::DONT_CALL | ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "remove_handler"));
- delete mb;
- break;
- case -1:
- delete mb;
- ACE_ERROR ((LM_ERROR, "%p\n", "read"));
- break;
- default:
- peer_msg->header_.len_ = htonl (n);
- mb->wr_ptr (sizeof (Peer_Header) + n);
-
- if (this->put (mb) == -1)
- {
- if (errno == EWOULDBLOCK) // The queue has filled up!
- ACE_ERROR ((LM_ERROR, "%p\n",
- "gateway is flow controlled, so we're dropping messages"));
- else
- ACE_ERROR ((LM_ERROR, "%p\n", "transmission failure in xmit_stdin"));
-
- // Caller is responsible for freeing a ACE_Message_Block
- // if failures occur.
- delete mb;
- }
- }
- }
- return 0;
-}
-
-// Perform a non-blocking put() of message MB. If we are unable to
-// send the entire message the remainder is re-Taskd at the *front* of
-// the Message_List.
-
-int
-Gateway_Handler::nonblk_put (ACE_Message_Block *mb)
-{
- // Try to send the message. If we don't send it all (e.g., due to
- // flow control), then re-ACE_Task the remainder at the head of the
- // Message_List and ask the ACE_Reactor to inform us (via
- // handle_output()) when it is possible to try again.
-
- ssize_t n;
-
- if ((n = this->send_peer (mb)) == -1)
- return -1;
- else if (errno == EWOULDBLOCK) // Didn't manage to send everything.
- {
- ACE_DEBUG ((LM_DEBUG,
- "queueing activated on handle %d to routing id %d\n",
- this->get_handle (), this->routing_id_));
-
- // ACE_Queue in *front* of the list to preserve order.
- if (this->msg_queue ()->enqueue_head
- (mb, (ACE_Time_Value *) &ACE_Time_Value::zero) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "enqueue_head"), -1);
-
- // Tell ACE_Reactor to call us back when we can send again.
- if (ACE_Service_Config::reactor ()->schedule_wakeup
- (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "schedule_wakeup"), -1);
- return 0;
- }
- else
- return n;
-}
-
-// Finish sending a message when flow control conditions abate. This
-// method is automatically called by the ACE_Reactor.
-
-int
-Gateway_Handler::handle_output (ACE_HANDLE)
-{
- ACE_Message_Block *mb = 0;
-
- ACE_DEBUG ((LM_DEBUG, "in handle_output\n"));
- // The list had better not be empty, otherwise there's a bug!
-
- if (this->msg_queue ()->dequeue_head
- (mb, (ACE_Time_Value *) &ACE_Time_Value::zero) != -1)
- {
- switch (this->nonblk_put (mb))
- {
- case 0: // Partial send.
- ACE_ASSERT (errno == EWOULDBLOCK);
- // Didn't write everything this time, come back later...
- break;
-
- case -1:
- // Caller is responsible for freeing a ACE_Message_Block if
- // failures occur.
- delete mb;
- ACE_ERROR ((LM_ERROR, "%p\n",
- "transmission failure in handle_output"));
-
- /* FALLTHROUGH */
- default: // Sent the whole thing.
-
- // If we succeed in writing the entire message (or we did
- // not fail due to EWOULDBLOCK) then check if there are more
- // messages on the Message_List. If there aren't, tell the
- // ACE_Reactor not to notify us anymore (at least until
- // there are new messages queued up).
-
- if (this->msg_queue ()->is_empty ())
- {
- ACE_DEBUG ((LM_DEBUG,
- "queue now empty on handle %d to routing id %d\n",
- this->get_handle (),
- this->routing_id_));
-
- if (ACE_Service_Config::reactor ()->cancel_wakeup
- (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "cancel_wakeup"));
- }
- }
- }
- else
- ACE_ERROR ((LM_ERROR, "%p\n", "dequeue_head"));
- return 0;
-}
-
-// Send a message to a peer (may ACE_Task if necessary).
-
-int
-Gateway_Handler::put (ACE_Message_Block *mb, ACE_Time_Value *)
-{
- if (this->msg_queue ()->is_empty ())
- // Try to send the message *without* blocking!
- return this->nonblk_put (mb);
- else
- // If we have queued up messages due to flow control then just
- // enqueue and return.
- return this->msg_queue ()->enqueue_tail
- (mb, (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-// Send an Peer message to gatewayd.
-
-int
-Gateway_Handler::send_peer (ACE_Message_Block *mb)
-{
- ssize_t n;
- size_t len = mb->length ();
-
- if ((n = this->peer ().send (mb->rd_ptr (), len)) <= 0)
- return errno == EWOULDBLOCK ? 0 : n;
- else if (n < (ssize_t) len)
- {
- // Re-adjust pointer to skip over the part we did send.
- mb->rd_ptr (n);
- this->total_bytes_ += n;
- }
- else /* if (n == length) */
- {
- // The whole message is sent, we can now safely deallocate the
- // buffer. Note that this should decrement a reference count...
- this->total_bytes_ += n;
- delete mb;
- errno = 0;
- }
- ACE_DEBUG ((LM_DEBUG, "sent %d bytes, total bytes sent = %d\n",
- n, this->total_bytes_));
- return n;
-}
-
-// Receive an Peer message from gatewayd. Handles fragmentation.
-
-int
-Gateway_Handler::recv_peer (ACE_Message_Block *&mb)
-{
- Event *peer_msg;
- size_t len;
- ssize_t n;
- size_t offset = 0;
-
- if (this->msg_frag_ == 0)
- {
- ACE_NEW_RETURN (this->msg_frag_,
- ACE_Message_Block (sizeof (Event)),
- -1);
-
- // No existing fragment...
- if (this->msg_frag_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "out of memory\n"), -1);
-
- peer_msg = (Event *) this->msg_frag_->rd_ptr ();
-
- switch (n = this->peer ().recv (peer_msg, sizeof (Peer_Header)))
- {
- case sizeof (Peer_Header):
- len = ntohl (peer_msg->header_.len_);
- if (len <= sizeof peer_msg->buf_)
- {
- this->msg_frag_->wr_ptr (sizeof (Peer_Header));
- break; // The message is within the maximum size range.
- }
- else
- ACE_ERROR ((LM_ERROR, "message too long = %d\n", len));
- /* FALLTHROUGH */
- default:
- ACE_ERROR ((LM_ERROR, "invalid length = %d\n", n));
- n = -1;
- /* FALLTHROUGH */
- case -1:
- /* FALLTHROUGH */
- case 0:
- // Make sure to free up memory on error returns.
- delete this->msg_frag_;
- this->msg_frag_ = 0;
- return n;
- }
- }
- else
- {
- offset = this->msg_frag_->length () - sizeof (Peer_Header);
- len = peer_msg->header_.len_ - offset;
- }
-
- switch (n = this->peer ().recv (peer_msg->buf_ + offset, len))
- {
- case -1:
- if (errno == EWOULDBLOCK)
- {
- // This shouldn't happen since the ACE_Reactor
- // just triggered us to handle pending I/O!
- ACE_DEBUG ((LM_DEBUG, "unexpected recv failure\n"));
- // Since ACE_DEBUG might change errno, we need to reset it
- // here.
- errno = EWOULDBLOCK;
- return -1;
- }
- else
- /* FALLTHROUGH */;
-
- case 0: // EOF.
- delete this->msg_frag_;
- this->msg_frag_ = 0;
- return n;
-
- default:
- if (n != (ssize_t) len)
- // Re-adjust pointer to skip over the part we've read.
- {
- this->msg_frag_->wr_ptr (n);
- errno = EWOULDBLOCK;
- // Inform caller that we didn't get the whole message.
- return -1;
- }
- else
- {
- // Set the write pointer at 1 past the end of the message.
- this->msg_frag_->wr_ptr (n);
-
- // Set the read pointer to the beginning of the message.
- this->msg_frag_->rd_ptr (this->msg_frag_->base ());
-
- mb = this->msg_frag_;
-
- // Reset the pointer to indicate we've got an entire
- // message.
- this->msg_frag_ = 0;
- }
- return n;
- }
-}
-
-// Receive various types of input (e.g., Peer message from the
-// gatewayd, as well as stdio).
-
-int
-Gateway_Handler::handle_input (ACE_HANDLE sd)
-{
- ACE_DEBUG ((LM_DEBUG, "in handle_input, sd = %d\n", sd));
- if (sd == ACE_STDIN) // Handle message from stdin.
- return this->xmit_stdin ();
- else
- // Perform the appropriate action depending on the state we are
- // in.
- return (this->*do_action_) ();
-}
-
-// Action that receives the route id.
-
-int
-Gateway_Handler::await_route_id (void)
-{
- ssize_t n = this->peer ().recv (&this->routing_id_,
- sizeof this->routing_id_);
-
- if (n != sizeof this->routing_id_)
- {
- if (n == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "gatewayd has closed down unexpectedly\n"), -1);
- else
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p, bytes received on handle %d = %d\n",
- "recv", this->get_handle (), n), -1);
- }
- else
- ACE_DEBUG ((LM_DEBUG, "assigned routing id %d\n",
- this->routing_id_));
-
- // Transition to the action that waits for Peer messages.
- this->do_action_ = &Gateway_Handler::await_messages;
-
- // Reset standard input.
- ACE_OS::rewind (stdin);
-
- // Register this handler to receive test messages on stdin.
- if (ACE_Service_Config::reactor ()->register_handler
- (ACE_STDIN, this, ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "register_handler"), -1);
- return 0;
-}
-
-// Action that receives messages.
-
-int
-Gateway_Handler::await_messages (void)
-{
- ACE_Message_Block *mb = 0;
- ssize_t n = this->recv_peer (mb);
-
- switch (n)
- {
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR, "gatewayd has closed down\n"), -1);
- /* NOTREACHED */
- case -1:
- if (errno == EWOULDBLOCK)
- // A short-read, we'll come back and finish it up later on!
- return 0;
- else
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "recv_peer"), -1);
- /* NOTREACHED */
- default:
- {
- // We got a valid message, so let's process it now! At the
- // moment, we just print out the message contents...
-
- Event *peer_msg = (Event *) mb->rd_ptr ();
- this->total_bytes_ += mb->length ();
-
-#if defined (VERBOSE)
- ACE_DEBUG ((LM_DEBUG,
- "route id = %d, len = %d, payload = %*s",
- peer_msg->header_.routing_id_, peer_msg->header_.len_,
- peer_msg->header_.len_, peer_msg->buf_));
-#else
- ACE_DEBUG ((LM_DEBUG,
- "route id = %d, cur len = %d, total len = %d\n",
- peer_msg->header_.routing_id_,
- peer_msg->header_.len_,
- this->total_bytes_));
-#endif
- delete mb;
- return 0;
- }
- }
-}
-
-// Periodically send messages via ACE_Reactor timer mechanism.
-
-int
-Gateway_Handler::handle_timeout (const ACE_Time_Value &, const void *)
-{
- // Skip over deactivated descriptors.
- if (this->get_handle () != -1)
- {
- // Unbind ourselves from the map.
- if (this->map_->unbind (this->get_handle ()) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "unbind"));
-
- // Shut down the handler.
- this->handle_close ();
- }
- return 0;
-}
-
-// Handle shutdown of the Gateway_Handler object.
-
-int
-Gateway_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- if (this->get_handle () != ACE_INVALID_HANDLE)
- {
- ACE_DEBUG ((LM_DEBUG, "shutting down Gateway_Handler on handle %d\n",
- this->get_handle ()));
-
- // Explicitly remove ourselves for handle 0 (the ACE_Reactor
- // removes this->handle (), note that
- // ACE_Event_Handler::DONT_CALL instructs the ACE_Reactor *not*
- // to call this->handle_close(), which would otherwise lead to
- // recursion!).
- if (ACE_Service_Config::reactor ()->remove_handler
- (0, ACE_Event_Handler::DONT_CALL | ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR ((LM_ERROR, "handle = %d: %p\n",
- 0, "remove_handler"));
-
- // Deregister this handler with the ACE_Reactor.
- if (ACE_Service_Config::reactor ()->remove_handler
- (this, ACE_Event_Handler::DONT_CALL | ACE_Event_Handler::RWE_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "handle = %d: %p\n",
- this->get_handle (), "remove_handler"), -1);
-
- // Close down the peer.
- this->peer ().close ();
- }
- return 0;
-}
-
-Gateway_Acceptor::Gateway_Acceptor (Gateway_Handler *handler)
- : gateway_handler_ (handler)
-{
- this->gateway_handler_->map (&this->map_);
-}
-
-// Note how this method just passes back the pre-allocated
-// Gateway_Handler instead of having the ACE_Acceptor allocate a new
-// one each time!
-
-Gateway_Handler *
-Gateway_Acceptor::make_svc_handler (void)
-{
- return this->gateway_handler_;
-}
-
-int
-Gateway_Acceptor::handle_signal (int signum, siginfo_t *, ucontext_t *)
-{
- ACE_DEBUG ((LM_DEBUG, "signal %S occurred\n", signum));
- return 0;
-}
-
-/* Returns information on the currently active service. */
-
-int
-Gateway_Acceptor::info (char **strp, size_t length) const
-{
- char buf[BUFSIZ];
- char addr_str[BUFSIZ];
-
- ACE_INET_Addr addr;
-
- if (this->acceptor ().get_local_addr (addr) == -1)
- return -1;
- else if (addr.addr_to_string (addr_str, sizeof addr) == -1)
- return -1;
-
- ACE_OS::sprintf (buf, "%s\t %s/%s %s",
- "Gateway peer daemon", addr_str, "tcp",
- "# IRIDIUM SRP traffic generator and data sink\n");
-
- if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
- return -1;
- else
- ACE_OS::strncpy (*strp, buf, length);
- return ACE_OS::strlen (buf);
-}
-
-// Hook called by the explicit dynamic linking facility to terminate
-// the peer.
-
-int
-Gateway_Acceptor::fini (void)
-{
- HANDLER_ITERATOR mi (this->map_);
-
- for (MAP_ENTRY *me = 0;
- mi.next (me) != 0;
- mi.advance ())
- {
- if (me->int_id_->get_handle () != -1)
- {
- ACE_DEBUG ((LM_DEBUG, "closing down handle %d\n",
- me->int_id_->get_handle ()));
- me->int_id_->handle_close ();
- }
- else
- ACE_DEBUG ((LM_DEBUG, "already closed %d\n"));
- me->int_id_->destroy (); // Will trigger a delete.
- }
-
- this->gateway_handler_->destroy (); // Will trigger a delete.
- return inherited::fini ();
-}
-
-// Hook called by the explicit dynamic linking facility to initialize
-// the peer.
-
-int
-Gateway_Acceptor::init (int argc, char *argv[])
-{
- ACE_Get_Opt get_opt (argc, argv, "dp:", 0);
- ACE_INET_Addr addr;
-
- for (int c; (c = get_opt ()) != -1; )
- {
- switch (c)
- {
- case 'p':
- addr.set (ACE_OS::atoi (get_opt.optarg));
- break;
- case 'd':
- break;
- default:
- break;
- }
- }
-
- if (ACE_Service_Config::reactor ()->register_handler (SIGPIPE, this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "register_handler"), -1);
-
- if (this->open (addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
- else if (ACE_Service_Config::reactor ()->register_handler
- (this, ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "registering service with ACE_Reactor\n"), -1);
-
- ACE_Sig_Set sig_set;
- sig_set.sig_add (SIGINT);
- sig_set.sig_add (SIGQUIT);
-
- // Register ourselves to receive SIGINT and SIGQUIT so we can shut
- // down gracefully via signals.
-
- if (ACE_Service_Config::reactor ()->register_handler (sig_set,
- this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "register_handler"), -1);
- return 0;
-}
-
-// Dynamically linked factory function that dynamically allocates a
-// new Gateway_Acceptor object.
-
-ACE_Service_Object *
-_alloc_peerd (void)
-{
- // This function illustrates how we can associate a ACE_Svc_Handler
- // with the ACE_Acceptor at initialization time.
- Gateway_Handler *handler;
-
- ACE_NEW_RETURN (handler, Gateway_Handler, 0);
- ACE_Service_Object *temp;
-
- ACE_NEW_RETURN (temp, Gateway_Acceptor (handler), 0);
- return temp;
-}
diff --git a/apps/Gateway/Peer/Gateway_Handler.h b/apps/Gateway/Peer/Gateway_Handler.h
deleted file mode 100644
index 6dc4539e6b7..00000000000
--- a/apps/Gateway/Peer/Gateway_Handler.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-/* These Gateway handler classes process Peer messages sent from the
- communication gateway daemon (gatewayd) to its various peers, e.g.,
- CF and ETS, (represented collectively in this prototype as peerd).
- . These classes works as follows:
-
- 1. Gateway_Acceptor creates a listener endpoint and waits passively
- for gatewayd to connect with it.
-
- 2. When gatewayd connects, Gateway_Acceptor creates an
- Gateway_Handler object that sends/receives messages from
- gatewayd.
-
- 3. Gateway_Handler waits for gatewayd to inform it of its routing
- ID, which is prepended to all outgoing messages send from peerd.
-
- 4. Once the routing ID is set, peerd periodically sends messages to
- gatewayd. Peerd also receives and "processes" messages
- forwarded to it from gatewayd. In this program, peerd
- "processes" messages by writing them to stdout. */
-
-#if !defined (GATEWAY_HANDLER)
-#define GATEWAY_HANDLER
-
-#include "ace/Service_Config.h"
-#include "ace/Svc_Handler.h"
-#include "ace/Acceptor.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/SOCK_Acceptor.h"
-#include "ace/INET_Addr.h"
-#include "ace/Map_Manager.h"
-#include "Peer_Message.h"
-
-// Forward declaration.
-class Gateway_Handler;
-
-// Maps a ACE_HANDLE onto a Gateway_Handler *.
-typedef ACE_Map_Manager <ACE_HANDLE, Gateway_Handler *, ACE_Null_Mutex> HANDLER_MAP;
-typedef ACE_Map_Iterator<ACE_HANDLE, Gateway_Handler *, ACE_Null_Mutex> HANDLER_ITERATOR;
-typedef ACE_Map_Entry <ACE_HANDLE, Gateway_Handler *> MAP_ENTRY;
-
-// Handle Peer messages arriving as events.
-
-class Gateway_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
-public:
- Gateway_Handler (ACE_Thread_Manager * = 0);
-
- virtual int open (void * = 0);
- // Initialize the handler (called by ACE_Acceptor::handle_input())
-
- virtual int handle_input (ACE_HANDLE);
- // Receive and process peer messages.
-
- virtual int put (ACE_Message_Block *, ACE_Time_Value *tv = 0);
- // Send a message to a gateway (may be queued if necessary).
-
- virtual int handle_output (ACE_HANDLE);
- // Finish sending a message when flow control conditions abate.
-
- virtual int handle_timeout (const ACE_Time_Value &,
- const void *arg);
- // Periodically send messages via ACE_Reactor timer mechanism.
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::RWE_MASK);
- // Perform object termination.
-
- void map (HANDLER_MAP *);
- // Cache a binding to the HANDLER_MAP.
-
-protected:
- typedef ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> inherited;
-
- // We'll allow up to 16 megabytes to be queued per-output
- // channel!!!! This is clearly a policy in search of refinement...
- enum { QUEUE_SIZE = 1024 * 1024 * 16 };
-
- int handle_signal (int signum, siginfo_t *, ucontext_t *);
-
- Peer_Header::ROUTING_ID routing_id_;
- // Routing ID of the peer (obtained from gatewayd).
-
- virtual int nonblk_put (ACE_Message_Block *mb);
- // Perform a non-blocking put().
-
- virtual int recv_peer (ACE_Message_Block *&);
- // Receive an Peer message from gatewayd.
-
- virtual int send_peer (ACE_Message_Block *);
- // Send an Peer message to gatewayd.
-
- int xmit_stdin (void);
- // Receive a message from stdin and send it to the gateway.
-
- int (Gateway_Handler::*do_action_) (void);
- // Pointer-to-member-function for the current action to run in this state.
-
- int await_route_id (void);
- // Action that receives the route id.
-
- int await_messages (void);
- // Action that receives messages.
-
- ACE_Message_Block *msg_frag_;
- // Keep track of message fragment to handle non-blocking recv's from gateway.
-
- size_t total_bytes_;
- // The total number of bytes sent/received to the gateway.
-
- HANDLER_MAP *map_;
- // Maps the ACE_HANDLE onto the Gateway_Handler *.
-};
-
-// A factory class that accept connections from gatewayd and
-// dynamically creates a new Gateway_Handler object to do the dirty work.
-
-class Gateway_Acceptor : public ACE_Acceptor<Gateway_Handler, ACE_SOCK_ACCEPTOR>
-{
-public:
- // = Initialization methods, called when dynamically linked.
- Gateway_Acceptor (Gateway_Handler *handler);
- virtual int init (int argc, char *argv[]);
- // Initialize the acceptor.
-
- virtual int info (char **, size_t) const;
- // Return info about this service.
-
- virtual int fini (void);
- // Perform termination.
-
- virtual Gateway_Handler *make_svc_handler (void);
- // Factory method that creates the Gateway_Handler once.
-
- virtual int handle_signal (int signum, siginfo_t *, ucontext_t *);
- // Handle various signals (e.g., SIGPIPE)
-
- HANDLER_MAP map_;
- // Maps the ACE_HANDLE onto the Gateway_Handler *.
-
- Gateway_Handler *gateway_handler_;
- // Pointer to memory allocated exactly once.
-
- typedef ACE_Acceptor<Gateway_Handler, ACE_SOCK_ACCEPTOR> inherited;
-};
-
-// Factory function that allocates a new Peer daemon.
-extern "C" ACE_Service_Object *_alloc_peerd (void);
-
-#endif /* GATEWAY_HANDLER */
-
diff --git a/apps/Gateway/Peer/Makefile b/apps/Gateway/Peer/Makefile
deleted file mode 100644
index c33b7c7623f..00000000000
--- a/apps/Gateway/Peer/Makefile
+++ /dev/null
@@ -1,221 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the Peer test driver portion of the Gateway application
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = peerd
-LIB = libPeer.a
-SHLIB = libPeer.$(SOEXT)
-
-FILES = Options \
- Peer
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LDLIBS = -lPeer
-LIBS += $(ACELIB)
-
-BUILD = $(VLIB) $(VSHLIB) $(SHLIBA) $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-INCLDIRS += -I../Gateway
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/Options.o .obj/Options.so .shobj/Options.o .shobj/Options.so: Options.cpp \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Get_Opt.i \
- Options.h ../Gateway/Event.h
-.obj/Peer.o .obj/Peer.so .shobj/Peer.o .shobj/Peer.so: Peer.cpp Peer.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Acceptor.i \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/Connector.cpp \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- Options.h ../Gateway/Event.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/Gateway/Peer/Makefile.bor b/apps/Gateway/Peer/Makefile.bor
deleted file mode 100644
index 7d01fd58d4a..00000000000
--- a/apps/Gateway/Peer/Makefile.bor
+++ /dev/null
@@ -1,8 +0,0 @@
-
-NAME = peerd
-OBJFILES = \
- $(OBJDIR)\Options.obj \
- $(OBJDIR)\Peer.obj \
- $(OBJDIR)\peerd.obj
-!include <$(ACE_ROOT)\apps\build.bor>
-
diff --git a/apps/Gateway/Peer/Options.cpp b/apps/Gateway/Peer/Options.cpp
deleted file mode 100644
index a51a9041ace..00000000000
--- a/apps/Gateway/Peer/Options.cpp
+++ /dev/null
@@ -1,192 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "ace/Get_Opt.h"
-#include "Options.h"
-
-ACE_RCSID(Peer, Options, "$Id$")
-
-// Static initialization.
-Options *Options::instance_ = 0;
-
-void
-Options::print_usage_and_die (void)
-{
- ACE_DEBUG ((LM_DEBUG, "%n [-a {C|S}:acceptor-port] [-c {C|S}:connector-port] [-C connection-id] [-h gateway-host] [-q max-queue-size] [-t timeout] [-v]\n"));
-}
-
-Options::Options (void)
- : options_ (0),
- supplier_acceptor_port_ (DEFAULT_PEER_SUPPLIER_PORT),
- consumer_acceptor_port_ (DEFAULT_PEER_CONSUMER_PORT),
- supplier_connector_port_ (DEFAULT_GATEWAY_SUPPLIER_PORT),
- consumer_connector_port_ (DEFAULT_GATEWAY_CONSUMER_PORT),
- connector_host_ (ACE_DEFAULT_SERVER_HOST),
- timeout_ (0),
- max_queue_size_ (MAX_QUEUE_SIZE),
- connection_id_ (0)
-{
- char *timeout = ACE_OS::getenv ("TIMEOUT");
-
- if (timeout == 0)
- this->timeout_ = Options::DEFAULT_TIMEOUT;
- else
- this->timeout_ = ACE_OS::atoi (timeout);
-}
-
-Options *
-Options::instance (void)
-{
- if (Options::instance_ == 0)
- ACE_NEW_RETURN (Options::instance_, Options, 0);
-
- return Options::instance_;
-}
-
-long
-Options::timeout (void) const
-{
- return this->timeout_;
-}
-
-CONNECTION_ID &
-Options::connection_id (void)
-{
- return this->connection_id_;
-}
-
-long
-Options::max_queue_size (void) const
-{
- return this->max_queue_size_;
-}
-
-u_short
-Options::consumer_acceptor_port (void) const
-{
- return this->consumer_acceptor_port_;
-}
-
-u_short
-Options::supplier_acceptor_port (void) const
-{
- return this->supplier_acceptor_port_;
-}
-
-u_short
-Options::consumer_connector_port (void) const
-{
- return this->consumer_connector_port_;
-}
-
-u_short
-Options::supplier_connector_port (void) const
-{
- return this->supplier_connector_port_;
-}
-
-const char *
-Options::connector_host (void) const
-{
- return this->connector_host_;
-}
-
-int
-Options::enabled (int option) const
-{
- return ACE_BIT_ENABLED (this->options_, option);
-}
-
-void
-Options::parse_args (int argc, char *argv[])
-{
- ACE_Get_Opt get_opt (argc, argv, "a:c:C:h:m:t:v", 0);
-
- for (int c; (c = get_opt ()) != -1; )
- {
- switch (c)
- {
- case 'a':
- {
- // Become an Acceptor.
-
- for (char *flag = ACE_OS::strtok (get_opt.optarg, "|");
- flag != 0;
- flag = ACE_OS::strtok (0, "|"))
- if (ACE_OS::strncasecmp (flag, "C", 1) == 0)
- {
- ACE_SET_BITS (this->options_,
- Options::CONSUMER_ACCEPTOR);
- if (ACE_OS::strlen (flag) > 1)
- // Set the Consumer Acceptor port number.
- this->consumer_acceptor_port_ = ACE_OS::atoi (flag + 2);
- }
- else if (ACE_OS::strncasecmp (flag, "S", 1) == 0)
- {
- ACE_SET_BITS (this->options_,
- Options::SUPPLIER_ACCEPTOR);
- if (ACE_OS::strlen (flag) > 1)
- // Set the Supplier Acceptor port number.
- this->supplier_acceptor_port_ = ACE_OS::atoi (flag + 2);
- }
- }
- break;
- /* NOTREACHED */
- case 'c':
- {
- // Become a Connector.
-
- for (char *flag = ACE_OS::strtok (get_opt.optarg, "|");
- flag != 0;
- flag = ACE_OS::strtok (0, "|"))
- if (ACE_OS::strncasecmp (flag, "C", 1) == 0)
- {
- ACE_SET_BITS (this->options_,
- Options::CONSUMER_CONNECTOR);
- if (ACE_OS::strlen (flag) > 1)
- // Set the Consumer Connector port number.
- this->consumer_connector_port_ = ACE_OS::atoi (flag + 2);
- }
- else if (ACE_OS::strncasecmp (flag, "S", 1) == 0)
- {
- ACE_SET_BITS (this->options_,
- Options::SUPPLIER_CONNECTOR);
- if (ACE_OS::strlen (flag) > 1)
- // Set the Supplier Connector port number.
- this->supplier_connector_port_ = ACE_OS::atoi (flag + 2);
- }
- }
- break;
- /* NOTREACHED */
- case 'C':
- this->connection_id_ = ACE_OS::atoi (get_opt.optarg);
- break;
- /* NOTREACHED */
- case 'h':
- // connector host
- this->connector_host_ = get_opt.optarg;
- break;
- /* NOTREACHED */
- case 'm':
- // max queue size.
- this->max_queue_size_ = ACE_OS::atoi (get_opt.optarg);
- break;
- /* NOTREACHED */
- case 't':
- // Timeout
- this->timeout_ = ACE_OS::atoi (get_opt.optarg);
- break;
- /* NOTREACHED */
- case 'v':
- // Verbose mode.
- ACE_SET_BITS (this->options_, Options::VERBOSE);
- break;
- /* NOTREACHED */
- default:
- this->print_usage_and_die ();
- /* NOTREACHED */
- }
- }
-}
-
diff --git a/apps/Gateway/Peer/Options.h b/apps/Gateway/Peer/Options.h
deleted file mode 100644
index c0136ce78ae..00000000000
--- a/apps/Gateway/Peer/Options.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Options.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef OPTIONS_H
-#define OPTIONS_H
-
-#include "../Gateway/Event.h"
-
-class ACE_Svc_Export Options
- // = TITLE
- // Singleton that consolidates all Options for a peerd.
-{
-public:
- // = Options that can be enabled/disabled.
- enum
- {
- VERBOSE = 01,
- SUPPLIER_ACCEPTOR = 02,
- CONSUMER_ACCEPTOR = 04,
- SUPPLIER_CONNECTOR = 010,
- CONSUMER_CONNECTOR = 020
- };
-
- static Options *instance (void);
- // Return Singleton.
-
- void parse_args (int argc, char *argv[]);
- // Parse the arguments and set the options.
-
- // = Accessor methods.
- int enabled (int option) const;
- // Determine if an option is enabled.
-
- u_short supplier_acceptor_port (void) const;
- // Our acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Supplier.
-
- u_short consumer_acceptor_port (void) const;
- // Our acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Consumer.
-
- u_short supplier_connector_port (void) const;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Supplier.
-
- u_short consumer_connector_port (void) const;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Consumer.
-
- const char *connector_host (void) const;
- // Our connector port host, i.e., the host running the gatewayd
- // process.
-
- long timeout (void) const;
- // Duration between disconnects.
-
- long max_queue_size (void) const;
- // The maximum size of the queue.
-
- CONNECTION_ID &connection_id (void);
- // Returns a reference to the connection id.
-
-private:
- enum
- {
- MAX_QUEUE_SIZE = 1024 * 1024 * 16,
- // We'll allow up to 16 megabytes to be queued per-output
- // channel!!!! This is clearly a policy in search of
- // refinement...
-
- DEFAULT_TIMEOUT = 60
- // By default, disconnect the peer every minute.
- };
-
- Options (void);
- // Ensure Singleton.
-
- void print_usage_and_die (void);
- // Explain usage and exit.
-
- static Options *instance_;
- // Singleton.
-
- u_long options_;
- // Flag to indicate if we want verbose diagnostics.
-
- u_short supplier_acceptor_port_;
- // The acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Supplier.
-
- u_short consumer_acceptor_port_;
- // The acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Consumer.
-
- u_short supplier_connector_port_;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Supplier.
-
- u_short consumer_connector_port_;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Consumer.
-
- const char *connector_host_;
- // Our connector host, i.e., where the gatewayd process is running.
-
- long timeout_;
- // The amount of time to wait before disconnecting from the Peerd.
-
- long max_queue_size_;
- // The maximum size that the queue can grow to.
-
- CONNECTION_ID connection_id_;
- // The connection id.
-};
-
-#endif /* OPTIONS_H */
diff --git a/apps/Gateway/Peer/Peer.cpp b/apps/Gateway/Peer/Peer.cpp
deleted file mode 100644
index 79ab12659b3..00000000000
--- a/apps/Gateway/Peer/Peer.cpp
+++ /dev/null
@@ -1,866 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "Peer.h"
-
-ACE_RCSID(Peer, Peer, "$Id$")
-
-Peer_Handler::Peer_Handler (void)
- : connection_id_ (0),
- msg_frag_ (0),
- total_bytes_ (0)
-{
- // Set the high water mark of the <ACE_Message_Queue>. This is used
- // to exert flow control.
- this->msg_queue ()->high_water_mark (Options::instance ()->max_queue_size ());
-}
-
-// Upcall from the <ACE_Acceptor::handle_input> that turns control
-// over to our application-specific Gateway handler.
-
-int
-Peer_Handler::open (void *a)
-{
- ACE_DEBUG ((LM_DEBUG,
- "handle = %d\n",
- this->peer ().get_handle ()));
-
- // Call down to the base class to activate and register this handler
- // with an <ACE_Reactor>.
- if (this->inherited::open (a) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
-
- if (this->peer ().enable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "enable"),
- -1);
-
- ACE_Time_Value timeout (Options::instance ()->timeout ());
-
- // Schedule the time between disconnects. This should really be a
- // "tunable" parameter.
- if (ACE_Reactor::instance ()->schedule_timer
- (this, 0, timeout) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "schedule_timer"));
-
- // If there are events left in the queue, make sure we enable the
- // <ACE_Reactor> appropriately to get them sent out.
- if (this->msg_queue ()->is_empty () == 0
- && ACE_Reactor::instance ()->schedule_wakeup
- (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "schedule_wakeup"),
- -1);
-
- // First action is to wait to be notified of our connection id.
- this->do_action_ = &Peer_Handler::await_connection_id;
- return 0;
-}
-
-int
-Peer_Handler::transmit (ACE_Message_Block *mb,
- size_t n,
- int event_type)
-{
- Event *event = (Event *) mb->rd_ptr ();
-
- // Initialize the header.
- new (&event->header_) Event_Header (n,
- this->connection_id_,
- 0,
- event_type);
-
- // Convert all the fields into network byte order.
- event->header_.encode ();
-
- // Move the write pointer to the end of the event.
- mb->wr_ptr (sizeof (Event_Header) + n);
-
- if (this->put (mb) == -1)
- {
- if (errno == EWOULDBLOCK) // The queue has filled up!
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "gateway is flow controlled, so we're dropping events"));
- else
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "transmission failure in transmit_stdin"));
- // Caller is responsible for freeing a ACE_Message_Block
- // if failures occur.
- mb->release ();
- return -1;
- }
- return 0;
-}
-
-// Read events from stdin and send them to the gatewayd.
-
-int
-Peer_Handler::transmit_stdin (void)
-{
- if (this->connection_id_ != -1)
- {
- ACE_Message_Block *mb;
-
- ACE_NEW_RETURN (mb,
- ACE_Message_Block (sizeof (Event)),
- -1);
-
- // Cast the message block payload into an <Event> pointer.
- Event *event = (Event *) mb->rd_ptr ();
-
- ssize_t n = ACE_OS::read (ACE_STDIN,
- event->data_,
- sizeof event->data_);
- switch (n)
- {
- case 0:
- ACE_DEBUG ((LM_DEBUG,
- "stdin closing down\n"));
-
- // Take stdin out of the ACE_Reactor so we stop trying to
- // send events.
- ACE_Reactor::instance ()->remove_handler
- (ACE_STDIN,
- ACE_Event_Handler::DONT_CALL | ACE_Event_Handler::READ_MASK);
- mb->release ();
- break;
- /* NOTREACHED */
- case -1:
- mb->release ();
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "read"));
- break;
- /* NOTREACHED */
- default:
- return this->transmit (mb, n, ROUTING_EVENT);
- /* NOTREACHED */
- }
- return 0;
- }
-
- ACE_DEBUG ((LM_DEBUG,
- "Must transmit over an opened channel.\n"));
- return -1;
-}
-
-// Perform a non-blocking <put> of event MB. If we are unable to send
-// the entire event the remainder is re-queue'd at the *front* of the
-// Message_Queue.
-
-int
-Peer_Handler::nonblk_put (ACE_Message_Block *mb)
-{
- // Try to send the event. If we don't send it all (e.g., due to
- // flow control), then re-queue the remainder at the head of the
- // <ACE_Message_Queue> and ask the <ACE_Reactor> to inform us (via
- // <handle_output>) when it is possible to try again.
-
- ssize_t n = this->send (mb);
-
- if (n == -1)
- return -1;
- else if (errno == EWOULDBLOCK)
- {
- // We didn't manage to send everything, so requeue.
- ACE_DEBUG ((LM_DEBUG,
- "queueing activated on handle %d to connection id %d\n",
- this->get_handle (),
- this->connection_id_));
-
- // Re-queue in *front* of the list to preserve order.
- if (this->msg_queue ()->enqueue_head
- (mb,
- (ACE_Time_Value *) &ACE_Time_Value::zero) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "enqueue_head"),
- -1);
- // Tell ACE_Reactor to call us back when we can send again.
- if (ACE_Reactor::instance ()->schedule_wakeup
- (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "schedule_wakeup"),
- -1);
- return 0;
- }
- else
- return n;
-}
-
-// Finish sending a event when flow control conditions abate. This
-// method is automatically called by the ACE_Reactor.
-
-int
-Peer_Handler::handle_output (ACE_HANDLE)
-{
- ACE_Message_Block *mb = 0;
-
- ACE_DEBUG ((LM_DEBUG,
- "in handle_output\n"));
-
- if (this->msg_queue ()->dequeue_head
- (mb,
- (ACE_Time_Value *) &ACE_Time_Value::zero) != -1)
- {
- switch (this->nonblk_put (mb))
- {
- case 0: // Partial send.
- ACE_ASSERT (errno == EWOULDBLOCK);
- // Didn't write everything this time, come back later...
- break;
- /* NOTREACHED */
- case -1:
- // Caller is responsible for freeing a ACE_Message_Block if
- // failures occur.
- mb->release ();
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "transmission failure in handle_output"));
- /* FALLTHROUGH */
- default: // Sent the whole thing.
- // If we succeed in writing the entire event (or we did not
- // fail due to EWOULDBLOCK) then check if there are more
- // events on the <ACE_Message_Queue>. If there aren't, tell
- // the <ACE_Reactor> not to notify us anymore (at least
- // until there are new events queued up).
-
- if (this->msg_queue ()->is_empty ())
- {
- ACE_DEBUG ((LM_DEBUG,
- "queue now empty on handle %d to connection id %d\n",
- this->get_handle (),
- this->connection_id_));
-
- if (ACE_Reactor::instance ()->cancel_wakeup
- (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "cancel_wakeup"));
- }
- }
- return 0;
- }
- else
- // If the list is empty there's a bug!
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "dequeue_head"),
- 0);
-}
-
-// Send an event to a peer (may block if necessary).
-
-int
-Peer_Handler::put (ACE_Message_Block *mb, ACE_Time_Value *)
-{
- if (this->msg_queue ()->is_empty ())
- // Try to send the event *without* blocking!
- return this->nonblk_put (mb);
- else
- // If we have queued up events due to flow control then just
- // enqueue and return.
- return this->msg_queue ()->enqueue_tail
- (mb, (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-// Send an Peer event to gatewayd.
-
-int
-Peer_Handler::send (ACE_Message_Block *mb)
-{
- size_t len = mb->length ();
-
- ssize_t n = this->peer ().send (mb->rd_ptr (), len);
-
- if (n <= 0)
- return errno == EWOULDBLOCK ? 0 : n;
- else if (n < (ssize_t) len)
- {
- // Re-adjust pointer to skip over the part we did send.
- mb->rd_ptr (n);
- this->total_bytes_ += n;
- }
- else // if (n == length).
- {
- // The whole event is sent, we can now safely deallocate the
- // buffer. Note that this should decrement a reference count...
- this->total_bytes_ += n;
- mb->release ();
- errno = 0;
- }
-
- ACE_DEBUG ((LM_DEBUG,
- "sent %d bytes, total bytes sent = %d\n",
- n,
- this->total_bytes_));
- return n;
-}
-
-// Receive an Event from gatewayd. Handles fragmentation.
-
-int
-Peer_Handler::recv (ACE_Message_Block *&mb)
-{
- if (this->msg_frag_ == 0)
- // No existing fragment...
- ACE_NEW_RETURN (this->msg_frag_,
- ACE_Message_Block (sizeof (Event)),
- -1);
-
- Event *event = (Event *) this->msg_frag_->rd_ptr ();
- ssize_t header_received = 0;
-
- const size_t HEADER_SIZE = sizeof (Event_Header);
- ssize_t header_bytes_left_to_read =
- HEADER_SIZE - this->msg_frag_->length ();
-
- if (header_bytes_left_to_read > 0)
- {
- header_received = this->peer ().recv
- (this->msg_frag_->wr_ptr (),
- header_bytes_left_to_read);
-
- if (header_received == -1 /* error */
- || header_received == 0 /* EOF */)
- {
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "Recv error during header read"));
- ACE_DEBUG ((LM_DEBUG,
- "attempted to read %d bytes\n",
- header_bytes_left_to_read));
- this->msg_frag_ = this->msg_frag_->release ();
- return header_received;
- }
-
- // Bump the write pointer by the amount read.
- this->msg_frag_->wr_ptr (header_received);
-
- // At this point we may or may not have the ENTIRE header.
- if (this->msg_frag_->length () < HEADER_SIZE)
- {
- ACE_DEBUG ((LM_DEBUG,
- "Partial header received: only %d bytes\n",
- this->msg_frag_->length ()));
- // Notify the caller that we didn't get an entire event.
- errno = EWOULDBLOCK;
- return -1;
- }
-
- // Convert the header into host byte order so that we can access
- // it directly without having to repeatedly muck with it...
- event->header_.decode ();
-
- if (event->header_.len_ > ACE_INT32 (sizeof event->data_))
- {
- // This data_ payload is too big!
- errno = EINVAL;
- ACE_DEBUG ((LM_DEBUG,
- "Data payload is too big (%d bytes)\n",
- event->header_.len_));
- return -1;
- }
- }
-
- // At this point there is a complete, valid header in Event. Now we
- // need to get the event payload. Due to incomplete reads this may
- // not be the first time we've read in a fragment for this message.
- // We account for this here. Note that the first time in here
- // <msg_frag_->wr_ptr> will point to <event->data_>. Every time we
- // do a successful fragment read, we advance <wr_ptr>. Therefore,
- // by subtracting how much we've already read from the
- // <event->header_.len_> we complete the
- // <data_bytes_left_to_read>...
-
- ssize_t data_bytes_left_to_read =
- ssize_t (event->header_.len_ - (msg_frag_->wr_ptr () - event->data_));
-
- ssize_t data_received =
- this->peer ().recv (this->msg_frag_->wr_ptr (),
- data_bytes_left_to_read);
-
- // Try to receive the remainder of the event.
-
- switch (data_received)
- {
- case -1:
- if (errno == EWOULDBLOCK)
- // This might happen if only the header came through.
- return -1;
- else
- /* FALLTHROUGH */;
-
- case 0: // Premature EOF.
- this->msg_frag_ = this->msg_frag_->release ();
- return 0;
-
- default:
- // Set the write pointer at 1 past the end of the event.
- this->msg_frag_->wr_ptr (data_received);
-
- if (data_received != data_bytes_left_to_read)
- {
- errno = EWOULDBLOCK;
- // Inform caller that we didn't get the whole event.
- return -1;
- }
- else
- {
- // Set the read pointer to the beginning of the event.
- this->msg_frag_->rd_ptr (this->msg_frag_->base ());
-
- mb = this->msg_frag_;
-
- // Reset the pointer to indicate we've got an entire event.
- this->msg_frag_ = 0;
- }
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) connection id = %d, cur len = %d, total bytes read = %d\n",
- event->header_.connection_id_,
- event->header_.len_,
- data_received + header_received));
- if (Options::instance ()->enabled (Options::VERBOSE))
- ACE_DEBUG ((LM_DEBUG,
- "data_ = %*s\n",
- event->header_.len_ - 2,
- event->data_));
- return data_received + header_received;
- }
-}
-
-// Receive various types of input (e.g., Peer event from the gatewayd,
-// as well as stdio).
-
-int
-Peer_Handler::handle_input (ACE_HANDLE sd)
-{
- ACE_DEBUG ((LM_DEBUG,
- "in handle_input, sd = %d\n",
- sd));
- if (sd == ACE_STDIN) // Handle event from stdin.
- return this->transmit_stdin ();
- else
- // Perform the appropriate action depending on the state we are
- // in.
- return (this->*do_action_) ();
-}
-
-// Action that receives our connection id from the Gateway.
-
-int
-Peer_Handler::await_connection_id (void)
-{
- ssize_t n = this->peer ().recv (&this->connection_id_,
- sizeof this->connection_id_);
-
- if (n != sizeof this->connection_id_)
- {
- if (n == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "gatewayd has closed down unexpectedly\n"),
- -1);
- else
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p, bytes received on handle %d = %d\n",
- "recv",
- this->get_handle (),
- n),
- -1);
- }
- else
- {
- this->connection_id_ = ntohl (this->connection_id_);
- ACE_DEBUG ((LM_DEBUG,
- "assigned connection id %d\n",
- this->connection_id_));
- }
-
- // Subscribe for events if we're a Consumer.
- if (Options::instance ()->enabled (Options::CONSUMER_CONNECTOR))
- this->subscribe ();
-
- // Transition to the action that waits for Peer events.
- this->do_action_ = &Peer_Handler::await_events;
-
- // Reset standard input.
- ACE_OS::rewind (stdin);
-
- // Register this handler to receive test events on stdin.
- if (ACE_Event_Handler::register_stdin_handler
- (this,
- ACE_Reactor::instance (),
- ACE_Thread_Manager::instance ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) %p\n",
- "register_stdin_handler"),
- -1);
- return 0;
-}
-
-int
-Peer_Handler::subscribe (void)
-{
- ACE_Message_Block *mb;
-
- ACE_NEW_RETURN (mb,
- ACE_Message_Block (sizeof (Event)),
- -1);
-
- Subscription *subscription = (Subscription *) ((Event *) mb->rd_ptr ())->data_;
- subscription->connection_id_ = Options::instance ()->connection_id ();
- return this->transmit (mb, sizeof *subscription, SUBSCRIPTION_EVENT);
-}
-
-// Action that receives events from the Gateway.
-
-int
-Peer_Handler::await_events (void)
-{
- ACE_Message_Block *mb = 0;
-
- ssize_t n = this->recv (mb);
-
- switch (n)
- {
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR,
- "gatewayd has closed down\n"),
- -1);
- /* NOTREACHED */
- case -1:
- if (errno == EWOULDBLOCK)
- // A short-read, we'll come back and finish it up later on!
- return 0;
- else
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "recv"),
- -1);
- /* NOTREACHED */
- default:
- {
- // We got a valid event, so let's process it now! At the
- // moment, we just print out the event contents...
-
- Event *event = (Event *) mb->rd_ptr ();
- this->total_bytes_ += mb->length ();
-
- ACE_DEBUG ((LM_DEBUG,
- "route id = %d, cur len = %d, total len = %d\n",
- event->header_.connection_id_,
- event->header_.len_,
- this->total_bytes_));
- if (Options::instance ()->enabled (Options::VERBOSE))
- ACE_DEBUG ((LM_DEBUG,
- "data_ = %s\n",
- event->data_));
- mb->release ();
- return 0;
- }
- }
-}
-
-// Periodically send events via ACE_Reactor timer mechanism.
-
-int
-Peer_Handler::handle_timeout (const ACE_Time_Value &,
- const void *)
-{
- // Shut down the handler.
- return this->handle_close ();
-}
-
-Peer_Handler::~Peer_Handler (void)
-{
- // Shut down the handler.
- this->handle_close ();
-}
-
-// Handle shutdown of the Peer object.
-
-int
-Peer_Handler::handle_close (ACE_HANDLE,
- ACE_Reactor_Mask)
-{
- if (this->get_handle () != ACE_INVALID_HANDLE)
- {
- ACE_DEBUG ((LM_DEBUG,
- "shutting down Peer on handle %d\n",
- this->get_handle ()));
-
- ACE_Reactor_Mask mask =
- ACE_Event_Handler::DONT_CALL | ACE_Event_Handler::READ_MASK;
-
- // Explicitly remove ourselves for ACE_STDIN (the <ACE_Reactor>
- // removes the HANDLE. Note that <ACE_Event_Handler::DONT_CALL>
- // instructs the ACE_Reactor *not* to call <handle_close>, which
- // would otherwise lead to infinite recursion!).
- ACE_Reactor::instance ()->remove_handler
- (ACE_STDIN, mask);
-
- // Deregister this handler with the ACE_Reactor.
- if (ACE_Reactor::instance ()->remove_handler
- (this, mask) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "handle = %d: %p\n",
- this->get_handle (),
- "remove_handler"),
- -1);
- // Close down the peer.
- this->peer ().close ();
- }
- return 0;
-}
-
-int
-Peer_Acceptor::open (u_short port)
-{
- // This object only gets allocated once and is just recycled
- // forever.
- ACE_NEW_RETURN (peer_handler_, Peer_Handler, -1);
-
- this->addr_.set (port);
-
- ACE_DEBUG ((LM_DEBUG,
- "opening acceptor at port %d\n",
- port));
-
- // Call down to the <Acceptor::open> method.
- if (this->inherited::open (this->addr_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
- else if (this->acceptor ().get_local_addr (this->addr_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "get_local_addr"),
- -1);
- else
- ACE_DEBUG ((LM_DEBUG,
- "accepting at port %d\n",
- this->addr_.get_port_number ()));
- return 0;
-}
-
-Peer_Acceptor::Peer_Acceptor (void)
- : peer_handler_ (0)
-{
-}
-
-int
-Peer_Acceptor::close (void)
-{
- // Will trigger a delete.
- if (this->peer_handler_ != 0)
- this->peer_handler_->destroy ();
-
- // Close down the base class.
- return this->inherited::close ();
-}
-
-// Note how this method just passes back the pre-allocated
-// <Peer_Handler> instead of having the <ACE_Acceptor> allocate a new
-// one each time!
-
-int
-Peer_Acceptor::make_svc_handler (Peer_Handler *&sh)
-{
- sh = this->peer_handler_;
- return 0;
-}
-
-int
-Peer_Connector::open_connector (Peer_Handler *&peer_handler,
- u_short port)
-{
- // This object only gets allocated once and is just recycled
- // forever.
- ACE_NEW_RETURN (peer_handler,
- Peer_Handler,
- -1);
-
- ACE_INET_Addr addr (port,
- Options::instance ()->connector_host ());
-
- ACE_DEBUG ((LM_DEBUG,
- "connecting to %s:%d\n",
- addr.get_host_name (),
- addr.get_port_number ()));
-
- if (this->connect (peer_handler, addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "connect"),
- -1);
- else
- ACE_DEBUG ((LM_DEBUG,
- "connected to %s:%d\n",
- addr.get_host_name (),
- addr.get_port_number ()));
- return 0;
-}
-
-int
-Peer_Connector::open (ACE_Reactor *, int)
-{
- this->supplier_peer_handler_ = 0;
- this->consumer_peer_handler_ = 0;
-
- if (Options::instance ()->enabled (Options::SUPPLIER_CONNECTOR)
- && this->open_connector (this->supplier_peer_handler_,
- Options::instance ()->supplier_connector_port ()) == -1)
- return -1;
-
- if (Options::instance ()->enabled (Options::CONSUMER_CONNECTOR)
- && this->open_connector (this->consumer_peer_handler_,
- Options::instance ()->consumer_connector_port ()) == -1)
- return -1;
-
- return 0;
-}
-
-int
-Peer_Factory::handle_signal (int signum, siginfo_t *, ucontext_t *)
-{
- if (signum != SIGPIPE)
- // Shut down the main event loop.
- ACE_Reactor::end_event_loop();
-
- return 0;
-}
-
-// Returns information on the currently active service.
-
-int
-Peer_Factory::info (char **strp, size_t length) const
-{
- char buf[BUFSIZ];
- char consumer_addr_str[BUFSIZ];
- char supplier_addr_str[BUFSIZ];
-
- ACE_INET_Addr addr;
-
- if (this->consumer_acceptor_.acceptor ().get_local_addr (addr) == -1)
- return -1;
- else if (addr.addr_to_string (consumer_addr_str,
- sizeof addr) == -1)
- return -1;
- else if (this->supplier_acceptor_.acceptor ().get_local_addr (addr) == -1)
- return -1;
- else if (addr.addr_to_string (supplier_addr_str,
- sizeof addr) == -1)
- return -1;
-
- ACE_OS::sprintf (buf,
- "%s\t C:%s|S:%s/%s %s",
- "peerd",
- consumer_addr_str,
- supplier_addr_str,
- "tcp",
- "# Gateway traffic generator and data sink\n");
-
- if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
- return -1;
- else
- ACE_OS::strncpy (*strp, buf, length);
- return ACE_OS::strlen (buf);
-}
-
-// Hook called by the explicit dynamic linking facility to terminate
-// the peer.
-
-int
-Peer_Factory::fini (void)
-{
- this->consumer_acceptor_.close ();
- this->supplier_acceptor_.close ();
- return 0;
-}
-
-// Hook called by the explicit dynamic linking facility to initialize
-// the peer.
-
-int
-Peer_Factory::init (int argc, char *argv[])
-{
- Options::instance ()->parse_args (argc, argv);
-
- ACE_Sig_Set sig_set;
-
- sig_set.sig_add (SIGINT);
- sig_set.sig_add (SIGQUIT);
- sig_set.sig_add (SIGPIPE);
-
- // Register ourselves to receive signals so we can shut down
- // gracefully.
-
- if (ACE_Reactor::instance ()->register_handler (sig_set,
- this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "register_handler"),
- -1);
-
- if (Options::instance ()->enabled (Options::SUPPLIER_ACCEPTOR)
- && this->consumer_acceptor_.open
- (Options::instance ()->supplier_acceptor_port ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "Acceptor::open"),
- -1);
- else if (Options::instance ()->enabled (Options::CONSUMER_ACCEPTOR)
- && this->supplier_acceptor_.open
- (Options::instance ()->consumer_acceptor_port ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "Acceptor::open"),
- -1);
- else if (this->connector_.open () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "Connector::open"),
- -1);
- return 0;
-}
-
-// The following is a "Factory" used by the <ACE_Service_Config> and
-// svc.conf file to dynamically initialize the <Peer_Acceptor> and
-// <Peer_Connector>.
-
-ACE_SVC_FACTORY_DEFINE (Peer_Factory)
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Acceptor<Peer_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Connector<Peer_Handler, ACE_SOCK_CONNECTOR>;
-template class ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *>;
-template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-template class ACE_Svc_Tuple<Peer_Handler>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Acceptor<Peer_Handler, ACE_SOCK_ACCEPTOR>
-#pragma instantiate ACE_Connector<Peer_Handler, ACE_SOCK_CONNECTOR>
-#pragma instantiate ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *>
-#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-#pragma instantiate ACE_Svc_Tuple<Peer_Handler>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/Gateway/Peer/Peer.dsp b/apps/Gateway/Peer/Peer.dsp
deleted file mode 100644
index f9af12c02f4..00000000000
--- a/apps/Gateway/Peer/Peer.dsp
+++ /dev/null
@@ -1,64 +0,0 @@
-# Microsoft Developer Studio Project File - Name="Peer" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=Peer - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "Peer.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Peer.mak" CFG="Peer - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Peer - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /I "..\Gateway" /D "_WINDOWS" /D "WIN32" /D "_DEBUG" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-# Begin Target
-
-# Name "Peer - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\Options.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Peer.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/apps/Gateway/Peer/Peer.dsw b/apps/Gateway/Peer/Peer.dsw
deleted file mode 100644
index d1dd3f1d06a..00000000000
--- a/apps/Gateway/Peer/Peer.dsw
+++ /dev/null
@@ -1,44 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "Peer"=.\Peer.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "peerd"=.\peerd.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name Peer
- End Project Dependency
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/apps/Gateway/Peer/Peer.h b/apps/Gateway/Peer/Peer.h
deleted file mode 100644
index 8a48de1c9a7..00000000000
--- a/apps/Gateway/Peer/Peer.h
+++ /dev/null
@@ -1,238 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Peer.h
-//
-// = DESCRIPTION
-// These classes process Supplier/Consumer events sent from the
-// gateway (gatewayd) to its various peers (peerd). The general
-// collaboration works as follows:
-//
-// 1. <Peer_Acceptor> creates a listener endpoint and waits
-// passively for gatewayd to connect with it.
-//
-// 2. When a gatewayd connects, <Peer_Acceptor> creates an
-// <Peer_Handler> object that sends/receives events from
-// gatewayd on that connection.
-//
-// 3. The <Peer_Handler> waits for gatewayd to inform it of its
-// connection ID, which is prepended to all subsequent outgoing
-// events sent from peerd.
-//
-// 4. Once the connection ID is set, peerd periodically sends events
-// to gatewayd. Peerd also receives and "processes" events
-// forwarded to it from gatewayd. In this program, peerd
-// "processes" the events sent to it by writing them to stdout.
-//
-// Note that in the current peerd implementation, one Peer process
-// cannot serve as both a Consumer and Supplier of Events. This is
-// because the gatewayd establishes a separate connection for
-// Suppliers and Consumers and the peerd only maintains a single
-// <Peer_Handler> object to handle this one connection. Enhancing
-// this implementation to be both a Consumer and Supplier
-// simultaneously is straightforward, however. In addition,
-// multiple peerd processes can already work together to play these
-// different roles.
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef PEER_H
-#define PEER_H
-
-#include "ace/Service_Config.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Acceptor.h"
-#include "ace/Connector.h"
-#include "ace/SOCK_Acceptor.h"
-#include "ace/SOCK_Connector.h"
-#include "Options.h"
-
-ACE_SVC_FACTORY_DECLARE (Peer_Factory)
-
-class ACE_Svc_Export Peer_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
- // = TITLE
- // Handle Peer events arriving from a Gateway.
-public:
- // = Initialization and termination methods.
- Peer_Handler (void);
- // Initialize the peer.
-
- ~Peer_Handler (void);
- // Shutdown the Peer.
-
- virtual int open (void * = 0);
- // Initialize the handler when called by
- // <ACE_Acceptor::handle_input>.
-
- virtual int handle_input (ACE_HANDLE);
- // Receive and process peer events.
-
- virtual int put (ACE_Message_Block *, ACE_Time_Value *tv = 0);
- // Send a event to a gateway (may be queued if necessary due to flow
- // control).
-
- virtual int handle_output (ACE_HANDLE);
- // Finish sending a event when flow control conditions abate.
-
- virtual int handle_timeout (const ACE_Time_Value &,
- const void *arg);
- // Periodically send events via <ACE_Reactor> timer mechanism.
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
- // Perform object termination.
-
-protected:
- typedef ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> inherited;
-
- int transmit (ACE_Message_Block *mb,
- size_t n,
- int event_type);
- // Transmit <mb> to the gatewayd.
-
- virtual int recv (ACE_Message_Block *&mb);
- // Receive an Peer event from gatewayd.
-
- virtual int send (ACE_Message_Block *mb);
- // Send an Peer event to gatewayd, using <nonblk_put>.
-
- virtual int nonblk_put (ACE_Message_Block *mb);
- // Perform a non-blocking <put>, which tries to send an event to the
- // gatewayd, but only if it isn't flow controlled.
-
- int subscribe (void);
- // Register Consumer subscriptions with the gateway.
-
- // = Event/state/action handlers.
- int transmit_stdin (void);
- // Receive a event from stdin and send it to the gateway.
-
- int await_connection_id (void);
- // Action that receives the route id.
-
- int await_events (void);
- // Action that receives events.
-
- int (Peer_Handler::*do_action_)(void);
- // Pointer-to-member-function for the current action to run in this
- // state. This points to one of the preceding 3 methods.
-
- CONNECTION_ID connection_id_;
- // Connection ID of the peer, which is obtained from the gatewayd.
-
- ACE_Message_Block *msg_frag_;
- // Keep track of event fragments that arrive in non-blocking recv's
- // from the gatewayd.
-
- size_t total_bytes_;
- // The total number of bytes sent/received to the gatewayd thus far.
-};
-
-class ACE_Svc_Export Peer_Acceptor : public ACE_Acceptor<Peer_Handler, ACE_SOCK_ACCEPTOR>
-{
- // = TITLE
- // Passively accept connections from gatewayd and dynamically
- // create a new <Peer_Handler> object to communicate with the
- // gatewayd.
-public:
- // = Initialization and termination methods.
- Peer_Acceptor (void);
- // Default initialization.
-
- int open (u_short);
- // the <Peer_Acceptor>.
-
- int close (void);
- // Terminate the <Peer_Acceptor>.
-
- virtual int make_svc_handler (Peer_Handler *&);
- // Factory method that creates a <Peer_Handler> just once.
-
-private:
- int open_acceptor (u_short port);
- // Factor out common code for initializing the <Peer_Acceptor>.
-
- Peer_Handler *peer_handler_;
- // Pointer to <Peer_Handler> allocated just once.
-
- ACE_INET_Addr addr_;
- // Our acceptor addr.
-
- typedef ACE_Acceptor<Peer_Handler, ACE_SOCK_ACCEPTOR> inherited;
-};
-
-class ACE_Svc_Export Peer_Connector : public ACE_Connector<Peer_Handler, ACE_SOCK_CONNECTOR>
-{
- // = TITLE
- // Actively establish connections with gatewayd and dynamically
- // create a new <Peer_Handler> object to communicate with the
- // gatewayd.
-public:
- // = Initialization method.
- int open (ACE_Reactor * = 0, int = 0);
- // Initialize the <Peer_Connector>. NOTE: the arguments are
- // ignored. They are only provided to avoid a compiler warning
- // about hiding the virtual function ACE_Connector<Peer_Handler,
- // ACE_SOCK_CONNECTOR>::open(ACE_Reactor*, int).
-
-private:
- int open_connector (Peer_Handler *&ph, u_short port);
- // Factor out common code for initializing the <Peer_Connector>.
-
- Peer_Handler *consumer_peer_handler_;
- // Consumer <Peer_Handler> that is connected to a gatewayd.
-
- Peer_Handler *supplier_peer_handler_;
- // Supplier <Peer_Handler> that is connected to a gatewayd.
-};
-
-class ACE_Svc_Export Peer_Factory : public ACE_Service_Object
-{
- // = TITLE
- // A factory class that actively and/or passively establishes
- // connections with the gatewayd.
-public:
- // = Dynamic initialization and termination hooks from <ACE_Service_Object>.
-
- virtual int init (int argc, char *argv[]);
- // Initialize the acceptor and connector.
-
- virtual int fini (void);
- // Perform termination activities.
-
- virtual int info (char **, size_t) const;
- // Return info about this service.
-
- virtual int handle_signal (int signum, siginfo_t *, ucontext_t *);
- // Handle various signals (e.g., SIGPIPE, SIGINT, and SIGQUIT).
-
-private:
- Peer_Acceptor consumer_acceptor_;
- // Pointer to an instance of our <Peer_Acceptor> that's used to
- // accept connections and create Consumers.
-
- Peer_Acceptor supplier_acceptor_;
- // Pointer to an instance of our <Peer_Acceptor> that's used to
- // accept connections and create Suppliers.
-
- Peer_Connector connector_;
- // An instance of our <Peer_Connector>. Note that one
- // <Peer_Connector> is used to establish <Peer_Handler>s for both
- // Consumers and Suppliers.
-};
-
-#endif /* PEER_H */
diff --git a/apps/Gateway/Peer/Peer_Message.h b/apps/Gateway/Peer/Peer_Message.h
deleted file mode 100644
index 67f57f148cb..00000000000
--- a/apps/Gateway/Peer/Peer_Message.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Define the Peer message schema (this may change).
-
-#if !defined (PEER_MESSAGE)
-#define PEER_MESSAGE
-
-// Fixed sized header.
-
-class Peer_Header
-{
-public:
-// Type used to route messages from gatewayd.
- typedef short ROUTING_ID;
-
- enum
- {
- INVALID_ID = -1 // No peer may use this number.
- };
-
- // Source ID.
- ROUTING_ID routing_id_;
-
- // Length of the message in bytes.
- size_t len_;
-};
-
-// Variable-sized message (buf_ may be variable-sized between
-// 0 and MAX_PAYLOAD_SIZE).
-
-class Peer_Message
-{
-public:
- // The maximum size of an Peer message (see Peer protocol specs for exact #).
- enum { MAX_PAYLOAD_SIZE = 1024 };
-
- Peer_Header header_;
-
- // Message payload
- char buf_[MAX_PAYLOAD_SIZE];
-};
-
-#endif /* PEER_MESSAGE */
diff --git a/apps/Gateway/Peer/peerd.cpp b/apps/Gateway/Peer/peerd.cpp
deleted file mode 100644
index 94df916851e..00000000000
--- a/apps/Gateway/Peer/peerd.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// peerd.h
-//
-// = DESCRIPTION
-// Driver for the peer daemon (peerd). Note that this is
-// completely generic code due to the Service Configurator
-// framework!
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#include "Peer.h"
-
-ACE_RCSID(Peer, peerd, "$Id$")
-
-int
-main (int argc, char *argv[])
-{
- if (ACE_OS::access (ACE_DEFAULT_SVC_CONF, F_OK) != 0)
- {
- // Use static linking.
- ACE_Service_Object_Ptr sp = ACE_SVC_INVOKE (Peer_Factory);
-
- if (sp->init (argc - 1, argv + 1) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "init"),
- 1);
-
- // Run forever, performing the configured services until we are
- // shut down by a SIGINT/SIGQUIT signal.
-
- ACE_Reactor::run_event_loop ();
-
- // Destructor of <ACE_Service_Object_Ptr> automagically call
- // <fini>.
- }
- else
- {
- if (ACE_Service_Config::open (argc, argv) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- 1);
- else // Use dynamic linking.
-
- // Run forever, performing the configured services until we
- // are shut down by a signal (e.g., SIGINT or SIGQUIT).
-
- ACE_Reactor::run_event_loop ();
- }
- return 0;
-}
diff --git a/apps/Gateway/Peer/peerd.dsp b/apps/Gateway/Peer/peerd.dsp
deleted file mode 100644
index 17ff6afccb0..00000000000
--- a/apps/Gateway/Peer/peerd.dsp
+++ /dev/null
@@ -1,57 +0,0 @@
-# Microsoft Developer Studio Project File - Name="peerd" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=peerd - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "peerd.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "peerd.mak" CFG="peerd - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "peerd - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /D "_DEBUG" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 Peer.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-# Begin Target
-
-# Name "peerd - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\peerd.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/apps/Gateway/Peer/svc.conf b/apps/Gateway/Peer/svc.conf
deleted file mode 100644
index c27eb06cec8..00000000000
--- a/apps/Gateway/Peer/svc.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-#static Svc_Manager "-d -p 291"
-dynamic Peer1 Service_Object * ./Peer:_make_Peer_Factory() active "-a C|S"
diff --git a/apps/Gateway/README b/apps/Gateway/README
deleted file mode 100644
index 2fe4e79c372..00000000000
--- a/apps/Gateway/README
+++ /dev/null
@@ -1,140 +0,0 @@
-OVERVIEW
-
-This directory contains source code for an application-level
-Communication Gateway implemented with ACE. This prototype was
-developed in my cs422 OS class at Washington University in 1994. The
-Gateway has recently been updated to illustrate the use of Event
-Channels, which forward events from Suppliers to Consumers in a
-distributed system.
-
-You can get a paper that explains the patterns used in this
-implementation at the following WWW URL:
-
-http://www.cs.wustl.edu/~schmidt/TAPOS-95.ps.gz
-
-----------------------------------------
-
-DIRECTORY STRUCTURE
-
-There are 2 directories:
-
-1. Gateway
-
- This directory contains the source code for the
- application-level Gateway process, gatewayd. The gatewayd
- routes event messages between Peers. By default, the gatewayd
- plays the Connector role and initializes itself by reading the
- connection_config and consumer_config files:
-
- 1. The connection_config file establishes the "physical
- configuration" of the Consumer and Supplier proxies. This
- file tells the Gateway what connections to establish with
- particular hosts using particular ports.
-
- 2. The consumer_config file establishes the "logical
- configuration." This file tells the Gateway how to forward
- data coming from Suppliers to the appropriate Consumers.
-
- The application Gateway generally should be started after all
- the Peers described below, though the process should work
- correctly even if it starts first.
-
-2. Peer
-
- This directory contains the source code for the Peer process,
- peerd. There are typically many Peers, which act as suppliers
- and consumers of event messages that are routed through the
- gatewayd.
-
- To do anything interesting you'll need at least two Peers: one
- to supply events and one to consume events. In the
- configuration files, these two types of Peers are designated
- as follows:
-
- 1. Supplier Peers (designated by an 'S' in the Gateway's
- connection_config configuration file). These Peers are
- "suppliers" of events to the Gateway.
-
- 2. Consumer Peers (designated by an 'C' in the Gateway's
- connection_config file). These Peers are "consumers" of
- events forwarded by the Gateway. Forwarding is based on
- the settings in the consumer_config configuration file.
-
-----------------------------------------
-
-HOW TO RUN THE TESTS
-
-To run the tests do the following:
-
-1. Compile everything (i.e., first compile the ACE libraries, then
- compile the Gateway and Peer directories).
-
-2. Edit the consumer_config and connection_config files as discussed
- above to indicate the desired physical and logical mappings
- for Consumers and Suppliers.
-
-3. Start up the Peers (peerd). You can start up as many as you
- like, as per the connection_config file, but you'll need at least two
- (i.e., one Supplier and Consumer). I typically start up each Peer
- in a different window on a different machine, but you can run them
- on the same machine as long as you pick different port numbers.
- The Peers will print out some diagnostic info and then block
- awaiting connections from the Gateway.
-
- If you want to set the port numbers of the Peers from
- the command-line do the following:
-
- a. Change the svc.conf file in the ./Peer/ directory to
- another name (e.g., foo.conf). This will keep the
- program from starting up with the svc.conf file
- (which dynamically links in the Peers and uses the -a option to
- set the port).
-
- b. Then run the peers in different windows as
-
- # Window 1 (Supplier)
- % peerd -a S:10011
-
- # Window 2 (Consumer)
- % peerd -a C:10012
-
- etc. Naturally, you can also edit the svc.conf file, but that
- may be more of a pain if you've got a network filesystem and
- all your hosts share the same svc.conf file.
-
-4. Start up the Gateway (gatewayd). This will print out a bunch of
- messages as it reads the config files and connects to all the Peers.
- By default, the Gateway is purely reactive, i.e., it handles
- Consumers and Suppliers in the same thread of control. However,
- if you give the '-t OUTPUT_MT' option the Gateway will handle all
- Consumers in separate threads. If you give the '-t INPUT_MT' option
- the Gateway will handle all Suppliers in separate threads. If you
- give the '-t INPUT_MT|OUTPUT_MT' option both Consumers and Suppliers
- will be handled in the separate threads.
-
- Assuming everything works, then all the Peers will be connected.
- If some of the Peers aren't set up correctly, or if they aren't
- started first, then the Gateway will use an exponential backoff
- algorithm to attempt to reestablish those connections.
-
-5. Once the Gateway has connected with all the Peers you can send
- events from Supplier Peers by typing commands in the Peer window.
- This Supplier will be sent to the Gateway, which will forward the
- event to all Consumer Peers that have "subscribed" to receive these
- events.
-
- Note that if you type ^C in a Peer window the Peer will shutdown
- its handlers and exit. The Gateway will detect this and will start
- trying to reestablish the connection using the same exponential
- backoff algorithm it used for the initial connection establishment.
-
-7. When you want to terminate a Gateway, just type ^C or type any
- characters in the ./gatewayd window and the process will shut down
- gracefully.
-
-Please let me know if there are any problems, questions, or
-suggestions for improvement.
-
- Doug
-
- schmidt@cs.wustl.edu
diff --git a/apps/JAWS/ChangeLog b/apps/JAWS/ChangeLog
deleted file mode 100644
index 435ee635e1f..00000000000
--- a/apps/JAWS/ChangeLog
+++ /dev/null
@@ -1,732 +0,0 @@
-Tue Jun 22 13:42:51 1999 David L. Levine <levine@cs.wustl.edu>
-
- * remora/app/Makefile: replaced rm -f with $(RM).
-
-Tue Mar 16 01:08:05 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * server/Makefile:
- * server/jaws.dsp: Updated makefiles to build shared library.
-
- * server/svc.conf: Added example settings for using HTTP_Server as
- a dynamic service.
-
- * server/HTTP_Server.{h,cpp}: Added macros to build dynamic
- HTTP_Server service.
-
- * server/main.cpp (main): Since we use static service in JAWS, we
- must open the service configure without ignoring the static
- svcs. Thanks to Bill Rizzi <rizzi@softserv.com> for pointing
- this out.
-
-Mon Feb 01 17:04:39 1999 David L. Levine <levine@cs.wustl.edu>
-
- * clients/WebSTONE/conf/paths.{pl,sh}.old:
- removed these apparently useless files.
-
-Sat Jan 02 08:44:48 1999 David L. Levine <levine@cs.wustl.edu>
-
- * server/HTTP_Request.cpp,Parse_Headers.cpp: initialized
- third param to strtok_r with 0. DU 4.0 cxx was complaining
- about it, with ACE_NDEBUG. According to the strtok_r
- man page on DU 4.0, it must be initialized to 0 on the
- first call to strtok_r.
-
-Fri Sep 25 23:29:14 1998 David L. Levine <levine@cs.wustl.edu>
-
- * server/IO.cpp (receive_file,transmit_file): changed
- NOMAP to ACE_NOMAP. Thanks to Dann Corbit
- <DCorbit@SolutionsIQ.com> for reporting this.
-
-Thu Sep 17 18:53:05 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * server/IO.cpp:
- * PROTOTYPE/JAWS/IO.cpp:
- Revert back to iovec. Also added some missing casts.
-
-Wed Sep 16 22:53:06 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * server/IO.cpp:
- * PROTOTYPE/JAWS/IO.cpp:
- Use ACE_IO_Vector instead of iovec, because it is more
- protable.
-
-Tue Aug 25 10:18:16 1998 David L. Levine <levine@cs.wustl.edu>
-
- * clients/Caching/URL_Properties.cpp: removed explicit
- ACE_Auto_Basic_Array_Ptr <char> instantiation because it's
- now in libACE. This file doesn't compile with g++/Solaris,
- but the Makefile doesn't build it anyways.
-
-Fri Jul 31 18:31:32 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * PROTOTYPE/HTTP_10.cpp
- * PROTOTYPE/HTTP_10_Parse.cpp
- * PROTOTYPE/HTTP_10_Read.cpp
- * PROTOTYPE/HTTP_10_Request.cpp
- * PROTOTYPE/HTTP_10_Write.cpp
- * PROTOTYPE/HTTP_Policy.cpp
- * PROTOTYPE/main.cpp
- * PROTOTYPE/JAWS/Assoc_Array.cpp
- * PROTOTYPE/JAWS/Concurrency.cpp
- * PROTOTYPE/JAWS/Data_Block.cpp
- * PROTOTYPE/JAWS/IO.cpp
- * PROTOTYPE/JAWS/IO_Acceptor.cpp
- * PROTOTYPE/JAWS/IO_Handler.cpp
- * PROTOTYPE/JAWS/Pipeline.cpp
- * PROTOTYPE/JAWS/Pipeline_Handler.cpp
- * PROTOTYPE/JAWS/Pipeline_Tasks.cpp
- * PROTOTYPE/JAWS/Policy.cpp
- * PROTOTYPE/JAWS/Reaper.cpp
- * PROTOTYPE/JAWS/Server.cpp
- * PROTOTYPE/JAWS/Waiter.cpp
- * clients/Blobby/Blob.cpp
- * clients/Blobby/Blob_Handler.cpp
- * clients/Blobby/Options.cpp
- * clients/Blobby/blobby.cpp
- * clients/Caching/ID_Generator.cpp
- * clients/Caching/Local_Locator.cpp
- * clients/Caching/Locator_Request_Reply.cpp
- * clients/Caching/URL_Array_Helper.cpp
- * clients/Caching/URL_Locator.cpp
- * clients/Caching/URL_Properties.cpp
- * clients/Caching/http_client.cpp
- * clients/Caching/http_handler.cpp
- * clients/Caching/test_URL.cpp
- * server/HTTP_Config.cpp
- * server/HTTP_Handler.cpp
- * server/HTTP_Helpers.cpp
- * server/HTTP_Request.cpp
- * server/HTTP_Response.cpp
- * server/HTTP_Server.cpp
- * server/IO.cpp
- * server/JAWS_Concurrency.cpp
- * server/JAWS_Pipeline.cpp
- * server/JAWS_Pipeline_Handler.cpp
- * server/Parse_Headers.cpp
- * server/main.cpp
- * stress_testing/benchd.cpp
- * stress_testing/connection.cpp
- * stress_testing/cp.cpp
- * stress_testing/http_tester.cpp
- * stress_testing/stats.cpp
- * stress_testing/util.cpp
- Added ACE_RCSID to these files.
-
-Thu Feb 19 22:14:09 1998 Alexander Babu Arulanthu <alex@merengue.cs.wustl.edu>
-
- * server/JAWS_Concurrency.cpp (put): Modified line number 11 to
- get away with a compilation error.
-
-Wed Feb 18 12:31:28 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * server/JAWS_Pipeline.cpp:
- Removed extra definitions for default arguments.
-
-Sun Feb 15 08:05:28 1998 David L. Levine <levine@cs.wustl.edu>
-
- * server/JAWS_Pipeline.h: added missing ; at end of constructor
- declaration.
-
-Wed Jan 7 17:26:43 1998 James C Hu <jxh@cs.wustl.edu>
-
- * server/Pipeline.cpp: Put base class initialization of
- JAWS_Protocol_Filter ahead of data members.
-
-Fri Jan 2 16:28:00 1998 Nanbor Wang <nw1@cs.wustl.edu>
-
- * clients/Caching/http_handler.cpp:
- * clients/Blobby/Blob.cpp: Added missing explicit template
- instantiations.
-
-Mon Dec 29 20:20:36 1997 James C Hu <jxh@cs.wustl.edu>
-
- * clients/Caching/http_handler.cpp: Idem to previous change.
-
-Mon Dec 29 18:50:02 1997 James C Hu <jxh@cs.wustl.edu>
-
- * server/IO.cpp: Idem to previous change, but fixes to improve
- compatibility and portability to Windows NT.
-
-Thu Dec 18 15:37:36 1997 James C Hu <jxh@cs.wustl.edu>
-
- * server/IO.cpp: Modified to account for changes in ACE_Filecache
- to not map file on NT.
-
-Tue Dec 16 09:29:11 1997 David L. Levine <levine@cs.wustl.edu>
-
- * server/Makefile: expanded rules.bin.GNU, but without
- $(VOBJS), to avoid make warnings.
-
- * client/WebSTONE/src/nsapi-includes/base/systems.h:
- #ifdef linux, not LINUX.
-
-Fri Dec 12 03:06:16 1997 James C Hu <jxh@cs.wustl.edu>
-
- * server/Parse_Headers.cpp: Many things have been touched, but
- only a few things have significantly changed. I originally
- attempted to change the implementation entirely to use
- Hash_Map_Manager instead, but it was getting more complicated
- than I wanted, so I went back to debugging.
-
- - Trailing whitespace has been removed.
- - A couple of debug messages have been added the
- Headers::parse_header_line ().
- - Method declarations had to be changed to account for the
- fact that the Map_Item class (which had previously
- been declared inside of Headers_Map) is now in global
- scope and has been renamed to Headers_Map_Item.
- - The no_value_ data member and the char* cast operator of
- Map_Item have been removed.
- - The assignment operator for Map_Item has been made a bit
- tidier in its memory management (say no to memory
- leaks!).
- - Debugged the Headers_Map data structure. This involved
- the following:
- . Re-implementation of strcasecmp (red-herring).
- . Re-implementation of Headers::compare (). This is
- needed because empty table entries need to compare as
- infinity against real strings, so that real strings get
- inserted correctly.
- . Debugging the Headers_Map::find () method by
- implementing first a linear search, and then my own binary
- search. It turns out the C library ::bsearch() does work,
- but I will leave in my implementation for now, since
- ::bsearch () is not in ACE_OS yet.
- . Re-implementation of Headers::place (). The old one
- was badly written. The new one is more efficient, and
- less error prone. This method turned out to be the main
- problem. It was the reason that binary search was
- previously failing (but linear search worked). The
- reason? It was corrupting memory, believe it or not.
- No longer!
-
- In addition, Headers::place () had a serious bug in which a call
- to ACE_OS::free () was added, but included the ++ operator on
- the pointer from the previous line. Ug.
-
- * server/Parse_Headers.h: See comments for HTTP_Request.cpp.
-
- * server/HTTP_Request.cpp: Removed extraneous whitespace. It's
- not what you think Doug! Just trailing whitespace at the end of
- lines that somehow get added on when people use LoseNT editors.
- Also, changes were made to Parse_Headers which made it necessary
- to explicitly use the value () accessor method when examining
- parsed headers. There use to be a operator char* () method.
-
- * server/HTTP_Response.cpp: See comments for HTTP_Request.cpp.
-
- * server/HTTP_Helpers.cpp: Added a comment to
- HTTP_Helper::fixyear ().
-
-Tue Dec 9 01:19:09 1997 James C Hu <jxh@cs.wustl.edu>
-
- * stress_testing/util.cpp: Off by one errors when parsing a URL.
- Did I write this code? I don't think so. Thanks to Valik
- Solorzano Barboza <valik@geodan.nl> for pointing this out.
-
-Thu Nov 20 00:36:34 1997 James C Hu <jxh@cs.wustl.edu>
-
- * server/Pipeline.h: Added methods and members so that the
- pipeline can be both push and pull driven.
-
- * server/Pipeline.cpp: Made the pipeline a doubly linked list of
- components, so that it can be operated as push-driven or
- pull-driven pipelines.
-
-Wed Nov 19 05:10:38 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * server/HTTP_Handler.h: Added the keyword "virtual" on the open()
- method which is inherited from ACE_Sevice_Handler. Perhaps this
- will fix a bug with BORLANDC reported by Valik Solorzano Barboza
- <valik@xs4all.nl>.
-
-Mon Nov 17 07:34:09 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * server/Parse_Headers.cpp (end_of_line): Replaced a const char *
- with a char * to work with the new ACE_OS::strchr() signature.
- Thanks to James for finding this.
-
-Tue Nov 11 19:52:38 1997 James C Hu <jxh@cs.wustl.edu>
-
- * server/Pipeline.{h,cpp}: The beginning of a new Pipeline
- framework has been added.
-
-Sun Oct 12 16:21:32 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * clients/Caching/Makefile:
- * stress_testing/Makefile:
- There is no need to set LDLIBS to add local object files
- anymore, using FILES is enough.
-
-Fri Oct 10 18:41:47 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * clients/Blobby/Makefile:
- Fixed problem that made compilation fail.
-
-Thu Sep 11 10:40:38 1997 Carlos O'Ryan <coryan@polka.cs.wustl.edu>
-
- * server/HTTP_Request.cpp:
- I checked the use of MAXNAMELEN vs. MAXPATHLEN; all buffers
- intended to keep full filenames should have at least
- MAXPATHLEN+1 chars.
- Only buffers that will keep basenames (without any directories)
- should have MAXNAMELEN+1 bytes.
- I also added a new macro ACE_MAX_FULLY_QUALIFIED_NAME_LEN which
- is the maximum number of characters for a fully qualified
- internet hostname.
- There remain one obscure usage of these macros in ace/Malloc.h
- and Local_Naming_Space_T.{h,cpp}, but a quick fix broke
- something, I will try again soon.
-
-Tue Sep 9 22:08:36 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * server/HTTP_Server.{cpp,h}: Changes which answer questions
- brought up in design review. Mostly additional comments. Also
- changes to have a task spawn a number of threads rather than
- iterating through calls to the activate method.
-
-Fri Aug 29 11:07:43 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * server/*.{cpp,h}: Changes to make JAWS comply with ACE
- coding standards. In particular, broke up CGI method in
- HTTP_Request, remove dependency on static object in
- HTTP_Config, and answered all questions from Doug.
-
-Tue Aug 26 21:34:11 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * clients/Caching/ID_Generator.h: Made some minor changes to
- the programming style.
-
-Sun Aug 10 13:44:14 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * server/HTTP_Helpers.cpp (HTTP_date): We can't use
- ACE_Thread_Mutex directly in the code since that breaks
- platforms that lack threads.
-
-Wed Aug 6 16:45:48 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * server/main.cpp: Added another signal handler so I can kill JAWS
- when purifying.
-
-Mon Aug 4 00:07:24 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * server/main.cpp (main): Service configurator now doesn't return
- -1 when errors occur. Therefore, we check for not success
- instread of fail when opening the service contifurator.
-
-Mon Jul 28 04:54:01 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * server/Parse_Headers.cpp (place): Reformatted the same
- stuff again...
-
-Mon Jul 28 01:48:40 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * server/README: Updated the README file to reflect new features
- and server flags.
-
- * server/Parse_Headers.cpp (place): Fixed a compile error found by
- David Levine. I don't know why this was compiling for me.
-
-Sun Jul 27 21:56:12 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * server/Parse_Headers.cpp (place): Reformatted a few things
- to make them easier to read.
-
-Fri Jul 25 02:05:20 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * server/HTTP_Server.cpp: Changes to allow the thread creation
- flags to be specified from the command line. Removed some code
- that was used to track down memory leaks.
-
- * server/HTTP_Helpers.{h,cpp}: Added another method
- HTTP_date (char *), so that a buffer to which the date will be
- written to can be passed into the HTTP_date routine.
-
- * server/HTTP_Response.cpp: Changed some code so that the baseline
- implementation can be created at compile time.
-
- * server/IO.cpp: Changed some code so that the baseline
- implementation can be created at compile time.
-
- * server/main.cpp: Changed the signal handler to wait for threads
- to die. However, this code will remain dormant for now, until
- we design a nice way to shut down a thread pool.
-
- * server/svc.conf: Changes to add some other entries people can
- try.
-
- * server/Makefile: Changes to allow JAWS to be built with static
- linking only, to ease the process of using Purify and Quantify.
- Dynamic linking will be re-configured in the future when we have
- all the memory leaks worked out.
-
-Mon Jul 22 16:55:00 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * Changed references to WRAPPER_ROOT to ACE_ROOT in every
- place except ChangeLog entries.
-
-Mon Jul 21 15:09:03 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * server/HTTP_Server.{h,cpp}: Got rid of Solaris specific
- debugging code (thr_create, thr_join).
-
-Fri Jul 11 02:15:12 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * server/HTTP_Response.cpp: Changes so that the HEADER is not
- rebuilt all the time.
-
- * server/IO.cpp (JAWS_Synch_IO::transmit_file): Changed to use
- writev () instead of multiple send ()s.
-
-Thu Jul 10 01:53:48 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * server/HTTP_Helpers.{h,cpp}: Changed so that creating the date
- header is less expensive.
-
- * server/HTTP_Response.cpp: Changes to match above.
-
- * clients/Caching/README: Added to the repository.
-
- * clients/Caching/http_handler.{h,cpp}: Added some comments to the
- code. Also, moved the code to check to see if the file is in
- cache already into the connector, so that a connect is not
- done if the file is cached. This required a filename ()
- accessor method to be added to the handler.
-
-Wed Jul 9 13:08:00 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * clients/Caching/http_handler.cpp (svc): Added code to check to
- see if the file is already cached before trying to cache it.
-
- * clients/Caching/http_client.cpp (main): Added a comment block at
- the top of the file.
-
- * server/HTTP_Handler.cpp and IO.cpp: Changes that were needed
- since JAWS_File is now integrated into ACE (as ACE_Filecache).
-
- * server/HTTP_Server.*: Attempting to track down memory leak.
- This code may be in a state a flux for the next week or so.
-
-Mon Jul 7 23:40:13 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * clients/WebSTONE/src/webclient.c: Removed a bunch of THREAD
- storage class decorators from function makeload() because auto
- variables can't be declared as TSS. Also #ifdef random number
- generation code so it uses rand_r on Solaris() and rand() on NT.
-
- * clients/WebSTONE/src/rexec.c: Modified prototypes for
- PassOutputThread() and PassErrorThread() to avoid warnings from
- MSVC. Still need more refinement on this one. ;(
-
- * clients/WebSTONE/src/webmaster.c: Added prototype for
- HostEntCpy() and a null statement to avoid warning from MSVC.
-
- * clients/WebSTONE/src/gendata/genrand.mak:
- * clients/WebSTONE/src/master/webmaster.mak:
- * clients/WebSTONE/src/client/webclient.mak: Updated file paths
- and dependencies.
-
-Sat Jul 5 14:19:20 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * Renamed the client directory "clients" to reflect the fact that
- we've got multiple client tests now. Also, moved the original
- contents of the client directory into a new clients/Blobby
- directory and added Caching and WebSTONE.
-
- * Moved the ChangeLog from the ./server directory into the ./JAWS
- directory since we want to apply ChangeLog entries to all
- aspects of JAWS, not just the server.
-
- * HTTP_Server.cpp (open): Added THR_DETACHED as a flag to
- activate(). This should prevent a memory leak that was
- occurring since no thread was ever "joining" the threads that
- were spawned.
-
-Thu Jul 3 23:33:47 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * HTTP_Response.cpp (~HTTP_Response): changed delete to delete [],
- removing a major memory leak from JAWS. Still to find is a
- memory lead associated with thread per request. Nanbor's fix is
- about what I did to EMPTY_HEADER too.
-
- * JAWS_File.cpp: David points out I need to add specializations
- for the GNU C++ compiler.
-
-Thu Jul 3 22:38:04 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * HTTP_Response.cpp (build_headers): Added explicit cast for
- EMPTY_HEADER from (const char *) to (char *) in order to make
- MSVC happy. This is probably very badly styled. But
- HTTP_HEADER is only used in places that require (const char *),
- so I think it's safe to do so.
-
-Thu Jul 3 15:34:30 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * HTTP_Response.cpp (HTTP_Response): Moved a call to delete out of
- constructor into the destructor where it belongs.
-
-Thu Jul 3 12:28:44 1997 Sumedh Mungee <sumedh@lindy.cs.wustl.edu>
-
- * Parse_Headers.cpp: Line 137, Changed pt to ptr (it was a typo)
-
-Wed Jul 2 22:33:52 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * JAWS_File.{h,cpp}: Fixed deadlock bug, since RW_MUTEX's are not
- recursive (drat!).
-
-Wed Jul 2 21:03:12 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * Made a major pass through all the code and made the style
- consistent with that found in ACE.
-
-Wed Jul 2 14:33:27 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * JAWS_File.cpp: Added double check locking pattern to the fetch
- routine of the virtual filesystem. This slows things down
- considerably for files which change frequently and for cache
- misses in general, but it should be correct.
-
-Wed Jul 2 14:59:29 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * HTTP_Helpers.cpp (HTTP_decode_string): Added cast from strtol to
- char explicitly to prevent NT from complaining.
-
-Wed Jul 2 14:33:27 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * JAWS_File.{h.cpp}: Modifications to support RW_MUTEX for both
- the virtual filesystem and the low level ACE_File. Next major
- change will be to re-implement the virtual filesystem to use a
- hash table ala ACE_Hash_Map_Manager.
-
-Wed Jul 2 00:23:22 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * HTTP_Server.{h,cpp}: Changed parsing of options to use
- mnemonic names rather than numbers. Added a new thread
- strategy, THROTTLE. This is thread-per-request until some
- maximum number. Unfortunately, it does not become thread-pool
- at this point... yet :-). Added a new option to pass in a
- backlog value.
-
- * svc.conf: adjusted to account for the changed options.
-
- * README: changed to explain new svc.conf options.
-
- * JAWS_File.cpp: Changed it so that when the file is added to the
- cache, it is also acquired. When it is removed from the cache,
- it is released. This is so that the reference count is at least
- one while the file is in the cache. Also, fixed the virtual
- filesystem by giving it a simple replacement strategy if the
- table is full. For now, it will replace the largest file in the
- cache with the request for the current file.
-
-Tue Jul 1 19:13:44 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * JAWS_File.cpp (JAWS_File): Changes the creation method of a
- cached copy from using plain file copy to using mmap and memcpy.
- This avoid the extra complexity caused by FILE_FLAG_OVERLAPPED.
-
-Sat Jun 28 11:55:38 1997 James C Hu <jxh@tango.cs.wustl.edu>
-
- * HTTP_Handler.cpp (open): fixed a typo
-
- * HTTP_Handler.cpp (cgi): fixed a bug, strdup fails on NULL
-
-Sat Jun 28 16:14:38 1997 Sumedh Mungee <sumedh@cumbia.cs.wustl.edu>
-
- * HTTP_Handler.cpp (open): Changed socket send-buffer to 64k
-
-Wed Jun 25 01:11:50 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
-
- * JAWS_File.cpp: Removed initialization of vfs_ (see below) and
- changed all references of vfs_ to
- JAWS_Virtual_Filesystem::instance (). Thanks to Detlef Becker
- <detlef.becker@med.siemens.de> for pointing this out.
- (init): Added initialization of reference_count_ to 0.
-
- * JAWS_File.h: Removed private member JAWS_Virtual_Filesystem vfs_
- since JAWS_Virtual_Filesystem is a singleton already. Caching
- it doesn't seem to win much and depends on the order of static
- variables initialization, which is non-portable.
-
-Fri Jun 13 02:42:39 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
-
- * jaws.{mdp,mak}: Updated to incoporate latest changes.
-
-Thu Jun 5 14:13:22 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * HTTP_Server.cpp: Added more informative comments to the
- asynch_thread_pool() method due to comments posed by Mehul
- (MehulM@spa-marketing.com).
-
-Wed Jun 4 23:00:47 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * JAWS_File.cpp (JAWS_File): Fixed a bug where JAWS_File wanted
- the file to have write permissions before openning it. This is
- now only true if the file is to be written to.
-
-Wed Jun 4 22:30:41 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
-
- * main.cpp (main): Changed SIGCLD to SIGCHLD for better
- portability.
-
- * IO.cpp (transmit_file): The third argument passed
- ACE_Asynch_Transmit_File::Header_And_Trailer() should be an
- address (&).
-
-Mon Jun 2 16:35:18 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * HTTP_Helpers.cpp: Serious bug in base64 decoder routine
- squashed. Didn't initialize an array with 0's. The original
- source had them declared static. Also, changed sizeof alphabet_
- to strlen (alphabet_), because original code had alphabet_ as an
- array, but my translation has alphabet_ as a pointer.
-
- * HTTP_Response.cpp: Added some code to check to see if the
- decoder returns 0. If it does, flag this as a failed
- authorization attempt.
-
- * HTTP_Handler.cpp: Added a "\r\n" to the confirmation message in
- receive_file_complete () method.
-
- * HTTP_Request.cpp: In parse_request_line (), created conditional
- expressions in the debugging print statement so that a null
- string will not cause the server to crash.
-
- * HTTP_Response.cpp:
- (1) cgi_resposnse () no longer has to wait for the process to
- die. The fix to ACE_Process of closing down child handles was
- enough to get the connection to die on its own.
- (2) Mike (mrm@cisco.com) pointed out that the output for CGI
- responses was not create. The fix was to output a small header
- before execing the CGI program.
-
- * test.cgi: a sample cgi program to use when testing the JAWS
- server.
-
-Sat May 31 13:34:14 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * *.h, *.cpp: Changed include lines from "apps/JAWS/server/..." to
- "..." to avoid dependencies on the WRAPPER_ROOT tree.
-
- * jaws.auth: This file is added to be a sample authorization
- file. This is the file which JAWS is currently hardcoded to use
- to verify authenticated PUT requests.
-
- * HTTP_Response.cpp: Added code to normal_response () and to
- error_response () to better handle authentication. Now, all PUT
- methods are required to be authenticated. The strategy now is
- very simple, there is only one authorization file and only one
- realm of authorization. This will be easy to bring up to spec
- later, though.
-
- * HTTP_Helpers.h: Added alphabet_ data member for the
- decode/encode base64 methods.
-
- * HTTP_Helpers.cpp: Added HTTP_decode_base64 and
- HTTP_encode_base64 methods. HTTP_encode_base64 is currently not
- used, but HTTP_decode_base64 is being used for Basic
- authentication.
-
- * *.h, *.cpp: Changed include lines from "JAWS/server/..." to
- "apps/JAWS/server/..." to fix an error reported by Rob Payne
- <repayne@jeeves.net>. This was really due to a bug in the
- platform_macros.GNU file not adding INCLDIRS to the CCFLAGS
- during compilation, but in the case other platforms have the
- same problem, changing the source is a better fix.
-
-Fri May 30 23:19:03 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * README: updated to better reflect the status of JAWS.
-
- * main.cpp (handler): Added a signal handler for SIGINT, and also
- set SIG_IGN for SIGCLD. The first handler calls exit (0) if
- SIGINT is received, so that static destructors are called. The
- second is so that zombies are not formed.
-
- * HTTP_Response.cpp (cgi_response): Debugging. (1) The CGI
- program spewed output on the server side instead of the client.
- (2) The CGI program had environment variable being set even
- though there was no associated value. (3) The client connection
- was not being closed after the CGI program executed. Problem
- (1) was fixed by using set_handles () in cgi_options. Problem
- (2) was fixed by testing to see if the header had an associated
- value before assigning it to the environment. Problem (3) was
- fixed by sending an empty confirmation message after waiting for
- the CGI process to exit.
-
- * HTTP_Request.cpp (cgi): Debugging. It was not looking for a
- ".cgi" extension during the stage of determining if a URI is a
- CGI script. This will later be fixed when a full mime-type
- facility is implemented.
-
-Fri May 23 00:45:24 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * JAWS/server: Debugged HTTP/0.9 GET requests, and HTTP/1.0 PUT
- requests. Both work now, with minor problems: e.g. the
- Content-type header doesn't really work (always sends text/html
- as the content type). What it should do is see if the request
- included a content type header, and use it, otherwise, resort to
- some file suffix and mimetype matching algorithm.
-
- * Parse_Headers.h (complete_header_line): Added comments
- explaining the new return values of -1, 0 and 1 (see comments
- for Parse_Headers.cpp below).
-
- * Parse_Headers.cpp (complete_header_line): modified so that it
- returns three values instead of two. -1 means that an end of
- line was encountered, but nothing after it yet to verify if it
- is really a complete header line. 0 means the read cut off in
- the middle of a line (no end of line character found). 1 means
- the line is verified to be a complete header line.
-
- * HTTP_Request.cpp (parse_request): Changed the test so that an
- HTTP/0.9 request would be sent immediately after being issued.
- This involved changes to Parse_Headers.
-
- * JAWS_File.cpp (acquire): Changes involved adding some debugging
- statements to understand why PUT was not working. Discovered a
- bug in how ACE_Mem_Map was being used.
-
- * HTTP_Request.cpp (content_length): Changed to extract value from
- the headers, if available.
-
-Thu May 22 16:22:03 1997 James C. Hu <jxh@pride.cs.wustl.edu>
-
- * HTTP_Request.cpp (cgi_env): Added a cast so that a warning
- generated by SGI C++ compiler goes away.
-
- * Makefile: Reordered the way the files are compiled/linked so
- that useless warnings about object files not resolving any
- symbols go away.
-
-Wed May 21 15:33:33 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * JAWS_File.{h,cpp}: Added some comments. Will add a copy ()
- method soon, after I move my workspace over to lambada.
-
- * JAWS_Tilde.{h,cpp}: This class is being implemented but has not
- been added to the repository yet, since JAWS as yet does not use
- it, and it is still being developed. This will be a cache of
- the expansions from ~foo to the home directory of foo.
-
-Tue May 20 22:49:24 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * JAWS_File.{h,cpp}: New class created to replace the old kludgy
- VFS thingy. This new cached virtual filesystem is way cool: a
- file which is being retrieved can be simultaneously replaced
- without causing either reader or writer to wait. Reference
- counts are maintained now, which was missing in VFS. Also,
- there is no longer a dependency on the JXH_List template now,
- which is a plus.
-
- * IO.cpp: Changes to adapt to the new virtual filesystem. The
- changes all involved simplifications to the programming
- interface.
-
- * HTTP_Handler.cpp: Changes required to deal with the more
- generic error responses returned from the JAWS_File/JAWS_IO
- interface. This generality will make it easier to adapt
- JAWS_File and JAWS_IO into ACE.
-
- * test_JAWS_File.cpp: A test program written to see if the new
- virtual filesystem works the way I expect it to.
diff --git a/apps/JAWS/Makefile b/apps/JAWS/Makefile
deleted file mode 100644
index 950d3cd73b3..00000000000
--- a/apps/JAWS/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for JAWS
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README
-
-DIRS = server \
- clients
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU
-
diff --git a/apps/JAWS/Makefile.bor b/apps/JAWS/Makefile.bor
deleted file mode 100644
index f517d4b8872..00000000000
--- a/apps/JAWS/Makefile.bor
+++ /dev/null
@@ -1,9 +0,0 @@
-
-!include <$(ACE_ROOT)\include\makeinclude\make_flags.bor>
-
-all:
- cd $(ACE_ROOT)\apps\JAWS\clients
- $(MAKE) -f Makefile.bor $(MAKE_FLAGS)
- cd $(ACE_ROOT)\apps\JAWS\server
- $(MAKE) -f Makefile.bor $(MAKE_FLAGS)
-
diff --git a/apps/JAWS/PROTOTYPE/1000K.html b/apps/JAWS/PROTOTYPE/1000K.html
deleted file mode 100644
index 6c06e3d11bf..00000000000
--- a/apps/JAWS/PROTOTYPE/1000K.html
+++ /dev/null
@@ -1,20000 +0,0 @@
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
diff --git a/apps/JAWS/PROTOTYPE/500K.html b/apps/JAWS/PROTOTYPE/500K.html
deleted file mode 100644
index 0c485571ecc..00000000000
--- a/apps/JAWS/PROTOTYPE/500K.html
+++ /dev/null
@@ -1,10000 +0,0 @@
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
diff --git a/apps/JAWS/PROTOTYPE/50K.html b/apps/JAWS/PROTOTYPE/50K.html
deleted file mode 100644
index 8796105b75a..00000000000
--- a/apps/JAWS/PROTOTYPE/50K.html
+++ /dev/null
@@ -1,1000 +0,0 @@
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
diff --git a/apps/JAWS/PROTOTYPE/5K.html b/apps/JAWS/PROTOTYPE/5K.html
deleted file mode 100644
index 996145ffa80..00000000000
--- a/apps/JAWS/PROTOTYPE/5K.html
+++ /dev/null
@@ -1,100 +0,0 @@
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/HTTPU.DSP b/apps/JAWS/PROTOTYPE/HTTPU/HTTPU.DSP
deleted file mode 100644
index 73b302cbf0e..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/HTTPU.DSP
+++ /dev/null
@@ -1,169 +0,0 @@
-# Microsoft Developer Studio Project File - Name="HTTPU" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=HTTPU - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "HTTPU.MAK".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "HTTPU.MAK" CFG="HTTPU - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "HTTPU - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "HTTPU - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "HTTPU - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I ".." /I "..\..\..\.." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D HTTPU_HAS_DLL=1 /D "HTTPU_BUILD_DLL" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 ace.lib jaws.lib /nologo /subsystem:windows /dll /machine:I386 /out:"..\..\..\..\bin\HTTPU.dll" /libpath:"..\..\..\..\ace" /libpath:"..\JAWS"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "HTTPU - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I ".." /I "..\..\..\.." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D HTTPU_HAS_DLL=1 /D "HTTPU_BUILD_DLL" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib jawsd.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"..\..\..\..\bin\HTTPUd.dll" /pdbtype:sept /libpath:"..\..\..\..\ace" /libpath:"..\JAWS"
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "HTTPU - Win32 Release"
-# Name "HTTPU - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\http_base.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\http_headers.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\http_request.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\http_response.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\http_status.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\parse_http_request.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\parse_http_response.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\parse_url.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\http_base.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\http_export.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\http_headers.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\http_request.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\http_response.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\http_status.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\parse_http_request.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\parse_http_response.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\parse_url.h
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/HTTPU.DSW b/apps/JAWS/PROTOTYPE/HTTPU/HTTPU.DSW
deleted file mode 100644
index 87695cdb010..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/HTTPU.DSW
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "HTTPU"=.\HTTPU.DSP - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/Makefile b/apps/JAWS/PROTOTYPE/HTTPU/Makefile
deleted file mode 100644
index ca4e4b71bf6..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/Makefile
+++ /dev/null
@@ -1,478 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE Adapter Web Server (JAWS) client
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-#BIN = test_parse_url test_parse_http_request test_http_headers \
-# test_http_request test_http_response
-
-SHLIB = libHTTPU.so
-FILES = parse_url parse_http_request parse_http_response \
- http_request http_response http_base http_status \
- http_headers
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LOBJ = $(addsuffix .o,$(FILES))
-
-CPPFLAGS += -I..
-
-LDLIBS = -lhttpu -laoutil
-BUILD = $(VSHLIB) $(SHLIBA) $(VLIB)
-
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/parse_url.o .obj/parse_url.so .shobj/parse_url.o .shobj/parse_url.so: parse_url.cpp $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config-sunos5.6.h \
- $(ACE_ROOT)/ace/config-sunos5.5.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Log_Record.i ../HTTPU/parse_url.h \
- ../HTTPU/http_export.h
-.obj/parse_http_request.o .obj/parse_http_request.so .shobj/parse_http_request.o .shobj/parse_http_request.so: parse_http_request.cpp \
- ../HTTPU/parse_http_request.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config-sunos5.6.h \
- $(ACE_ROOT)/ace/config-sunos5.5.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Log_Record.i ../HTTPU/http_headers.h \
- $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp ../JAWS/Parse_Headers.h \
- ../JAWS/Export.h $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp ../JAWS/Headers.h \
- ../HTTPU/http_export.h ../HTTPU/http_headers.i \
- ../HTTPU/parse_http_request.i
-.obj/parse_http_response.o .obj/parse_http_response.so .shobj/parse_http_response.o .shobj/parse_http_response.so: parse_http_response.cpp \
- ../HTTPU/parse_http_response.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config-sunos5.6.h \
- $(ACE_ROOT)/ace/config-sunos5.5.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Log_Record.i ../HTTPU/http_export.h \
- ../HTTPU/parse_http_response.i
-.obj/http_request.o .obj/http_request.so .shobj/http_request.o .shobj/http_request.so: http_request.cpp ../HTTPU/http_request.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config-sunos5.6.h \
- $(ACE_ROOT)/ace/config-sunos5.5.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Malloc.h $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp ../JAWS/Parse_Headers.h \
- ../JAWS/Export.h $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp ../JAWS/Headers.h \
- ../HTTPU/http_export.h ../HTTPU/http_base.h ../HTTPU/http_status.h \
- ../HTTPU/http_status.i ../HTTPU/http_headers.h \
- $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp ../HTTPU/http_headers.i \
- ../HTTPU/http_base.i ../HTTPU/parse_http_request.h \
- ../HTTPU/parse_http_request.i ../HTTPU/parse_url.h \
- ../HTTPU/http_request.i
-.obj/http_response.o .obj/http_response.so .shobj/http_response.o .shobj/http_response.so: http_response.cpp ../HTTPU/http_response.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config-sunos5.6.h \
- $(ACE_ROOT)/ace/config-sunos5.5.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Malloc.h $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp ../JAWS/Parse_Headers.h \
- ../JAWS/Export.h $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp ../JAWS/Headers.h \
- ../HTTPU/http_export.h ../HTTPU/http_base.h ../HTTPU/http_status.h \
- ../HTTPU/http_status.i ../HTTPU/http_headers.h \
- $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp ../HTTPU/http_headers.i \
- ../HTTPU/http_base.i ../HTTPU/parse_http_response.h \
- ../HTTPU/parse_http_response.i ../HTTPU/http_response.i
-.obj/http_base.o .obj/http_base.so .shobj/http_base.o .shobj/http_base.so: http_base.cpp ../JAWS/Parse_Headers.h ../JAWS/Export.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config-sunos5.6.h \
- $(ACE_ROOT)/ace/config-sunos5.5.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp ../JAWS/Headers.h \
- ../HTTPU/http_base.h ../HTTPU/http_export.h ../HTTPU/http_status.h \
- ../HTTPU/http_status.i ../HTTPU/http_headers.h \
- $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp ../HTTPU/http_headers.i \
- ../HTTPU/http_base.i
-.obj/http_status.o .obj/http_status.so .shobj/http_status.o .shobj/http_status.so: http_status.cpp ../HTTPU/http_status.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config-sunos5.6.h \
- $(ACE_ROOT)/ace/config-sunos5.5.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp ../HTTPU/http_export.h \
- ../HTTPU/http_status.i
-.obj/http_headers.o .obj/http_headers.so .shobj/http_headers.o .shobj/http_headers.so: http_headers.cpp $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/ACE.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config-sunos5.6.h \
- $(ACE_ROOT)/ace/config-sunos5.5.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp ../HTTPU/http_headers.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp ../JAWS/Parse_Headers.h \
- ../JAWS/Export.h $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp ../JAWS/Headers.h \
- ../HTTPU/http_export.h ../HTTPU/http_headers.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/http_base.cpp b/apps/JAWS/PROTOTYPE/HTTPU/http_base.cpp
deleted file mode 100644
index 3a653e5feef..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/http_base.cpp
+++ /dev/null
@@ -1,323 +0,0 @@
-// $Id$
-
-#include "JAWS/Parse_Headers.h"
-#include "HTTPU/http_base.h"
-#include "HTTPU/http_headers.h"
-
-int
-HTTP_Base::receive (ACE_Message_Block &mb)
-{
- if (this->line () == 0)
- {
- if (this->extract_line (mb) == 0)
- return 0;
- if (this->status () != STATUS_OK)
- return 1;
-
- // Call into the receive hook.
- this->parse_line ();
- if (this->status_ == STATUS_INTERNAL_SERVER_ERROR || this->no_headers_)
- return 1;
- }
-
- // Parse headers
- JAWS_Parse_Headers *parser = JAWS_Parse_Headers_Singleton::instance ();
- int ret = parser->parse_headers (&(this->info_), mb);
-
- switch (this->info_.status ())
- {
- case JAWS_Header_Info::OK:
- break;
-
- case JAWS_Header_Info::NO_MEMORY:
- case JAWS_Header_Info::TOO_LONG:
- default:
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
- break;
- }
-
- return ret;
-}
-
-int
-HTTP_Base::deliver (ACE_Message_Block &mb)
-{
- JAWS_Header_Data *data = 0;
-
- // Deliver this outgoing request.
- // We do this by building the request up and writing it into the
- // message block.
- if (this->mb_ == 0)
- {
- // Make our Message Block big enough to hold a header name and
- // header value
- this->mb_ = new ACE_Message_Block (16384); // MAGIC! 2 x 8192
- if (this->mb_ == 0)
- {
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
- return -1;
- }
-
- // Call into the deliver hook
- int r = this->espouse_line ();
- if (r == -1)
- return -1;
-
- if (r == 1)
- this->deliver_state_ = 2;
-
- this->iter_.first ();
- }
-
- while (this->deliver_state_ < 3)
- {
- // Deliver whatever is currently held in this->mb_.
- size_t sz = (mb.space () < this->mb_->length ()
- ? mb.space ()
- : this->mb_->length ());
-
- if (sz > 0)
- {
- mb.copy (this->mb_->rd_ptr (), sz);
- this->mb_->rd_ptr (sz);
- }
-
- if (mb.space () == 0)
- return 0;
-
- // Arriving here means this->mb_ has been emptied.
- this->mb_->crunch ();
-
- switch (this->deliver_state_)
- {
- case 0: // Obtain the next header data // Deliver a header name
- this->deliver_state_ = this->deliver_header_name (data);
- break;
-
- case 1: // Deliver a header value
- this->deliver_state_ = this->deliver_header_value (data);
- break;
-
- case 2: // Finished!
- delete this->mb_;
- this->mb_ = 0;
- this->deliver_state_ = 3;
- }
- }
-
- return 1;
-}
-
-int
-HTTP_Base::receive_payload (ACE_Message_Block &mb)
-{
- int result = 0;
-
- if (this->payload_.space () < mb.length ())
- result = this->payload_.size (this->payload_.size () +
- mb.length () - this->payload_.space ());
-
- if (result == 0)
- {
- this->payload_.copy (mb.rd_ptr (), mb.length ());
- mb.rd_ptr (mb.wr_ptr ());
- mb.crunch ();
- }
- else
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
-
- return result;
-}
-
-int
-HTTP_Base::receive_payload (ACE_Message_Block &mb, long length)
-{
- int result = 0;
-
- if (length == -1)
- return this->receive_payload (mb);
-
- if (this->payload_.size () < (unsigned long) length)
- result = this->payload_.size (length);
-
- if (result == -1)
- {
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
- return -1;
- }
-
- if (this->payload_.space () >= mb.length ())
- {
- this->payload_.copy (mb.rd_ptr (), mb.length ());
- mb.rd_ptr (mb.wr_ptr ());
- mb.crunch ();
- }
- else
- {
- size_t space = this->payload_.space ();
- this->payload_.copy (mb.rd_ptr (), space);
- mb.rd_ptr (space);
- }
-
- return this->payload_.length () == (unsigned long) length;
-}
-
-const char *
-HTTP_Base::payload (void)
-{
- return this->payload_.rd_ptr ();
-}
-
-unsigned long
-HTTP_Base::payload_size (void)
-{
- return this->payload_.length ();
-}
-
-int
-HTTP_Base::build_headers (JAWS_Headers *new_headers)
-{
- JAWS_Header_Data *data = 0;
- JAWS_Header_Data *data2 = 0;
- JAWS_Header_Table_Iterator iter (*new_headers);
-
- iter.first ();
- while (! iter.done ())
- {
- data = iter.next ();
- if (data == 0)
- {
- iter.advance ();
- continue;
- }
-
- if (data->header_type () == HTTP_HCodes::REPLACE_HEADER)
- this->headers ()->remove_all (data->header_name ());
- else if (data->header_type () == HTTP_HCodes::INSERT_HEADER
- || data->header_type () == HTTP_HCodes::APPENDTO_HEADER)
- {
- data2 = this->headers ()->find (data->header_name ());
- if (data2 != 0)
- {
- if (data->header_type () == HTTP_HCodes::APPENDTO_HEADER)
- {
- // Append to existing header
- size_t len
- = ACE_OS::strlen (data->header_value ())
- + ACE_OS::strlen (data2->header_value ())
- + 3; /* for comma, space, and nul */
- char *buf = new char [len];
- if (buf == 0)
- {
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
- return -1;
- }
- ACE_OS::sprintf (buf, "%s, %s",
- data2->header_value (),
- data->header_value ());
- data2->header_value (buf);
- delete [] buf;
- }
-
- // Only insert if it isn't already present
- iter.advance ();
- continue;
- }
- }
-
- data2 = new JAWS_Header_Data (data->header_name (),
- data->header_value ());
- if (data2 == 0 || data2->header_name () == 0
- || data2->header_value () == 0)
- {
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
- return -1;
- }
- this->headers ()->insert (data2);
-
- iter.advance ();
- }
-
- return 0;
-}
-
-int
-HTTP_Base::deliver_header_name (JAWS_Header_Data *&data)
-{
- data = 0;
-
- for (;;)
- {
- if ((data = this->iter_.next ()) == 0)
- {
- // No more headers, deliver final "\r\n"
- this->mb_->copy ("\r\n", 2);
- return 2;
- }
-
- if (data->header_name ())
- break;
-
- this->iter_.advance ();
- }
-
- // Assume the following lines will always succeed.
- this->mb_->copy (data->header_name ());
- this->mb_->wr_ptr (this->mb_->wr_ptr () - 1);
- this->mb_->copy (": ", 2);
-
- return 1;
-}
-
-int
-HTTP_Base::deliver_header_value (JAWS_Header_Data *&data)
-{
- // Assume the following line will always succeed.
- if (data->header_value ())
- {
- this->mb_->copy (data->header_value ());
- this->mb_->wr_ptr (this->mb_->wr_ptr () - 1);
- }
- this->mb_->copy ("\r\n", 2);
-
- this->iter_.advance ();
- return 0;
-}
-
-
-int
-HTTP_Base::extract_line (ACE_Message_Block &mb)
-{
- JAWS_Parse_Headers *parser = JAWS_Parse_Headers_Singleton::instance ();
- char *p = parser->skipset ("\n", mb.rd_ptr (), mb.wr_ptr ());
- if (p == mb.wr_ptr ())
- return 0;
-
- this->status_ = STATUS_OK;
-
- *p = '\0';
- if (p[-1] == '\r')
- p[-1] = '\0';
-
- this->line_ = ACE_OS::strdup (mb.rd_ptr ());
- if (this->line_ == 0)
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
-
- mb.rd_ptr (p+1);
- this->info_.end_of_line (1);
- return 1;
-}
-
-void
-HTTP_Base::dump (void)
-{
- ACE_DEBUG ((LM_DEBUG, "%s\n", this->line ()));
- this->info_.dump ();
- ACE_DEBUG ((LM_DEBUG, "STATUS IS %d %s\n",
- this->status (),
- (*HTTP_SCode::instance ())[this->status ()]));
-}
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "HTTPU/http_base.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/http_base.h b/apps/JAWS/PROTOTYPE/HTTPU/http_base.h
deleted file mode 100644
index 5f5486f888d..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/http_base.h
+++ /dev/null
@@ -1,87 +0,0 @@
-// $Id$
-
-#ifndef HTTPU_HTTP_BASE_H
-#define HTTPU_HTTP_BASE_H
-
-#include "ace/Message_Block.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "JAWS/Parse_Headers.h"
-#include "HTTPU/http_export.h"
-#include "HTTPU/http_status.h"
-#include "HTTPU/http_headers.h"
-
-class HTTPU_Export HTTP_Base : public HTTP_SCode_Base
-{
-public:
-
- HTTP_Base (void);
- virtual ~HTTP_Base (void);
-
- virtual int receive (ACE_Message_Block &mb);
- virtual int deliver (ACE_Message_Block &mb);
-
- virtual int receive_payload (ACE_Message_Block &mb);
- virtual int receive_payload (ACE_Message_Block &mb, long length);
-
- const char * payload (void);
- unsigned long payload_size (void);
-
- int status (void) const;
- const char *line (void) const;
- HTTP_Headers *http_headers (void);
- JAWS_Headers *headers (void);
-
- int build_headers (JAWS_Headers *new_headers);
- // takes a set of new headers that will replace existing headers or
- // be added to the header list if there is no corresponding one to replace.
-
- void dump (void);
-
-protected:
-
- virtual void parse_line (void) = 0;
- // Hook into the receive function to do specialized parsing of initial line.
- // Sets the status_ variable.
-
- virtual int espouse_line (void) = 0;
- // Hook into the deliver function to do specialized initial line creation.
- // Returns 0 for success and -1 for failure.
-
- int deliver_header_name (JAWS_Header_Data *&data);
- // Returns the next deliver state
-
- int deliver_header_value (JAWS_Header_Data *&data);
- // Returns the next deliver state
-
- virtual int extract_line (ACE_Message_Block &mb);
- // The first line of a request or a response.
- // Return 0 if more data needed.
- // Return 1 if line successfully parsed.
-
-protected:
-
- int status_;
- char *line_;
- int deliver_state_;
- int no_headers_;
- HTTP_Headers info_;
- JAWS_Header_Table_Iterator iter_;
- ACE_Message_Block *mb_;
- ACE_Message_Block payload_;
-
-};
-
-
-#if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "HTTPU/http_base.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-#endif /* !defined (HTTPU_HTTP_BASE_H) */
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/http_base.i b/apps/JAWS/PROTOTYPE/HTTPU/http_base.i
deleted file mode 100644
index 3c862c5b5fb..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/http_base.i
+++ /dev/null
@@ -1,53 +0,0 @@
-// -*- c++ -*-
-// $Id$
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# undef ACE_INLINE
-# define ACE_INLINE
-#endif /* ACE_HAS_INLINED_OSCALLS */
-
-ACE_INLINE
-HTTP_Base::HTTP_Base (void)
- : status_ (200),
- line_ (0),
- deliver_state_ (0),
- no_headers_ (0),
- iter_ (*(this->info_.table ())),
- mb_ (0)
-{
-}
-
-ACE_INLINE
-HTTP_Base::~HTTP_Base (void)
-{
- if (this->line_)
- ACE_OS::free (this->line_);
- if (this->mb_)
- delete this->mb_;
- this->line_ = 0;
- this->mb_ = 0;
-}
-
-ACE_INLINE int
-HTTP_Base::status (void) const
-{
- return this->status_;
-}
-
-ACE_INLINE const char *
-HTTP_Base::line (void) const
-{
- return this->line_;
-}
-
-ACE_INLINE HTTP_Headers *
-HTTP_Base::http_headers (void)
-{
- return &(this->info_);
-}
-
-ACE_INLINE JAWS_Headers *
-HTTP_Base::headers (void)
-{
- return this->info_.table ();
-}
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/http_export.h b/apps/JAWS/PROTOTYPE/HTTPU/http_export.h
deleted file mode 100644
index 84a819c8932..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/http_export.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// $Id$
-
-// Definition for Win32 Export directives.
-// This file is generated automatically by
-// ${TAO_ROOT}/TAO_IDL/GenExportH.BAT
-// ------------------------------
-#ifndef HTTPU_EXPORT_H
-#define HTTPU_EXPORT_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (HTTPU_HAS_DLL)
-# if (HTTPU_HAS_DLL == 1)
-# if defined (HTTPU_BUILD_DLL)
-# define HTTPU_Export ACE_Proper_Export_Flag
-# define HTTPU_SINGLETON_DECLARATION(T) \
- ACE_EXPORT_SINGLETON_DECLARATION (T)
-# else
-# define HTTPU_Export ACE_Proper_Import_Flag
-# define HTTPU_SINGLETON_DECLARATION(T) \
- ACE_IMPORT_SINGLETON_DECLARATION (T)
-# endif /* HTTPU_BUILD_DLL */
-# else
-# define HTTPU_Export
-# define HTTPU_SINGLETON_DECLARATION(T)
-# endif /* ! HTTPU_HAS_DLL == 1 */
-#else
-# define HTTPU_Export
-# define HTTPU_SINGLETON_DECLARATION(T)
-#endif /* HTTPU_HAS_DLL */
-
-#endif /* HTTPU_EXPORT_H */
- // End of auto generated file.
-
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/http_headers.cpp b/apps/JAWS/PROTOTYPE/HTTPU/http_headers.cpp
deleted file mode 100644
index 41aadd09824..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/http_headers.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-// $Id$
-
-#include "ace/RB_Tree.h"
-#include "HTTPU/http_headers.h"
-
-HTTP_Hdr_Node
-
- HTTP_HCodes::HTTP ("HTTP", "HTTP%s %s"),
- HTTP_HCodes::ACCEPT ("Accept", "Accept: %s\r\n"),
- HTTP_HCodes::ACCEPTCHARSET ("Accept-Charset", "Accept-Charset: %s\r\n"),
- HTTP_HCodes::ACCEPTENCODING ("Accept-Encoding", "Accept-Encoding: %s\r\n"),
- HTTP_HCodes::ACCEPTLANGUAGE ("Accept-Language", "Accept-Language: %s\r\n"),
- HTTP_HCodes::ACCEPTRANGES ("Accept-Ranges", "Accept-Ranges: %s\r\n"),
- HTTP_HCodes::AGE ("Age", "Age: %s\r\n"),
- HTTP_HCodes::ALLOW ("Allow", "Allow: %s\r\n"),
- HTTP_HCodes::AUTHORIZATION ("Authorization", "Authorization: %s\r\n"),
- HTTP_HCodes::CACHECONTROL ("Cache-Control", "Cache-Control: %s\r\n"),
- HTTP_HCodes::CONNECTION ("Connection", "Connection: %s\r\n"),
- HTTP_HCodes::CONTENTENCODING ("Content-Encoding",
- "Content-Encoding: %d\r\n"),
- HTTP_HCodes::CONTENTLENGTH ("Content-Length", "Content-Length: %d\r\n"),
- HTTP_HCodes::CONTENTLOCATION ("Content-Location", "Content-Location: %s\r\n"),
- HTTP_HCodes::CONTENTMD5 ("Content-MD5", "Content-MD5: %s\r\n"),
- HTTP_HCodes::CONTENTRANGE ("Content-Range", "Content-Range: %s\r\n"),
- HTTP_HCodes::CONTENTTYPE ("Content-Type", "Content-Type: %s\r\n"),
- HTTP_HCodes::DATE ("Date", "Date: %s\r\n"),
- HTTP_HCodes::ETAG ("ETag", "ETag: %s\r\n"),
- HTTP_HCodes::EXPECT ("Expect", "Expect: %s\r\n"),
- HTTP_HCodes::EXPIRES ("Expires", "Expires: %s\r\n"),
- HTTP_HCodes::FROM ("From", "From: %s\r\n"),
- HTTP_HCodes::HOST ("Host", "Host: %s\r\n"),
- HTTP_HCodes::IFMATCH ("If-Match", "If-Match: %s\r\n"),
- HTTP_HCodes::IFMODIFIEDSINCE ("If-Modified-Since",
- "If-Modified-Since: %s\r\n"),
- HTTP_HCodes::IFNONEMATCH ("If-None-Match", "If-None-Match: %s\r\n"),
- HTTP_HCodes::IFRANGE ("If-Range", "If-Range: %s\r\n"),
- HTTP_HCodes::IFUNMODIFIEDSINCE ("If-Unmodified-Since",
- "If-Unmodified-Since: %s\r\n"),
- HTTP_HCodes::LASTMODIFIED ("Last-Modified", "Last-Modified: %s\r\n"),
- HTTP_HCodes::LOCATION ("Location", "Location: %s\r\n"),
- HTTP_HCodes::MAXFORWARDS ("Max-Forwards", "Max-Forwards: %s\r\n"),
- HTTP_HCodes::PRAGMA ("Pragma", "Pragma: %s\r\n"),
- HTTP_HCodes::PROXYAUTHENTICATE ("Proxy-Authenticate",
- "Proxy-Authenticate: %s\r\n"),
- HTTP_HCodes::PROXYAUTHORIZATION ("Proxy-Authorization",
- "Proxy-Authorization: %s\r\n"),
- HTTP_HCodes::RANGE ("Range", "Range: %s\r\n"),
- HTTP_HCodes::REFERER ("Referer", "Referer: %s\r\n"),
- HTTP_HCodes::SERVER ("Server", "Server: %s\r\n"),
- HTTP_HCodes::TE ("TE", "TE: %s\r\n"),
- HTTP_HCodes::TRAILER ("Trailer", "Trailer: %s\r\n"),
- HTTP_HCodes::TRANSFERENCODING ("Transfer-Encoding",
- "Transfer-Encoding: %s\r\n"),
- HTTP_HCodes::UPGRADE ("Ugrade", "Ugrade: %s\r\n"),
- HTTP_HCodes::USERAGENT ("User-Agent", "User-Agent: %s\r\n"),
- HTTP_HCodes::VARY ("Vary", "Vary: %s\r\n"),
- HTTP_HCodes::VIA ("Via", "Via: %s\r\n"),
- HTTP_HCodes::WARNING ("Warning", "Warning: %s\r\n"),
- HTTP_HCodes::WWWAUTHENTICATE ("WWW-Authenticate",
- "WWW-Authenticate: %s\r\n"),
- HTTP_HCodes::GET ("GET", "GET %s HTTP/%s\r\n"),
- HTTP_HCodes::HEAD ("HEAD", "HEAD %s HTTP/%s\r\n"),
- HTTP_HCodes::POST ("POST", "POST %s HTTP/%s\r\n"),
- HTTP_HCodes::PUT ("PUT", "PUT %s HTTP/%s\r\n"),
- HTTP_HCodes::QUIT ("QUIT", "QUIT %s HTTP/%s\r\n"),
- HTTP_HCodes::DUNNO ("", ""),
- HTTP_HCodes::META ("<META", "<META %s>"),
- HTTP_HCodes::A ("<A", "<A %s>"),
- HTTP_HCodes::SCRIPT ("<SCRIPT", "<SCRIPT %s>"),
- HTTP_HCodes::APPLET ("<APPLET", "<APPLET %s>")
-
- //////////////
- ;
-
-
-const int &HTTP_HCodes::NUM_HEADER_STRINGS
- = HTTP_Header_Nodes_Singleton::instance ()->num_header_strings_;
-
-HTTP_Header_Nodes::HTTP_Header_Nodes (void)
- : num_header_strings_ (0)
-{
-}
-
-HTTP_Hdr_Node::HTTP_Hdr_Node (const char *token, const char *format)
- : token_ (token),
- format_ (format)
-{
- HTTP_Header_Nodes *header_nodes
- = HTTP_Header_Nodes_Singleton::instance ();
-
- this->index_ = header_nodes->num_header_strings_;
- header_nodes->insert (this->index_, this);
- header_nodes->num_header_strings_++;
-}
-
-HTTP_HCodes::HTTP_HCodes (void)
- : header_nodes_ (HTTP_Header_Nodes_Singleton::instance ())
-{
-}
-
-HTTP_Headers::HTTP_Headers (void)
-{
-}
-
-const char *
-HTTP_Headers::header (int name) const
-{
- return this->header_token (name);
-}
-
-const char *
-HTTP_Headers::value (int index)
-{
- this->value_reset ();
- return this->value_next (index);
-}
-
-const char *
-HTTP_Headers::value_next (int index)
-{
- const char *hs = 0;
- const char *hv = 0;
- JAWS_Header_Data *data;
-
- if (0 <= index && index < NUM_HEADER_STRINGS)
- {
- hs = this->header (index);
- data = this->table ()->find_next (hs);
- if (data != 0)
- hv = data->header_value ();
- }
-
- return hv;
-}
-
-void
-HTTP_Headers::value_reset (void)
-{
- this->table ()->iter ().first ();
-}
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "HTTPU/http_headers.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_RB_Tree<int, const HTTP_Hdr_Node *, ACE_Less_Than<int>, ACE_Null_Mutex>;
-template class ACE_RB_Tree_Node<int, const HTTP_Hdr_Node *>;
-template class ACE_RB_Tree_Iterator_Base<int, const HTTP_Hdr_Node *, ACE_Less_Than<int>, ACE_Null_Mutex>;
-template class ACE_RB_Tree_Iterator<int, const HTTP_Hdr_Node *, ACE_Less_Than<int>, ACE_Null_Mutex>;
-template class ACE_RB_Tree_Reverse_Iterator<int, const HTTP_Hdr_Node *, ACE_Less_Than<int>, ACE_Null_Mutex>;
-template class ACE_Singleton<HTTP_Header_Nodes, ACE_SYNCH_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_RB_Tree<int, const HTTP_Hdr_Node *, ACE_Less_Than<int>, ACE_Null_Mutex>
-#pragma instantiate ACE_RB_Tree_Node<int, const HTTP_Hdr_Node *>
-#pragma instantiate ACE_RB_Tree_Iterator_Base<int, const HTTP_Hdr_Node *, ACE_Less_Than<int>, ACE_Null_Mutex>
-#pragma instantiate ACE_RB_Tree_Iterator<int, const HTTP_Hdr_Node *, ACE_Less_Than<int>, ACE_Null_Mutex>
-#pragma instantiate ACE_RB_Tree_Reverse_Iterator<int, const HTTP_Hdr_Node *, ACE_Less_Than<int>, ACE_Null_Mutex>
-#pragma instantiate ACE_Singleton<HTTP_Header_Nodes, ACE_SYNCH_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/http_headers.h b/apps/JAWS/PROTOTYPE/HTTPU/http_headers.h
deleted file mode 100644
index 41afd21d15d..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/http_headers.h
+++ /dev/null
@@ -1,165 +0,0 @@
-// $Id$
-
-// by James Hu
-// Borrowed from HTTP_Headers.*, which appears to be irrelevent now anyway.
-
-#ifndef HTTPU_HTTP_HEADERS_H
-#define HTTPU_HTTP_HEADERS_H
-
-#include "ace/RB_Tree.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Singleton.h"
-
-#include "JAWS/Parse_Headers.h"
-#include "HTTPU/http_export.h"
-
-class HTTP_Headers;
-
-class HTTPU_Export HTTP_Hdr_Node
-{
- // Constructor should be passed literal strings.
- friend class HTTP_HCodes;
-
-public:
- operator const int (void) const;
- operator const char * (void) const;
- const char * format (void) const;
-
-private:
- HTTP_Hdr_Node (const char *token, const char *format);
-
-private:
- int index_;
- const char *token_;
- const char *format_;
-};
-
-
-class HTTP_HCodes;
-
-class HTTPU_Export HTTP_Header_Nodes : public ACE_RB_Tree<int, const HTTP_Hdr_Node *, ACE_Less_Than<int>, ACE_Null_Mutex>
-{
- friend class HTTP_HCodes;
- friend class HTTP_Hdr_Node;
-
-public:
- HTTP_Header_Nodes (void);
-
-private:
- int num_header_strings_;
-};
-
-typedef ACE_Singleton<HTTP_Header_Nodes, ACE_SYNCH_MUTEX>
- HTTP_Header_Nodes_Singleton;
-
-class HTTPU_Export HTTP_HCodes
-{
-public:
- HTTP_HCodes (void);
-
- enum {
- REPLACE_HEADER = 1, // Remove any existing header that matches first
- APPEND_HEADER = 2, // Unconditionally append the header
- INSERT_HEADER = 4, // Insert header if one does not already exist
- APPENDTO_HEADER = 8 // Concatenate data to existing header value
- };
-
- static HTTP_Hdr_Node HTTP;
- static HTTP_Hdr_Node ACCEPT;
- static HTTP_Hdr_Node ACCEPTCHARSET;
- static HTTP_Hdr_Node ACCEPTENCODING;
- static HTTP_Hdr_Node ACCEPTLANGUAGE;
- static HTTP_Hdr_Node ACCEPTRANGES;
- static HTTP_Hdr_Node AGE;
- static HTTP_Hdr_Node ALLOW;
- static HTTP_Hdr_Node AUTHORIZATION;
- static HTTP_Hdr_Node CACHECONTROL;
- static HTTP_Hdr_Node CONNECTION;
- static HTTP_Hdr_Node CONTENTENCODING;
- static HTTP_Hdr_Node CONTENTLENGTH;
- static HTTP_Hdr_Node CONTENTLOCATION;
- static HTTP_Hdr_Node CONTENTMD5;
- static HTTP_Hdr_Node CONTENTRANGE;
- static HTTP_Hdr_Node CONTENTTYPE;
- static HTTP_Hdr_Node DATE;
- static HTTP_Hdr_Node ETAG;
- static HTTP_Hdr_Node EXPECT;
- static HTTP_Hdr_Node EXPIRES;
- static HTTP_Hdr_Node FROM;
- static HTTP_Hdr_Node HOST;
- static HTTP_Hdr_Node IFMATCH;
- static HTTP_Hdr_Node IFMODIFIEDSINCE;
- static HTTP_Hdr_Node IFNONEMATCH;
- static HTTP_Hdr_Node IFRANGE;
- static HTTP_Hdr_Node IFUNMODIFIEDSINCE;
- static HTTP_Hdr_Node LASTMODIFIED;
- static HTTP_Hdr_Node LOCATION;
- static HTTP_Hdr_Node MAXFORWARDS;
- static HTTP_Hdr_Node PRAGMA;
- static HTTP_Hdr_Node PROXYAUTHENTICATE;
- static HTTP_Hdr_Node PROXYAUTHORIZATION;
- static HTTP_Hdr_Node RANGE;
- static HTTP_Hdr_Node REFERER;
- static HTTP_Hdr_Node RETRYAFTER;
- static HTTP_Hdr_Node SERVER;
- static HTTP_Hdr_Node TE;
- static HTTP_Hdr_Node TRAILER;
- static HTTP_Hdr_Node TRANSFERENCODING;
- static HTTP_Hdr_Node UPGRADE;
- static HTTP_Hdr_Node USERAGENT;
- static HTTP_Hdr_Node VARY;
- static HTTP_Hdr_Node VIA;
- static HTTP_Hdr_Node WARNING;
- static HTTP_Hdr_Node WWWAUTHENTICATE;
- static HTTP_Hdr_Node GET;
- static HTTP_Hdr_Node HEAD;
- static HTTP_Hdr_Node POST;
- static HTTP_Hdr_Node PUT;
- static HTTP_Hdr_Node QUIT;
- static HTTP_Hdr_Node DUNNO;
- static HTTP_Hdr_Node META;
- static HTTP_Hdr_Node A;
- static HTTP_Hdr_Node SCRIPT;
- static HTTP_Hdr_Node APPLET;
-
- static const int &NUM_HEADER_STRINGS;
-
-protected:
-
- const HTTP_Hdr_Node &hcode (int type) const;
-
-protected:
-
- HTTP_Header_Nodes *header_nodes_;
-};
-
-class HTTPU_Export HTTP_Headers : public JAWS_Header_Info, public HTTP_HCodes
-{
-public:
- const char *header( int name ) const;
- const char *value( int name );
- const char *value_next( int name );
- void value_reset ( void );
-
-public:
- HTTP_Headers (void);
-
- const char *header_token (int name) const;
- const char *header_strings (int name) const;
-
-};
-
-
-#if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "HTTPU/http_headers.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-#endif /* !defined (HTTPU_HTTP_HEADERS_HPP) */
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/http_headers.i b/apps/JAWS/PROTOTYPE/HTTPU/http_headers.i
deleted file mode 100644
index 73ea46e57b6..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/http_headers.i
+++ /dev/null
@@ -1,48 +0,0 @@
-// -*- c++ -*-
-// $Id$
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# undef ACE_INLINE
-# define ACE_INLINE
-#endif /* ACE_HAS_INLINED_OSCALLS */
-
-ACE_INLINE
-HTTP_Hdr_Node::operator const int (void) const
-{
- return this->index_;
-}
-
-ACE_INLINE
-HTTP_Hdr_Node::operator const char * (void) const
-{
- return this->token_;
-}
-
-ACE_INLINE const char *
-HTTP_Hdr_Node::format (void) const
-{
- return this->format_;
-}
-
-ACE_INLINE const HTTP_Hdr_Node &
-HTTP_HCodes::hcode (int type) const
-{
- const HTTP_Hdr_Node **hn = this->header_nodes_->find (type);
-
- // No error checking!
- return **hn;
-}
-
-ACE_INLINE const char *
-HTTP_Headers::header_token (int name) const
-{
- const HTTP_Hdr_Node **hn = this->header_nodes_->find (name);
- return ((hn && *hn) ? (const char *)**hn : 0);
-}
-
-ACE_INLINE const char *
-HTTP_Headers::header_strings (int name) const
-{
- const HTTP_Hdr_Node **hn = this->header_nodes_->find (name);
- return ((hn && *hn) ? (*hn)->format () : 0);
-}
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/http_request.cpp b/apps/JAWS/PROTOTYPE/HTTPU/http_request.cpp
deleted file mode 100644
index ac1c08028e0..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/http_request.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-// $Id$
-
-#include "HTTPU/http_request.h"
-#include "HTTPU/parse_http_request.h"
-
-void
-HTTP_Request::parse_line (void)
-{
- this->status_ = STATUS_OK;
-
- this->request_.init (this->line ());
- if (this->request_.error () != Parse_HTTP_Request::HTTPU_OK)
- {
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
- return;
- }
- if (this->request_.major_version () == 0)
- {
- this->no_headers_ = 1;
- return;
- }
-
- this->url_.init (this->request_.url ());
- if (this->url_.error () != 0)
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
-}
-
-int
-HTTP_Request::espouse_line (void)
-{
- int count;
-
- if (this->request_.major_version () == 0)
- {
- count = ACE_OS::sprintf (this->mb_->wr_ptr (), "%s /%s\r\n\r\n",
- this->request_.method_str (),
- this->url_.url_path ());
-
- if (count < 0)
- return -1;
-
- this->mb_->wr_ptr (count);
-
- return 1;
- }
-
- count = ACE_OS::sprintf (this->mb_->wr_ptr (), "%s /%s %s\r\n",
- this->request_.method_str (),
- this->url_.url_path (),
- this->request_.version ());
-
- if (count < 0)
- return -1;
-
- this->mb_->wr_ptr (count);
-
- if (this->url_.host () != 0)
- {
- JAWS_Header_Data *hd = this->headers ()->find ("Host");
- if (hd == 0)
- {
- count = ACE_OS::sprintf (this->mb_->wr_ptr (), "Host: %s\r\n",
- this->url_.host ());
-
- if (count < 0)
- return -1;
-
- this->mb_->wr_ptr (count);
- }
- }
-
- return 0;
-}
-
-void
-HTTP_Request::dump (void)
-{
- ACE_DEBUG ((LM_DEBUG, "===== BEGIN entera_HTTP_Request::dump =====\n"));
- HTTP_Base::dump ();
- this->request_.dump ();
- ACE_DEBUG ((LM_DEBUG, "===== END entera_HTTP_Request::dump =====\n"));
-}
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "HTTPU/http_request.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/http_request.h b/apps/JAWS/PROTOTYPE/HTTPU/http_request.h
deleted file mode 100644
index c04d08dabf6..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/http_request.h
+++ /dev/null
@@ -1,59 +0,0 @@
-// $Id$
-
-// There are two kinds of HTTP Requests in a proxy.
-// One is the kind you have to read in from the HTTP client.
-// The other is the kind you issue to the server.
-
-#ifndef HTTPU_HTTP_REQUEST_HPP
-#define HTTPU_HTTP_REQUEST_HPP
-
-#include "ace/Message_Block.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "JAWS/Parse_Headers.h"
-#include "HTTPU/http_export.h"
-#include "HTTPU/http_base.h"
-#include "HTTPU/parse_http_request.h"
-#include "HTTPU/parse_url.h"
-
-class HTTPU_Export HTTP_Request : public HTTP_Base
-{
-public:
- HTTP_Request (void);
- virtual ~HTTP_Request (void);
-
- Parse_HTTP_Request *request_line (void);
- // Returns the parsed request line.
-
- const Parse_HTTP_Request *request_line (void) const;
- // Returns the parsed request line.
-
- HTTP_Parse_URL *url (void);
- // Returns the parsed url.
-
- void dump (void);
-
-protected:
-
- virtual void parse_line (void);
- virtual int espouse_line (void);
- virtual void set_status (int);
-
-private:
- Parse_HTTP_Request request_;
- HTTP_Parse_URL url_;
-};
-
-#if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "HTTPU/http_request.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-
-#endif /* !defined (HTTPU_HTTP_REQUEST_HPP) */
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/http_request.i b/apps/JAWS/PROTOTYPE/HTTPU/http_request.i
deleted file mode 100644
index a6adeb98e92..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/http_request.i
+++ /dev/null
@@ -1,41 +0,0 @@
-// -*- c++ -*-
-// $Id$
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# undef ACE_INLINE
-# define ACE_INLINE
-#endif /* ACE_HAS_INLINED_OSCALLS */
-
-ACE_INLINE
-HTTP_Request::HTTP_Request (void)
-{
-}
-
-ACE_INLINE
-HTTP_Request::~HTTP_Request (void)
-{
-}
-
-ACE_INLINE Parse_HTTP_Request *
-HTTP_Request::request_line (void)
-{
- return &(this->request_);
-}
-
-ACE_INLINE const Parse_HTTP_Request *
-HTTP_Request::request_line (void) const
-{
- return &(this->request_);
-}
-
-ACE_INLINE HTTP_Parse_URL *
-HTTP_Request::url (void)
-{
- return &(this->url_);
-}
-
-ACE_INLINE void
-HTTP_Request::set_status (int s)
-{
- this->status_ = s;
-}
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/http_response.cpp b/apps/JAWS/PROTOTYPE/HTTPU/http_response.cpp
deleted file mode 100644
index 380d0155b0f..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/http_response.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-// $Id$
-
-#include "HTTPU/http_response.h"
-
-void
-HTTP_Response::parse_line (void)
-{
- this->response_.init (this->line ());
- if (this->response_.error () != Parse_HTTP_Response::HTTPU_OK)
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
-}
-
-int
-HTTP_Response::espouse_line (void)
-{
- int count;
- int status;
-
- if (this->status_ != (int)STATUS_OK)
- status = this->status_;
- else
- status = this->response_line ()->code ();
-
- count = ACE_OS::sprintf (this->mb_->wr_ptr (), "%s %d %s\r\n",
- "HTTP/1.1",
- status,
- (char *)(*HTTP_SCode::instance ())[status]);
- // Last arg is hard coded since we are suppose to report the
- // level of server we are, and not act like the level of the
- // client. This information should be obtained from the config.
-
- if (count < 0)
- return -1;
-
- this->mb_->wr_ptr (count);
- return 0;
-}
-
-void
-HTTP_Response::dump (void)
-{
- ACE_DEBUG ((LM_DEBUG, "===== BEGIN entera_HTTP_Response::dump =====\n"));
- HTTP_Base::dump ();
- ACE_DEBUG ((LM_DEBUG, "===== END entera_HTTP_Response::dump =====\n"));
-}
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "HTTPU/http_response.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/http_response.h b/apps/JAWS/PROTOTYPE/HTTPU/http_response.h
deleted file mode 100644
index 71b6cae2fae..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/http_response.h
+++ /dev/null
@@ -1,51 +0,0 @@
-// $Id$
-
-// There are two kinds of HTTP Responses in a proxy.
-// One is the kind you have to read in from the HTTP server.
-// The other is the kind you issue to the HTTP client.
-
-#ifndef HTTPU_HTTP_RESPONSE_HPP
-#define HTTPU_HTTP_RESPONSE_HPP
-
-#include "ace/Message_Block.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "JAWS/Parse_Headers.h"
-
-#include "HTTPU/http_export.h"
-#include "HTTPU/http_base.h"
-#include "HTTPU/parse_http_response.h"
-
-class HTTPU_Export HTTP_Response : public HTTP_Base
-{
-public:
- HTTP_Response (void);
- ~HTTP_Response (void);
-
- Parse_HTTP_Response *response_line (void);
- // Returns the parsed response line.
-
- void dump (void);
-
-protected:
-
- virtual void parse_line (void);
- virtual int espouse_line (void);
-
-private:
- Parse_HTTP_Response response_;
-};
-
-#if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "HTTPU/http_response.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-
-#endif /* !defined (HTTPU_HTTP_RESPONSE_HPP) */
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/http_response.i b/apps/JAWS/PROTOTYPE/HTTPU/http_response.i
deleted file mode 100644
index 9f4eb0d244f..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/http_response.i
+++ /dev/null
@@ -1,23 +0,0 @@
-// -*- c++ -*-
-// $Id$
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# undef ACE_INLINE
-# define ACE_INLINE
-#endif /* ACE_HAS_INLINED_OSCALLS */
-
-ACE_INLINE
-HTTP_Response::HTTP_Response (void)
-{
-}
-
-ACE_INLINE
-HTTP_Response::~HTTP_Response (void)
-{
-}
-
-ACE_INLINE Parse_HTTP_Response *
-HTTP_Response::response_line (void)
-{
- return &(this->response_);
-}
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/http_status.cpp b/apps/JAWS/PROTOTYPE/HTTPU/http_status.cpp
deleted file mode 100644
index 07009659fb7..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/http_status.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-// $Id$
-
-#include "HTTPU/http_status.h"
-
-const char *
-HTTP_SCode::table_ [HTTP_SCode::SC_TABLE_SIZE];
-
-HTTP_SCode_Node
-
- HTTP_SCode_Base::STATUS_OK (200, "OK"),
- HTTP_SCode_Base::STATUS_CREATED (201, "Created"),
- HTTP_SCode_Base::STATUS_ACCEPTED (202, "Accepted"),
- HTTP_SCode_Base::STATUS_NO_CONTENT (204, "No Content"),
- HTTP_SCode_Base::STATUS_MULTIPLE_CHOICES (300, "Multiple Choices"),
- HTTP_SCode_Base::STATUS_MOVED_PERMANENTLY (301, "Moved Permanently"),
- HTTP_SCode_Base::STATUS_MOVED_TEMPORARILY (302, "Moved Temporarily"),
- HTTP_SCode_Base::STATUS_NOT_MODIFIED (304, "Not Modified"),
- HTTP_SCode_Base::STATUS_INSUFFICIENT_DATA (399, "Insufficient Data"),
- HTTP_SCode_Base::STATUS_BAD_REQUEST (400, "Bad Request"),
- HTTP_SCode_Base::STATUS_UNAUTHORIZED (401, "Unauthorized"),
- HTTP_SCode_Base::STATUS_FORBIDDEN (403, "Forbidden"),
- HTTP_SCode_Base::STATUS_NOT_FOUND (404, "Not Found"),
- HTTP_SCode_Base::STATUS_INTERNAL_SERVER_ERROR (500, "Internal Server Error"),
- HTTP_SCode_Base::STATUS_NOT_IMPLEMENTED (501, "Not Implemented"),
- HTTP_SCode_Base::STATUS_BAD_GATEWAY (502, "Bad Gateway"),
- HTTP_SCode_Base::STATUS_SERVICE_UNAVAILABLE (503, "Service Unavailable"),
- HTTP_SCode_Base::STATUS_QUIT (599, "Quit"),
-
- HTTP_SCode_Base::DUMMY (0, 0);
-
-HTTP_SCode_Node::HTTP_SCode_Node (int code, const char *code_str)
- : code_ (code),
- code_str_ (code_str)
-{
- if ((HTTP_SCode::MIN_STATUS_CODE <= code)
- && (code <= HTTP_SCode::MAX_STATUS_CODE))
- HTTP_SCode::table_[code - HTTP_SCode::MIN_STATUS_CODE] = code_str;
-}
-
-const char *
-HTTP_SCode::operator[] (int i) const
-{
- const char *s = "Unknown";
-
- if (MIN_STATUS_CODE <= i && i <= MAX_STATUS_CODE)
- s = this->table_[i - MIN_STATUS_CODE];
-
- return s;
-}
-
-HTTP_SCode *
-HTTP_SCode::instance (void)
-{
- return HTTP_SCode_Singleton::instance ();
-}
-
-void
-HTTP_SCode::dump (void)
-{
- for (int i = 0; i < SC_TABLE_SIZE; i++)
- ACE_DEBUG ((LM_DEBUG, "%s\n", this->table_[i]));
-}
-
-HTTP_SCode::HTTP_SCode (void)
-{
- int i;
- for (i = 0; i < SC_TABLE_SIZE; i++)
- {
- if (this->table_[i] == 0)
- this->table_[i] = this->table_[(i/100) * 100];
- }
-}
-
-HTTP_SCode::~HTTP_SCode (void)
-{
-}
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "HTTPU/http_status.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton<HTTP_SCode, ACE_Thread_Mutex>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton<HTTP_SCode, ACE_Thread_Mutex>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/http_status.h b/apps/JAWS/PROTOTYPE/HTTPU/http_status.h
deleted file mode 100644
index c4d90657b15..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/http_status.h
+++ /dev/null
@@ -1,109 +0,0 @@
-// $Id$
-
-#ifndef HTTPU_HTTP_STATUS_HPP
-#define HTTPU_HTTP_STATUS_HPP
-
-#include "ace/Singleton.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "HTTPU/http_export.h"
-
-class HTTP_SCode_Base;
-
-class HTTPU_Export HTTP_SCode_Node
-// Constructor should be passed a string literal.
-{
- friend class HTTP_SCode_Base;
-
-public:
- operator int (void) const;
- operator const char * (void) const;
-
-private:
- HTTP_SCode_Node (int code, const char *code_str);
-
-private:
- int code_;
- const char *code_str_;
-};
-
-class HTTPU_Export HTTP_SCode_Base
-{
-public:
- static HTTP_SCode_Node STATUS_OK;
- static HTTP_SCode_Node STATUS_CREATED;
- static HTTP_SCode_Node STATUS_ACCEPTED;
- static HTTP_SCode_Node STATUS_NO_CONTENT;
- static HTTP_SCode_Node STATUS_MULTIPLE_CHOICES;
- static HTTP_SCode_Node STATUS_MOVED_PERMANENTLY;
- static HTTP_SCode_Node STATUS_MOVED_TEMPORARILY;
- static HTTP_SCode_Node STATUS_NOT_MODIFIED;
- static HTTP_SCode_Node STATUS_INSUFFICIENT_DATA;
- static HTTP_SCode_Node STATUS_BAD_REQUEST;
- static HTTP_SCode_Node STATUS_UNAUTHORIZED;
- static HTTP_SCode_Node STATUS_FORBIDDEN;
- static HTTP_SCode_Node STATUS_NOT_FOUND;
- static HTTP_SCode_Node STATUS_INTERNAL_SERVER_ERROR;
- static HTTP_SCode_Node STATUS_NOT_IMPLEMENTED;
- static HTTP_SCode_Node STATUS_BAD_GATEWAY;
- static HTTP_SCode_Node STATUS_SERVICE_UNAVAILABLE;
- static HTTP_SCode_Node STATUS_QUIT;
-
- enum
- {
- MIN_STATUS_CODE = 200,
- MAX_STATUS_CODE = 599
- };
-
-private:
- static HTTP_SCode_Node DUMMY;
-};
-
-class HTTPU_Export HTTP_SCode : public HTTP_SCode_Base
-{
- // = TITLE
- // Go from numeric status codes to descriptive strings.
- //
- friend class HTTP_SCode_Node;
- friend class ACE_Singleton<HTTP_SCode, ACE_SYNCH_MUTEX>;
-
-protected:
-
- HTTP_SCode (void);
- ~HTTP_SCode (void);
-
-public:
-
- const char * operator[] (int) const;
- // Return the reason string corresponding to a status code number.
-
- static HTTP_SCode *instance (void);
- // Return reference to the singleton.
-
- enum
- {
- SC_TABLE_SIZE = MAX_STATUS_CODE - MIN_STATUS_CODE + 1
- };
-
- void dump (void);
-
-private:
- static const char *table_[SC_TABLE_SIZE];
-};
-
-
-typedef ACE_Singleton<HTTP_SCode, ACE_SYNCH_MUTEX>
- HTTP_SCode_Singleton;
-
-#if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "HTTPU/http_status.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-#endif /* HTTPU_HTTP_STATUS_HPP */
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/http_status.i b/apps/JAWS/PROTOTYPE/HTTPU/http_status.i
deleted file mode 100644
index 0247ddeb738..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/http_status.i
+++ /dev/null
@@ -1,19 +0,0 @@
-// -*- c++ -*-
-// $Id$
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# undef ACE_INLINE
-# define ACE_INLINE
-#endif /* ACE_HAS_INLINED_OSCALLS */
-
-ACE_INLINE
-HTTP_SCode_Node::operator int (void) const
-{
- return this->code_;
-}
-
-ACE_INLINE
-HTTP_SCode_Node::operator const char * (void) const
-{
- return this->code_str_;
-}
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/parse_http_request.cpp b/apps/JAWS/PROTOTYPE/HTTPU/parse_http_request.cpp
deleted file mode 100644
index 6d897ff2dac..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/parse_http_request.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-// $Id$
-
-#include "HTTPU/parse_http_request.h"
-
-Parse_HTTP_Request::Parse_HTTP_Request (const char *request)
- : method_ (0),
- major_version_ (-1),
- minor_version_ (-1),
- version_ (0),
- url_ (0),
- request_ (0),
- error_ (0)
-{
- if (request != 0)
- this->init (request);
-}
-
-Parse_HTTP_Request::~Parse_HTTP_Request (void)
-{
- if (this->request_)
- ACE_OS::free (this->request_);
- this->request_ = 0;
- this->version_ = 0;
- this->url_ = 0;
-}
-
-void
-Parse_HTTP_Request::dump (void)
-{
- ACE_DEBUG ((LM_DEBUG, "%s %s %s\n",
- this->method_str (), this->url (), this->version ()));
-}
-
-void
-Parse_HTTP_Request::init (const char *request)
-{
- char *method;
-
- this->request_ = ACE_OS::strdup (request);
- if (this->request_ == 0)
- {
- this->error_ = NO_MEMORY;
- return;
- }
-
- char buf[BUFSIZ];
- int n = ::sscanf (this->request_, "%s %*s HTTP/%d.%d",
- buf,
- &(this->major_version_),
- &(this->minor_version_));
-
- if (n == 1 || n == 3)
- {
- char *p = this->request_;
-
- while (*p == ' ' || *p == '\t')
- p++;
-
- method = p++;
-
- while (*p != ' ' && *p != '\t')
- p++;
-
- *p++ = '\0';
-
- while (*p == ' ' || *p == '\t')
- p++;
-
- this->url_ = p;
-
- while (*p && !ACE_OS::strchr (" \t\r\n", *p))
- p++;
-
- *p++ = '\0';
-
- if (n == 1)
- {
- this->major_version_ = 0;
- this->minor_version_ = 9;
- }
- else
- {
- while (*p == ' ' || *p == '\t')
- p++;
-
- this->version_ = p;
-
- while (*p && !ACE_OS::strchr (" \t\r\n", *p))
- p++;
-
- *p++ = '\0';
- }
-
- if (ACE_OS::strcmp (method, "GET") == 0)
- this->method_ = &GET;
- else if (ACE_OS::strcmp (method, "HEAD") == 0)
- this->method_ = &HEAD;
- else if (ACE_OS::strcmp (method, "POST") == 0)
- this->method_ = &POST;
- else if (ACE_OS::strcmp (method, "PUT") == 0)
- this->method_ = &PUT;
- else if (ACE_OS::strcmp (method, "QUIT") == 0)
- this->method_ = &QUIT;
- else
- {
- this->method_ = &DUNNO;
- this->error_ = NOT_IMPLEMENTED;
- }
- }
- else
- this->error_ = BAD_REQUEST;
-}
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "HTTPU/parse_http_request.i"
-#endif /* ACE_HAS_INLINED_OS_CALLS */
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/parse_http_request.h b/apps/JAWS/PROTOTYPE/HTTPU/parse_http_request.h
deleted file mode 100644
index 26c83348e37..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/parse_http_request.h
+++ /dev/null
@@ -1,59 +0,0 @@
-// $Id$
-
-#ifndef HTTPU_PARSE_HTTP_REQUEST_H
-#define HTTPU_PARSE_HTTP_REQUEST_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "HTTPU/http_headers.h"
-
-class HTTPU_Export Parse_HTTP_Request : public HTTP_HCodes
-{
-public:
- Parse_HTTP_Request (const char *request = 0);
- ~Parse_HTTP_Request (void);
-
- void init (const char *request);
-
- int method (void) const;
- const char *method_str (void) const;
-
- int major_version (void) const;
- int minor_version (void) const;
-
- const char *version (void) const;
-
- const char *url (void) const;
-
- enum { HTTPU_OK, NO_MEMORY, BAD_REQUEST, NOT_IMPLEMENTED };
-
- int error (void) const;
- // 0 -> ok
-
- void dump (void);
-
-private:
-
- HTTP_Hdr_Node *method_;
- int major_version_;
- int minor_version_;
- char *version_;
- char *url_;
- char *request_;
- int error_;
-
-};
-
-#if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "HTTPU/parse_http_request.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-#endif /* !defined (HTTPU_PARSE_HTTP_REQUEST_H) */
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/parse_http_request.i b/apps/JAWS/PROTOTYPE/HTTPU/parse_http_request.i
deleted file mode 100644
index 3ef87d48479..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/parse_http_request.i
+++ /dev/null
@@ -1,49 +0,0 @@
-// -*- c++ -*-
-// $Id$
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# undef ACE_INLINE
-# define ACE_INLINE
-#endif /* ACE_HAS_INLINED_OSCALLS */
-
-ACE_INLINE int
-Parse_HTTP_Request::method (void) const
-{
- return (int) *this->method_;
-}
-
-ACE_INLINE const char *
-Parse_HTTP_Request::method_str (void) const
-{
- return (const char *) *this->method_;
-}
-
-ACE_INLINE int
-Parse_HTTP_Request::major_version (void) const
-{
- return this->major_version_;
-}
-
-ACE_INLINE int
-Parse_HTTP_Request::minor_version (void) const
-{
- return this->minor_version_;
-}
-
-ACE_INLINE const char *
-Parse_HTTP_Request::version (void) const
-{
- return this->version_ ? this->version_ : "HTTP/0.9";
-}
-
-ACE_INLINE const char *
-Parse_HTTP_Request::url (void) const
-{
- return this->url_;
-}
-
-ACE_INLINE int
-Parse_HTTP_Request::error (void) const
-{
- return this->error_;
-}
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/parse_http_response.cpp b/apps/JAWS/PROTOTYPE/HTTPU/parse_http_response.cpp
deleted file mode 100644
index 4f20ac688d5..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/parse_http_response.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-// $Id$
-
-#include "HTTPU/parse_http_response.h"
-
-Parse_HTTP_Response::Parse_HTTP_Response (const char *response)
- : code_ (200),
- code_str_ (0),
- major_version_ (0),
- minor_version_ (9),
- version_ (0),
- response_ (0),
- error_ (0)
-{
- if (response != 0)
- this->init (response);
-}
-
-Parse_HTTP_Response::~Parse_HTTP_Response (void)
-{
- if (this->response_)
- ACE_OS::free (this->response_);
- this->response_ = 0;
- this->code_str_ = 0;
- this->version_ = 0;
-}
-
-void
-Parse_HTTP_Response::init (const char *response)
-{
- this->response_ = ACE_OS::strdup (response);
- if (this->response_ == 0)
- {
- this->error_ = NO_MEMORY;
- return;
- }
-
- int n = ::sscanf (this->response_, "HTTP/%d.%d %d %*s",
- &(this->major_version_),
- &(this->minor_version_),
- &(this->code_));
-
- if (n == 3)
- {
- char *p = this->response_;
-
- while (*p == ' ' || *p == '\t')
- p++;
-
- this->version_ = p++;
-
- while (*p != ' ' && *p != '\t')
- p++;
-
- *p++ = '\0';
-
- while (*p == ' ' || *p == '\t')
- p++;
-
- this->code_str_ = p;
-
- while (*p && !ACE_OS::strchr (" \t\r\n", *p))
- p++;
-
- *p++ = '\0';
- }
- else
- this->error_ = BAD_RESPONSE;
-}
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "HTTPU/parse_http_response.i"
-#endif /* ACE_HAS_INLINED_OS_CALLS */
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/parse_http_response.h b/apps/JAWS/PROTOTYPE/HTTPU/parse_http_response.h
deleted file mode 100644
index 42fd5a31afe..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/parse_http_response.h
+++ /dev/null
@@ -1,56 +0,0 @@
-// $Id$
-
-#ifndef HTTPU_PARSE_HTTP_RESPONSE_H
-#define HTTPU_PARSE_HTTP_RESPONSE_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "HTTPU/http_export.h"
-
-class HTTPU_Export Parse_HTTP_Response
-{
-public:
- Parse_HTTP_Response (const char *response = 0);
- ~Parse_HTTP_Response (void);
-
- void init (const char *response);
-
- int code (void) const;
- const char *code_str (void) const;
-
- int major_version (void) const;
- int minor_version (void) const;
-
- const char *version (void) const;
-
- enum { HTTPU_OK, NO_MEMORY, BAD_RESPONSE };
-
- int error (void) const;
- // 0 -> ok
-
-private:
-
- int code_;
- char *code_str_;
- int major_version_;
- int minor_version_;
- char *version_;
- char *response_;
- int error_;
-
-};
-
-#if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "HTTPU/parse_http_response.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-
-#endif /* !defined (HTTPU_PARSE_HTTP_RESPONSE_H) */
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/parse_http_response.i b/apps/JAWS/PROTOTYPE/HTTPU/parse_http_response.i
deleted file mode 100644
index 57a694377e5..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/parse_http_response.i
+++ /dev/null
@@ -1,43 +0,0 @@
-// -*- c++ -*-
-// $Id$
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# undef ACE_INLINE
-# define ACE_INLINE
-#endif /* ACE_HAS_INLINED_OSCALLS */
-
-ACE_INLINE int
-Parse_HTTP_Response::code (void) const
-{
- return this->code_;
-}
-
-ACE_INLINE const char *
-Parse_HTTP_Response::code_str (void) const
-{
- return this->code_str_ ? this->code_str_ : "200";
-}
-
-ACE_INLINE int
-Parse_HTTP_Response::major_version (void) const
-{
- return this->major_version_;
-}
-
-ACE_INLINE int
-Parse_HTTP_Response::minor_version (void) const
-{
- return this->minor_version_;
-}
-
-ACE_INLINE const char *
-Parse_HTTP_Response::version (void) const
-{
- return this->version_ ? this->version_ : "HTTP/0.9";
-}
-
-ACE_INLINE int
-Parse_HTTP_Response::error (void) const
-{
- return this->error_;
-}
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/parse_url.cpp b/apps/JAWS/PROTOTYPE/HTTPU/parse_url.cpp
deleted file mode 100644
index 907321cba47..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/parse_url.cpp
+++ /dev/null
@@ -1,320 +0,0 @@
-// $Id$
-
-#include "ace/OS.h"
-#include "HTTPU/parse_url.h"
-
-HTTP_Parse_URL::HTTP_Parse_URL (const char *url)
- : url_ (0),
- scheme_ (0),
- user_ (0),
- passwd_ (0),
- host_ (0),
- port_ (-1),
- url_path_ (0),
- error_ (NONE),
- is_cgi_ (0)
-{
- this->init (url);
-}
-
-HTTP_Parse_URL::~HTTP_Parse_URL (void)
-{
- if (this->url_)
- ACE_OS::free (this->url_);
- this->url_ = 0;
- this->scheme_ = 0;
- this->user_ = 0;
- this->passwd_ = 0;
- this->host_ = 0;
- this->port_ = -1;
- this->url_path_ = 0;
-}
-
-
-void
-HTTP_Parse_URL::init( const char *url )
-{
- // Should really reset completely and cleanly here before
- // doing anything else!
- if ( url == 0 )
- return;
-
- if ( url_ )
- ACE_OS::free( url_ );
-
- url_ = ACE_OS::strdup( url );
- if ( url_ == 0 )
- {
- error_ = STRDUP;
- return;
- }
-
- if (ACE_OS::strlen (this->url_) > 3 && ACE_OS::strstr ("://", this->url_))
- {
- // Parse it out completely. Figure out what it is later.
- parse_url();
- }
- else
- {
- this->url_path_ = this->url_;
- this->is_cgi (this->url_path_);
- }
-}
-
-
-void
-HTTP_Parse_URL::parse_url (void)
-{
- char *p = this->url_;
-
- char *q;
- if ((q = ACE_OS::strchr (this->url_, '\r'))
- || (q = ACE_OS::strchr (this->url_, '\n')))
- *q = '\0';
-
- this->parse_scheme (p);
- if (*p == '\0')
- {
- this->error_ = SCHEME;
- return;
- }
-
- // Parse past "//"
- if (*p != '/' || *(p+1) != '/')
- {
- this->error_ = SLASHSLASH;
- return;
- }
- p += 2;
-
- this->parse_host (p);
-
- while (*p == '/')
- p++;
-
- if (*p == '\0')
- return;
-
- this->url_path_ = p;
- this->is_cgi (this->url_path_);
-}
-
-void
-HTTP_Parse_URL::parse_scheme (char *&p)
-{
- // Parse the scheme. The scheme is delimited by a ':'.
- if (*p != '\0')
- {
- this->scheme_ = p++;
- for (;;)
- {
- switch (*p)
- {
- case '\0':
- break;
- case ':':
- *p++ = '\0';
- break;
- default:
- p++;
- continue;
- }
- break;
- }
- }
-}
-
-void
-HTTP_Parse_URL::parse_host (char *&p)
-{
- // Parse user, password, host, port
- if (*p == '/' || *p == '\0')
- {
- this->set_port_from_scheme ();
- return;
- }
-
- char *at = 0;
- char *colon1 = 0;
- char *colon2 = 0;
- char *q = p;
- while (*q != '\0')
- {
- if (*q == '/')
- {
- *q = '\0';
- q++;
- break;
- }
- if (*q == ':')
- {
- if (colon1 == 0)
- {
- if (at != 0 && colon2 == 0)
- colon2 = q;
- else
- colon1 = q;
- }
- else
- {
- if (at != 0 && colon2 == 0)
- colon2 = q;
- }
- }
- if (*q == '@')
- {
- if (at == 0)
- at = q;
- }
- q++;
- }
-
- // no user, no port
- if (at == 0 && colon1 == 0)
- {
- if (*p != '\0' && *p != '/')
- this->host_ = p;
- }
-
- // no user, port
- else if (at == 0 && colon1 != 0)
- {
- if (p != colon1)
- this->host_ = p;
- *colon1++ = '\0';
- this->port_ = ACE_OS::atoi (colon1);
- }
-
- // user, no passwd, no port
- else if (at != 0 && colon1 == 0 && colon2 == 0)
- {
- this->user_ = p;
- *at++ = '\0';
- if (*at != '\0' && *at != '/')
- this->host_ = at;
- }
-
- // user, no passwd, port
- else if (at != 0 && colon1 == 0 && colon2 != 0)
- {
- this->user_ = p;
- *at++ = '\0';
- if (at != colon2)
- this->host_ = at;
- *colon2++ = '\0';
- this->port_ = ACE_OS::atoi (colon2);
- }
-
- // user, passwd, no port
- else if (at != 0 && colon1 != 0 && colon2 == 0)
- {
- this->user_ = p;
- *colon1++ = '\0';
- this->passwd_ = colon1;
- *at++ = '\0';
- if (*at != '\0')
- this->host_ = at;
- }
-
- // user, passwd, and port
- else if (at != 0 && colon1 != 0 && colon2 != 0)
- {
- this->user_ = p;
- *colon1++ = '\0';
- this->passwd_ = colon1;
- *at++ = '\0';
- if (at != colon2)
- this->host_ = at;
- *colon2++ = '\0';
- this->port_ = ACE_OS::atoi (colon2);
- }
-
- // impossible!
- else
- {
- ACE_ERROR ((LM_ERROR, "uh oh!\n"));
- p = q;
- return;
- }
-
- this->set_port_from_scheme ();
- p = q;
-}
-
-void
-HTTP_Parse_URL::set_port_from_scheme (void)
-{
- if (ACE_OS::strcmp (this->scheme_, "ftp") == 0)
- {
- if (this->port_ == -1)
- this->port_ = 21;
- if (this->user_ == 0)
- {
- this->user_ = "anonymous";
-
- // *** need something better here
- this->passwd_ = "a@b.c";
- }
- }
- else if (ACE_OS::strcmp (this->scheme_, "http") == 0)
- {
- if (this->port_ == -1)
- this->port_ = 80;
- }
-}
-
-const char *
-HTTP_Parse_URL::scheme (void) const
-{
- return this->scheme_;
-}
-
-const char *
-HTTP_Parse_URL::user (void) const
-{
- return this->user_;
-}
-
-const char *
-HTTP_Parse_URL::passwd (void) const
-{
- return this->passwd_;
-}
-
-const char *
-HTTP_Parse_URL::host (void) const
-{
- return this->host_;
-}
-
-int
-HTTP_Parse_URL::port (void) const
-{
- return this->port_;
-}
-
-const char *
-HTTP_Parse_URL::url_path (void) const
-{
- return this->url_path_ ? this->url_path_ : "";
-}
-
-void
-HTTP_Parse_URL::is_cgi (const char *path)
-{
- int yes;
-
- yes = (ACE_OS::strchr (path, '?') != 0);
- if (!yes && (ACE_OS::strlen (path) >= 3))
- yes = (ACE_OS::strstr (path, "cgi") != 0);
- if (!yes)
- yes = (ACE_OS::strstr (path, "asp") != 0);
-
- this->is_cgi_ = yes;
-}
-
-int
-HTTP_Parse_URL::is_cgi (void) const
-{
- return this->is_cgi_;
-}
diff --git a/apps/JAWS/PROTOTYPE/HTTPU/parse_url.h b/apps/JAWS/PROTOTYPE/HTTPU/parse_url.h
deleted file mode 100644
index 64260edd2a8..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTPU/parse_url.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef HTTPU_HTTP_PARSE_H
-#define HTTPU_HTTP_PARSE_H
-
-#include "HTTPU/http_export.h"
-
-class HTTPU_Export HTTP_Parse_URL
-{
- // CAVEAT:
-
- // The user of the class is responsible for testing the difference
- // between a missing username versus an empty one. Same goes for
- // password The RFC (1738) makes the differentiation for username
- // and password. If the hostname is missing (or empty), this class
- // always returns a null value for the host.
-
-public:
- HTTP_Parse_URL (const char *url = 0);
- ~HTTP_Parse_URL (void);
-
- void init (const char *url);
-
- enum URL_SCHEME { HTTP, FTP };
-
- const char *scheme (void) const;
- const char *user (void) const;
- const char *passwd (void) const;
- const char *host (void) const;
- int port (void) const;
- const char *url_path (void) const;
-
- enum URL_ERROR { NONE, STRDUP, SCHEME, SLASHSLASH };
-
- int error (void) const { return( error_ ); }
-
- int is_cgi (void) const;
-
-private:
- void parse_url (void);
- void parse_scheme (char *&p);
- void parse_host (char *&p);
- void parse_url_path (char *&p);
- void is_cgi (const char *path);
-
- void set_port_from_scheme (void);
-
-private:
- char *url_;
-
- char *scheme_;
- char *user_;
- char *passwd_;
- char *host_;
- int port_;
- char *url_path_;
-
- int error_;
- int is_cgi_;
-};
-
-#endif /* !defined (HTTPU_HTTP_PARSE_H) */
diff --git a/apps/JAWS/PROTOTYPE/HTTP_10.cpp b/apps/JAWS/PROTOTYPE/HTTP_10.cpp
deleted file mode 100644
index 60ebdc8b17f..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTP_10.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-// $Id$
-
-#include "HTTP_10.h"
-
-#include "JAWS/JAWS.h"
-
-ACE_RCSID(PROTOTYPE, HTTP_10, "$Id$")
-
-char *
-JAWS_HTTP_10_Helper::HTTP_decode_string (char *path)
-{
- // replace the percentcodes with the actual character
- int i, j;
- char percentcode[3];
-
- for (i = j = 0; path[i] != '\0'; i++, j++)
- {
- if (path[i] == '%')
- {
- percentcode[0] = path[++i];
- percentcode[1] = path[++i];
- percentcode[2] = '\0';
- path[j] = (char) ACE_OS::strtol (percentcode, (char **) 0, 16);
- }
- else
- path[j] = path[i];
- }
-
- path[j] = path[i];
-
- return path;
-}
diff --git a/apps/JAWS/PROTOTYPE/HTTP_10.h b/apps/JAWS/PROTOTYPE/HTTP_10.h
deleted file mode 100644
index 382e0d7a563..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTP_10.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_HTTP_10_H
-#define JAWS_HTTP_10_H
-
-#include "ace/RB_Tree.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "JAWS/Pipeline_Tasks.h"
-
-// Forward declaration
-class JAWS_HTTP_10_Request;
-
-// Reading the initial request
-
-class JAWS_HTTP_10_Read_Task : public JAWS_Pipeline_Handler
-{
-public:
- JAWS_HTTP_10_Read_Task (void);
- virtual ~JAWS_HTTP_10_Read_Task (void);
-
- virtual int handle_put (JAWS_Data_Block *data, ACE_Time_Value *tv);
-
-private:
-};
-
-// Parsing the request
-
-class JAWS_HTTP_10_Parse_Task : public JAWS_Pipeline_Handler
-{
-public:
- JAWS_HTTP_10_Parse_Task (void);
- virtual ~JAWS_HTTP_10_Parse_Task (void);
-
- virtual int handle_put (JAWS_Data_Block *data, ACE_Time_Value *tv);
-
-};
-
-// Write the response
-
-class JAWS_HTTP_10_Write_Task : public JAWS_Pipeline_Handler
-{
-public:
- JAWS_HTTP_10_Write_Task (void);
- virtual ~JAWS_HTTP_10_Write_Task (void);
-
- virtual int handle_put (JAWS_Data_Block *data, ACE_Time_Value *tv);
-
-private:
-};
-
-// Helpers
-
-class JAWS_HTTP_10_Helper
-// Static functions to enhance the lives of HTTP programmers everywhere.
-{
-public:
-
- static char *HTTP_decode_string (char *path);
- // Decode '%' escape codes in a URI
-
-};
-
-#endif /* !defined (JAWS_HTTP_10_H) */
diff --git a/apps/JAWS/PROTOTYPE/HTTP_10_Parse.cpp b/apps/JAWS/PROTOTYPE/HTTP_10_Parse.cpp
deleted file mode 100644
index ad104a993e9..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTP_10_Parse.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-// $Id$
-
-#include "ace/streams.h"
-
-#include "HTTP_10.h"
-
-#include "JAWS/JAWS.h"
-#include "JAWS/IO.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/Policy.h"
-
-#include "HTTP_10_Request.h"
-
-ACE_RCSID(PROTOTYPE, HTTP_10_Parse, "$Id$")
-
-// --------------- PARSE TASK ----------------------
-
-JAWS_HTTP_10_Parse_Task::JAWS_HTTP_10_Parse_Task (void)
-{
-}
-
-JAWS_HTTP_10_Parse_Task::~JAWS_HTTP_10_Parse_Task (void)
-{
-}
-
-int
-JAWS_HTTP_10_Parse_Task::handle_put (JAWS_Data_Block *data, ACE_Time_Value *)
-{
- JAWS_TRACE ("JAWS_HTTP_10_Parse_Task::handle_put");
-
- JAWS_IO_Handler *handler = data->io_handler ();
- JAWS_Dispatch_Policy *policy = this->policy ();
- if (policy == 0) policy = data->policy ();
- JAWS_IO *io = policy->io ();
-
- JAWS_HTTP_10_Request *info;
-
- if (data->payload ())
- info = ACE_reinterpret_cast (JAWS_HTTP_10_Request *, data->payload ());
- else
- {
- info = new JAWS_HTTP_10_Request;
- if (info == 0)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "JAWS_HTTP_10_Parse_Task::handle_put"));
- return -1;
- }
- data->payload (ACE_static_cast (void *, info));
- }
-
- while (info->receive (*(ACE_Message_Block *)data) == 0)
- {
- int next_read_size = data->space ();
-
- if (next_read_size == 0)
- {
- // Set payload to reflect "request too long"
- break;
- }
-
- io->read (handler, data, next_read_size);
- switch (handler->status ())
- {
- case JAWS_IO_Handler::READ_OK:
- // Behaved synchronously, reiterate
- continue;
- case JAWS_IO_Handler::READ_ERROR:
- case JAWS_IO_Handler::READ_ERROR_A:
- return -1;
- default:
- // This needs to be a value that tells the framework that
- // the call is asynchronous, but that we should remain in
- // the current task state.
- return 2;
- }
- }
-
- // request completely parsed
- info->dump ();
-
- return 0;
-}
diff --git a/apps/JAWS/PROTOTYPE/HTTP_10_Read.cpp b/apps/JAWS/PROTOTYPE/HTTP_10_Read.cpp
deleted file mode 100644
index 868147a1d56..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTP_10_Read.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-// $Id$
-
-#include "HTTP_10.h"
-
-#include "JAWS/JAWS.h"
-#include "JAWS/IO.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/Policy.h"
-
-ACE_RCSID(PROTOTYPE, HTTP_10_Read, "$Id$")
-
-// --------------- READ TASK ----------------------
-
-JAWS_HTTP_10_Read_Task::JAWS_HTTP_10_Read_Task (void)
-{
-}
-
-JAWS_HTTP_10_Read_Task::~JAWS_HTTP_10_Read_Task (void)
-{
-}
-
-int
-JAWS_HTTP_10_Read_Task::handle_put (JAWS_Data_Block *data, ACE_Time_Value *)
-{
- JAWS_TRACE ("JAWS_HTTP_10_Read_Task::handle_put");
-
- JAWS_IO_Handler *handler = data->io_handler ();
- JAWS_Dispatch_Policy *policy = this->policy ();
- if (policy == 0) policy = data->policy ();
-
- JAWS_IO *io = policy->io ();
-
- if (data->length () > 0)
- {
- if (data->rd_ptr ()[0] != '\0')
- {
- JAWS_TRACE ("JAWS_HTTP_10_Read_Task::handle_put, have data");
- return 0;
- }
- }
- data->rd_ptr (data->wr_ptr ());
- data->crunch ();
-
- io->read (handler, data, data->size ());
- switch (handler->status ())
- {
- case JAWS_IO_Handler::READ_OK:
- {
- JAWS_TRACE ("JAWS_HTTP_10_Read_Task::handle_put, READ_OK");
- return 0;
- }
- break;
- case JAWS_IO_Handler::READ_ERROR:
- case JAWS_IO_Handler::READ_ERROR_A:
- {
- JAWS_TRACE ("JAWS_HTTP_10_Read_Task::handle_put, READ_ERROR");
- return -1;
- }
- default:
- break;
- }
-
- return 1;
-}
diff --git a/apps/JAWS/PROTOTYPE/HTTP_10_Request.cpp b/apps/JAWS/PROTOTYPE/HTTP_10_Request.cpp
deleted file mode 100644
index a6b3bce678b..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTP_10_Request.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-// $Id$
-
-#include "JAWS/JAWS.h"
-#include "HTTP_10_Request.h"
-
-ACE_RCSID(PROTOTYPE, HTTP_10_Request, "$Id$")
-
-static int dummy;
-
-JAWS_HTTP_10_Request::JAWS_HTTP_10_Request (void)
- : path_ (0)
-{
-}
-
-JAWS_HTTP_10_Request::~JAWS_HTTP_10_Request (void)
-{
- ACE_OS::free (this->path_);
- this->path_ = 0;
-}
-
-const char *
-JAWS_HTTP_10_Request::method (void) const
-{
- return this->request_line ()->method_str ();
-}
-
-const char *
-JAWS_HTTP_10_Request::uri (void) const
-{
- return this->request_line ()->url ();
-}
-
-const char *
-JAWS_HTTP_10_Request::version (void) const
-{
- return this->request_line ()->version ();
-}
-
-int
-JAWS_HTTP_10_Request::type (void) const
-{
- return this->request_line ()->method ();
-}
-
-const char *
-JAWS_HTTP_10_Request::path (void) const
-{
- if (this->path_ == 0)
- {
- JAWS_HTTP_10_Request *mutable_this = (JAWS_HTTP_10_Request *)this;
- mutable_this->path (this->uri ());
- }
- return this->path_;
-}
-
-void
-JAWS_HTTP_10_Request::set_status (int s)
-{
- HTTP_Request::set_status (s);
-}
-
-void
-JAWS_HTTP_10_Request::path (const char *uri_string)
-{
- char const *file_name = uri_string;
- char buf[MAXPATHLEN + 1];
- buf[0] = '\0';
-
- if (file_name == 0) return;
-
- if (*file_name == '/')
- {
- file_name++;
- if (*file_name == '~')
- {
- char *ptr = buf;
-
- while (*++file_name && *file_name != '/')
- *ptr++ = *file_name;
-
- *ptr = '\0';
-
- if (ptr == buf)
- ACE_OS::strcpy (buf, ACE_OS::getenv ("HOME"));
- else
- {
-#if !defined (ACE_WIN32) && !defined (VXWORKS)
- char pw_buf[BUFSIZ];
- struct passwd pw_struct;
- if (ACE_OS::getpwnam_r (buf, &pw_struct, pw_buf, sizeof (pw_buf))
- == 0)
- return;
- ACE_OS::strcpy (buf, pw_struct.pw_dir);
-#endif /* NOT ACE_WIN32 AND NOT VXWORKS */
- }
-
- ACE_OS::strcat (buf, "/");
-#if 0
- ACE_OS::strcat (buf, HTTP_Config::instance ()->user_dir ());
-#else
- ACE_OS::strcat (buf, ".www-docs");
-#endif
- ACE_OS::strcat (buf, file_name);
- }
- else
- {
- // With a starting '/' but no '~'
-#if 0
- ACE_OS::strcat (buf, HTTP_Config::instance ()->document_root ());
-#else
- ACE_OS::strcat (buf, ".");
-#endif
- ACE_OS::strcat (buf, file_name - 1);
- }
- }
-
- if (*buf != '\0')
- this->path_ = ACE_OS::strdup (buf);
-}
diff --git a/apps/JAWS/PROTOTYPE/HTTP_10_Request.h b/apps/JAWS/PROTOTYPE/HTTP_10_Request.h
deleted file mode 100644
index c6b204abe98..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTP_10_Request.h
+++ /dev/null
@@ -1,31 +0,0 @@
-// -*- c++ -*-
-// $Id$
-
-#ifndef JAWS_HTTP_10_REQUEST_H
-#define JAWS_HTTP_10_REQUEST_H
-
-#include "HTTPU/http_request.h"
-
-
-class JAWS_HTTP_10_Request : public HTTP_Request, public HTTP_HCodes
-{
-public:
-
- JAWS_HTTP_10_Request (void);
- ~JAWS_HTTP_10_Request (void);
-
- int type (void) const;
- const char * method (void) const;
- const char * uri (void) const;
- const char * version (void) const;
-
- const char * path (void) const;
- void path (const char *);
- void set_status (int);
-
-private:
-
- char *path_;
-};
-
-#endif /* JAWS_HTTP_10_REQUEST_H */
diff --git a/apps/JAWS/PROTOTYPE/HTTP_10_Write.cpp b/apps/JAWS/PROTOTYPE/HTTP_10_Write.cpp
deleted file mode 100644
index e22bfef849b..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTP_10_Write.cpp
+++ /dev/null
@@ -1,160 +0,0 @@
-// $Id$
-
-#include "ace/OS.h"
-
-#include "JAWS/JAWS.h"
-#include "JAWS/IO.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/Policy.h"
-
-#include "HTTP_10.h"
-
-#include "HTTP_10_Request.h"
-
-ACE_RCSID(PROTOTYPE, HTTP_10_Write, "$Id$")
-
-// --------------- WRITE TASK ----------------------
-
-JAWS_HTTP_10_Write_Task::JAWS_HTTP_10_Write_Task (void)
-{
-}
-
-JAWS_HTTP_10_Write_Task::~JAWS_HTTP_10_Write_Task (void)
-{
-}
-
-int
-JAWS_HTTP_10_Write_Task::handle_put (JAWS_Data_Block *data, ACE_Time_Value *)
-{
- JAWS_TRACE ("JAWS_HTTP_10_Write_Task::handle_put");
-
- JAWS_IO_Handler *handler = data->io_handler ();
-
- JAWS_Dispatch_Policy *policy = this->policy ();
- if (policy == 0) policy = data->policy ();
-
- JAWS_IO *io = policy->io ();
-
- JAWS_HTTP_10_Request *info = ACE_static_cast (JAWS_HTTP_10_Request *,
- data->payload ());
-
- if (info->status () == (int) JAWS_HTTP_10_Request::STATUS_QUIT)
- {
- data->payload (0);
- delete info;
- return -3;
- }
-
-#if 0
- ACE_DEBUG ((LM_DEBUG, " (%t) request %s::%s::%s parsed\n",
- (info->method () ? info->method () : "-"),
- (info->uri () ? info->uri () : "="),
- (info->version () ? info->version () : "HTTP/0.9")));
-#endif
-
- if (info->type () != (int) JAWS_HTTP_10_Request::GET)
- info->set_status (JAWS_HTTP_10_Request::STATUS_NOT_IMPLEMENTED);
-
- if (info->type () == (int) JAWS_HTTP_10_Request::QUIT)
- info->set_status (JAWS_HTTP_10_Request::STATUS_QUIT);
-
- if (info->status () != (int) JAWS_HTTP_10_Request::STATUS_OK)
- {
- JAWS_TRACE ("JAWS_HTTP_10_Write_Task::handle_put, ! STATUS OK");
-
- char msg[] =
- "<html><head><title>HTTP/1.0 500 Internal Server Error</title>"
- "<body><h1>Server Error</h1>HTTP/1.0 500 Internal Server Error"
- "</body></html>";
-
- io->send_error_message (handler, msg, sizeof (msg));
- switch (handler->status ())
- {
- case JAWS_IO_Handler::WRITE_OK:
- case JAWS_IO_Handler::WRITE_OK_A:
- if (info->status () == (int) JAWS_HTTP_10_Request::STATUS_QUIT)
- {
- data->payload (0);
- delete info;
- return -3;
- }
-
- data->payload (0);
- delete info;
- return 0;
-
- case JAWS_IO_Handler::WRITE_ERROR:
- case JAWS_IO_Handler::WRITE_ERROR_A:
- data->payload (0);
- delete info;
- return -1;
-
- default:
- return 2;
- }
-
- return 2;
- }
- else
- {
- if (ACE_OS::strcmp (info->version (), "HTTP/0.9") == 0)
- io->transmit_file (handler,
- info->path (),
- "",
- 0,
- "",
- 0);
- else
- io->transmit_file (handler,
- info->path (),
- "HTTP/1.0 200 Ok\r\n\r\n",
- 19,
- "",
- 0);
-
- switch (handler->status ())
- {
- case JAWS_IO_Handler::TRANSMIT_OK_A:
- {
- JAWS_TRACE ("JAWS_HTTP_10_Write_Task::handle_put, OK_A");
- data->payload (0);
- delete info;
- return 1;
- }
-
- case JAWS_IO_Handler::TRANSMIT_OK:
- {
- JAWS_TRACE ("JAWS_HTTP_10_Write_Task::handle_put, OK");
- data->payload (0);
- delete info;
- return 0;
- }
- case JAWS_IO_Handler::TRANSMIT_ERROR:
- {
- JAWS_TRACE ("JAWS_HTTP_10_Write_Task::handle_put, ERROR");
- data->payload (0);
- delete info;
- return 0;
- }
- case JAWS_IO_Handler::TRANSMIT_ERROR_A:
- {
- JAWS_TRACE ("JAWS_HTTP_10_Write_Task::handle_put, ERROR_A");
- data->payload (0);
- delete info;
- return 1;
- }
- default:
- {
- JAWS_TRACE ("JAWS_HTTP_10_Write_Task::handle_put, DEFAULT");
- data->payload (0);
- delete info;
- return 1;
- }
- }
-
- }
-
- data->payload (0);
- delete info;
- return -1;
-}
diff --git a/apps/JAWS/PROTOTYPE/HTTP_Policy.cpp b/apps/JAWS/PROTOTYPE/HTTP_Policy.cpp
deleted file mode 100644
index b319668142d..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTP_Policy.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-// $Id$
-
-#include "HTTP_Policy.h"
-
-ACE_RCSID(PROTOTYPE, HTTP_Policy, "$Id$")
-
-HTTP_Policy::HTTP_Policy (JAWS_Concurrency_Base *concurrency)
- : concurrency_ (concurrency)
-{
-}
-
-JAWS_Concurrency_Base *
-HTTP_Policy::update (void *)
-{
- /* for now, we always return the same concurrency strategy */
- return this->concurrency_;
-}
diff --git a/apps/JAWS/PROTOTYPE/HTTP_Policy.h b/apps/JAWS/PROTOTYPE/HTTP_Policy.h
deleted file mode 100644
index 873b30f5070..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTP_Policy.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef HTTP_POLICY_H
-#define HTTP_POLICY_H
-
-#include "JAWS/Concurrency.h"
-#include "JAWS/Policy.h"
-
-/* create a policy */
-class HTTP_Policy : public JAWS_Dispatch_Policy
-{
-public:
- HTTP_Policy (JAWS_Concurrency_Base *concurrency);
- virtual JAWS_Concurrency_Base * update (void *state = 0);
-
-private:
- JAWS_Concurrency_Base *concurrency_;
-};
-
-
-#endif /* !defined (HTTP_POLICY_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Assoc_Array.cpp b/apps/JAWS/PROTOTYPE/JAWS/Assoc_Array.cpp
deleted file mode 100644
index 0360fad6beb..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Assoc_Array.cpp
+++ /dev/null
@@ -1,274 +0,0 @@
-// $Id$
-
-#ifndef JAWS_ASSOC_ARRAY_CPP
-#define JAWS_ASSOC_ARRAY_CPP
-
-#include "ace/inc_user_config.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "JAWS/Assoc_Array.h"
-
-ACE_RCSID(JAWS, Assoc_Array, "$Id$")
-
-template <class KEY, class DATA>
-JAWS_Assoc_Array<KEY,DATA>::JAWS_Assoc_Array (int maxsize)
- : k_array_ (0),
- d_array_ (0),
- maxsize_ (maxsize)
-{
- typedef void * ptr_type;
-
- this->k_array_ = ACE_reinterpret_cast(KEY **, new ptr_type[this->maxsize_]);
- if (this->k_array_ == 0)
- {
- this->maxsize_ = 0;
- return;
- }
-
- this->d_array_ = ACE_reinterpret_cast(DATA **, new ptr_type[this->maxsize_]);
- if (this->d_array_ == 0)
- {
- delete[] this->k_array_;
- this->maxsize_ = 0;
- return;
- }
-
- for (int i = 0; i < this->maxsize_; i++)
- {
- this->k_array_[i] = 0;
- this->d_array_[i] = 0;
- }
-}
-
-template <class KEY, class DATA>
-JAWS_Assoc_Array<KEY,DATA>::~JAWS_Assoc_Array (void)
-{
- this->clear ();
-
- delete[] ACE_reinterpret_cast(void **, this->k_array_);
- delete[] ACE_reinterpret_cast(void **, this->d_array_);
-
- this->k_array_ = 0;
- this->d_array_ = 0;
-}
-
-template <class KEY, class DATA> int
-JAWS_Assoc_Array<KEY,DATA>::index (const KEY &k)
-{
- return this->find_i (k);
-}
-
-template <class KEY, class DATA> DATA *
-JAWS_Assoc_Array<KEY,DATA>::find (const KEY &k)
-{
- int i = this->find_i (k);
-
- return (i < this->maxsize_) ? this->d_array_[i] : 0;
-}
-
-template <class KEY, class DATA> DATA *
-JAWS_Assoc_Array<KEY,DATA>::find (int i)
-{
- return ((0 <= i) && (i < this->maxsize_)) ? this->d_array_[i] : 0;
-}
-
-template <class KEY, class DATA> DATA *
-JAWS_Assoc_Array<KEY,DATA>::insert (const KEY &k, const DATA &d)
-{
- int i = this->find_i (k);
-
- if (i == this->maxsize_)
- return 0;
-
- KEY *&kk = this->k_array_[i];
- DATA *&dd = this->d_array_[i];
-
- if (kk == 0)
- {
- dd = new DATA (d);
- if (dd == 0)
- return 0;
-
- KEY *kkk = new KEY (k);
- if (kkk == 0)
- {
- delete dd;
- return 0;
- }
- kk = kkk;
- }
-
- return dd;
-}
-
-template <class KEY, class DATA> int
-JAWS_Assoc_Array<KEY,DATA>::remove (const KEY &k)
-{
- int i = this->find_i (k);
-
- if (i == this->maxsize_)
- return 0;
-
- KEY *&kk = this->k_array_[i];
- DATA *&dd = this->d_array_[i];
-
- if (kk != 0)
- {
- KEY *kkk = kk;
- kk = 0;
- delete kkk;
- delete dd;
- dd = 0;
- return 1;
- }
-
- return 0;
-}
-
-template <class KEY, class DATA> void
-JAWS_Assoc_Array<KEY,DATA>::clear (void)
-{
- for (int i = 0; i < this->maxsize_; i++)
- {
- if (this->k_array_[i] != 0)
- {
- delete this->k_array_[i];
- delete this->d_array_[i];
-
- this->k_array_[i] = 0;
- this->d_array_[i] = 0;
- }
- }
-}
-
-template <class KEY, class DATA> int
-JAWS_Assoc_Array<KEY,DATA>::find_i (const KEY &k)
-{
- int j = this->maxsize_;
-
- for (int i = 0; i < this->maxsize_; i++)
- {
- KEY *kk = this->k_array_[i];
- if (kk)
- {
- if (*kk == k)
- return i;
- }
- else if (j == this->maxsize_)
- j = i;
- }
- return j;
-}
-
-template <class KEY, class DATA>
-JAWS_Assoc_Array_Iterator<KEY,DATA>::
-JAWS_Assoc_Array_Iterator (const JAWS_Assoc_Array<KEY, DATA> &aa)
- : aa_ (aa),
- i_ (0),
- j_ (0)
-{
-}
-
-template <class KEY, class DATA>
-JAWS_Assoc_Array_Iterator<KEY,DATA>::~JAWS_Assoc_Array_Iterator (void)
-{
-}
-
-template <class KEY, class DATA> KEY *
-JAWS_Assoc_Array_Iterator<KEY,DATA>::key (void)
-{
- return this->aa_.k_array_[this->i_];
-}
-
-template <class KEY, class DATA> DATA *
-JAWS_Assoc_Array_Iterator<KEY,DATA>::data (void)
-{
- return this->aa_.d_array_[this->i_];
-}
-
-template <class KEY, class DATA> int
-JAWS_Assoc_Array_Iterator<KEY,DATA>::first (void)
-{
- this->i_ = 0;
- for (this->j_ = 0; this->j_ < this->aa_.maxsize_; this->j_++)
- {
- if (this->aa_.k_array_[this->j_] != 0)
- break;
- }
- return this->next ();
-}
-
-template <class KEY, class DATA> int
-JAWS_Assoc_Array_Iterator<KEY,DATA>::last (void)
-{
- this->j_ = this->aa_.maxsize_;
- for (this->i_ = this->aa_.maxsize_; this->i_ > 0; this->i_--)
- {
- if (this->aa_.k_array_[this->i_-1] != 0)
- break;
- }
-
- return (this->i_-- > 0);
-}
-
-template <class KEY, class DATA> int
-JAWS_Assoc_Array_Iterator<KEY,DATA>::next (void)
-{
- if (this->j_ < this->aa_.maxsize_)
- {
- this->i_ = this->j_;
- for (this->j_++; this->j_ < this->aa_.maxsize_; this->j_++)
- {
- if (this->aa_.k_array_[this->j_] != 0)
- break;
- }
- }
-
- return (this->i_ < this->aa_.maxsize_);
-}
-
-template <class KEY, class DATA> int
-JAWS_Assoc_Array_Iterator<KEY,DATA>::previous (void)
-{
- if (this->i_ > 0)
- {
- for (this->j_ = this->i_; this->i_ > 0; this->i_--)
- {
- if (this->aa_.k_array_[this->i_-1] != 0)
- break;
- }
- }
-
- if (this->i_ == 0)
- this->first ();
- else
- this->i_--;
-
- return 1;
-}
-
-template <class KEY, class DATA> int
-JAWS_Assoc_Array_Iterator<KEY,DATA>::is_done (void)
-{
- return (this->j_ == this->aa_.maxsize_);
-}
-
-template <class KEY, class DATA>
-JAWS_Assoc_Array_Iterator<KEY,DATA>::
-JAWS_Assoc_Array_Iterator (const JAWS_Assoc_Array_Iterator<KEY, DATA> &aai)
- : aa_ (aai.aa_),
- i_ (aai.i_),
- j_ (aai.j_)
-{
-}
-
-template <class KEY, class DATA> void
-JAWS_Assoc_Array_Iterator<KEY,DATA>::
-operator= (const JAWS_Assoc_Array_Iterator<KEY, DATA> &aai)
-{
-}
-
-#endif /* !defined (JAWS_ASSOC_ARRAY_CPP) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Assoc_Array.h b/apps/JAWS/PROTOTYPE/JAWS/Assoc_Array.h
deleted file mode 100644
index 8245cd67028..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Assoc_Array.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_ASSOC_ARRAY_H
-#define JAWS_ASSOC_ARRAY_H
-
-template <class KEY, class DATA> class JAWS_Assoc_Array_Iterator;
-
-template <class KEY, class DATA>
-class JAWS_Assoc_Array
-{
-
-friend JAWS_Assoc_Array_Iterator<KEY, DATA>;
-
-public:
- JAWS_Assoc_Array (int maxsize = 1024);
- ~JAWS_Assoc_Array (void);
-
- int index (const KEY &k);
- // Returns the index into the array associated with key k
- // Returns -1 if not found.
-
- DATA * find (const KEY &k);
- // Returns the data associated with key k. 0 if not found.
-
- DATA * find (int i);
- // Returns the data associated with array index i. Returns 0 if the
- // index is invalid.
-
- DATA * insert (const KEY &k, const DATA &d);
- // Inserts a *copy* of the key and data into the associated array.
- // Both KEY and DATA must have well defined semantics for copy
- // construction. This method returns a pointer to the inserted item
- // copy, or 0 if an error occurred. NOTE: if an identical key
- // already exists in the tree, no new item is created, and the
- // returned pointer addresses the existing item associated with the
- // existing key.
-
- int remove (const KEY &k);
- // Removes the item associated with the given key from the
- // tree and destroys it. Returns 1 if it found the item
- // and successfully destroyed it, 0 if it did not find the
- // item, or -1 if an error occurred.
-
- void clear (void);
- // Destroys all keys and associated data.
-
-protected:
-
- int find_i (const KEY &k);
- // If k points to an associated data item, then this function
- // returns the index into the arrays that hold it. Otherwise, it
- // returns an index suitable to insert the item. If the item is not
- // found and the table is full, maxsize_ is returned.
-
-private:
- KEY **k_array_;
- DATA **d_array_;
- int maxsize_;
-};
-
-template <class KEY, class DATA>
-class JAWS_Assoc_Array_Iterator
-{
-public:
-
- JAWS_Assoc_Array_Iterator (const JAWS_Assoc_Array<KEY, DATA> &aa);
- ~JAWS_Assoc_Array_Iterator (void);
-
- KEY * key (void);
- DATA * data (void);
-
- int first (void);
- int last (void);
- int next (void);
- int previous (void);
- int is_done (void);
-
-private:
-
- // declare private and do not define: explicitly
- // prevent assignment and copy construction of iterators
- JAWS_Assoc_Array_Iterator (const JAWS_Assoc_Array_Iterator<KEY, DATA> &);
- void operator= (const JAWS_Assoc_Array_Iterator<KEY, DATA> &);
-
-private:
-
- const JAWS_Assoc_Array<KEY, DATA> &aa_;
-
- int i_;
- // The current item pointed by iterator.
-
- int j_;
- // The next item to be pointed to by iterator.
-
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "JAWS/Assoc_Array.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#endif /* !defined (JAWS_ASSOC_ARRAY_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Cache_Hash_T.cpp b/apps/JAWS/PROTOTYPE/JAWS/Cache_Hash_T.cpp
deleted file mode 100644
index c2a25fd863d..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Cache_Hash_T.cpp
+++ /dev/null
@@ -1,237 +0,0 @@
-// $Id$
-
-#ifndef JAWS_CACHE_HASH_T_CPP
-#define JAWS_CACHE_HASH_T_CPP
-
-#include "JAWS/Cache_Hash_T.h"
-#include "JAWS/Hash_Bucket_T.h"
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> unsigned long
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::hash (const EXT_ID &ext_id) const
-{
- return HASH_FUNC (ext_id) % this->size_;
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::isprime (unsigned long number) const
-{
- unsigned long d = 3;
-
- if (number <= 2) return (number == 2);
-
- if (number % 2 == 0) return 0;
-
- while (d <= number/d)
- {
- if (number % d == 0) return 0;
- d += 2;
- }
-
- return 1;
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::new_cachebucket (size_t hash_idx)
-{
- if (this->hashtable_[hash_idx] == 0)
- {
- size_t alloc_size = sizeof (CACHE_BUCKET_MANAGER);
- ACE_NEW_MALLOC_RETURN (this->hashtable_[hash_idx],
- (CACHE_BUCKET_MANAGER *)
- this->allocator_->malloc (alloc_size),
- CACHE_BUCKET_MANAGER (this->allocator_), -1);
- }
-
- return 0;
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC>
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::JAWS_Cache_Hash (ACE_Allocator *alloc,
- size_t size)
- : allocator_ (alloc),
- hashtable_ (0)
-{
- while (!this->isprime (size))
- size++;
-
- this->size_ = size;
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- size_t memsize = this->size_ * sizeof (CACHE_BUCKET_MANAGER *);
-
- this->hashtable_
- = (CACHE_BUCKET_MANAGER **) this->allocator_->malloc (memsize);
-
- if (this->hashtable_)
- {
- for (size_t i = 0; i < this->size_; i++)
- this->hashtable_[i] = 0;
- }
- else
- {
- this->size_ = 0;
- // should indicate something is wrong to the user.
- }
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC>
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::~JAWS_Cache_Hash (void)
-{
- if (this->hashtable_)
- {
- for (size_t i = 0; i < this->size_; i++)
- {
- if (this->hashtable_[i])
- {
-#if defined (__BORLANDC__) && (__BORLANDC__ <= 0x540)
- ACE_DES_FREE_TEMPLATE3(this->hashtable_[i],
- this->allocator_->free,
- JAWS_Hash_Bucket_Manager,
- EXT_ID,
- JAWS_Cache_Object *,
- EQ_FUNC);
-#else
- ACE_DES_FREE(this->hashtable_[i],
- this->allocator_->free,
- CACHE_BUCKET_MANAGER);
-#endif
- this->hashtable_[i] = 0;
- }
- }
- this->allocator_->free (this->hashtable_);
- this->hashtable_ = 0;
- }
-
- this->allocator_ = 0;
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::find (const EXT_ID &ext_id) const
-{
- unsigned long hash_idx = this->hash (ext_id);
-
- if (this->hashtable_[hash_idx] == 0)
- return -1;
-
- return this->hashtable_[hash_idx]->find (ext_id);
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::find (const EXT_ID &ext_id,
- JAWS_Cache_Object *&int_id) const
-{
- unsigned long hash_idx = this->hash (ext_id);
-
- if (this->hashtable_[hash_idx] == 0)
- return -1;
-
- return this->hashtable_[hash_idx]->find (ext_id, int_id);
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::bind (const EXT_ID &ext_id,
- JAWS_Cache_Object *const &int_id)
-{
- int result;
- unsigned long hash_idx = this->hash (ext_id);
-
- if (this->hashtable_[hash_idx] == 0)
- {
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
-
- if (this->new_cachebucket (hash_idx) == -1)
- return -1;
-
- result = this->hashtable_[hash_idx]->bind (ext_id, int_id);
- }
- else
- result = this->hashtable_[hash_idx]->bind (ext_id, int_id);
-
- return result;
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::trybind (const EXT_ID &ext_id,
- JAWS_Cache_Object *&int_id)
-{
- int result;
- unsigned long hash_idx = this->hash (ext_id);
-
- if (this->hashtable_[hash_idx] == 0)
- {
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
-
- if (this->new_cachebucket (hash_idx) == -1)
- return -1;
-
- result = this->hashtable_[hash_idx]->trybind (ext_id, int_id);
- }
- else
- result = this->hashtable_[hash_idx]->trybind (ext_id, int_id);
-
- return result;
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::rebind (const EXT_ID &ext_id,
- JAWS_Cache_Object *const &int_id,
- EXT_ID &old_ext_id,
- JAWS_Cache_Object *&old_int_id)
-{
- int result;
- unsigned long hash_idx = this->hash (ext_id);
-
- if (this->hashtable_[hash_idx] == 0)
- {
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
-
- if (this->new_cachebucket (hash_idx) == -1)
- return -1;
-
- result = this->hashtable_[hash_idx]->rebind (ext_id, int_id,
- old_ext_id, old_int_id);
- }
- else
- result = this->hashtable_[hash_idx]->rebind (ext_id, int_id,
- old_ext_id, old_int_id);
-
- return result;
-}
-
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::unbind (const EXT_ID &ext_id)
-{
- unsigned long hash_idx = this->hash (ext_id);
-
- if (this->hashtable_[hash_idx] == 0)
- return -1;
-
- return this->hashtable_[hash_idx]->unbind (ext_id);
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::unbind (const EXT_ID &ext_id,
- JAWS_Cache_Object *&int_id)
-{
- unsigned long hash_idx = this->hash (ext_id);
-
- if (this->hashtable_[hash_idx] == 0)
- return -1;
-
- return this->hashtable_[hash_idx]->unbind (ext_id, int_id);
-}
-
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> size_t
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::size (void) const
-{
- return this->size_;
-}
-
-
-
-
-#endif /* JAWS_CACHEHASH_T_CPP */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Cache_Hash_T.h b/apps/JAWS/PROTOTYPE/JAWS/Cache_Hash_T.h
deleted file mode 100644
index 2d310873cb2..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Cache_Hash_T.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_CACHE_HASH_T_H
-#define JAWS_CACHE_HASH_T_H
-
-#include "ace/OS.h"
-#include "JAWS/Cache_Object.h"
-
-// Forward declaration
-template <class EXT_ID, class INT_ID, class EQ_FUNC>
-class JAWS_Hash_Bucket_Manager;
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC>
-class JAWS_Cache_Hash
-{
-public:
-
- typedef JAWS_Hash_Bucket_Manager<EXT_ID, JAWS_Cache_Object *, EQ_FUNC>
- CACHE_BUCKET_MANAGER;
-
- JAWS_Cache_Hash (ACE_Allocator *alloc = 0, size_t size = 521);
- // 521 == smallest number > 512 that is prime. Why is a prime
- // number important? I am trying to maximize scattering when using
- // mod on the hashed value. This might be bogus though.
-
- virtual ~JAWS_Cache_Hash (void);
-
- int find (const EXT_ID &ext_id) const;
- int find (const EXT_ID &ext_id, JAWS_Cache_Object *&int_id) const;
- int bind (const EXT_ID &ext_id, JAWS_Cache_Object *const &int_id);
- int trybind (const EXT_ID &ext_id, JAWS_Cache_Object *&int_id);
- int rebind (const EXT_ID &ext_id, JAWS_Cache_Object *const &int_id,
- EXT_ID &old_ext_id, JAWS_Cache_Object *&old_int_id);
-
- int unbind (const EXT_ID &ext_id);
- int unbind (const EXT_ID &ext_id, JAWS_Cache_Object *&int_id);
-
- size_t size (void) const;
-
-protected:
-
- virtual unsigned long hash (const EXT_ID &ext_id) const;
- int isprime (unsigned long number) const;
- int new_cachebucket (size_t idx);
-
-private:
-
- ACE_Allocator *allocator_;
- size_t size_;
-
- ACE_SYNCH_MUTEX lock_;
- CACHE_BUCKET_MANAGER **hashtable_;
-
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "JAWS/Cache_Hash_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#endif /* ACE_CACHE_HASH_T_H */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Cache_Heap_T.cpp b/apps/JAWS/PROTOTYPE/JAWS/Cache_Heap_T.cpp
deleted file mode 100644
index 36575ef2741..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Cache_Heap_T.cpp
+++ /dev/null
@@ -1,282 +0,0 @@
-// $Id$
-
-#ifndef JAWS_CACHE_HEAP_T_CPP
-#define JAWS_CACHE_HEAP_T_CPP
-
-#include "JAWS/Cache_Heap_T.h"
-#include "JAWS/Cache_Manager_T.h"
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::JAWS_Cache_Heap (ACE_Allocator *alloc,
- size_t maxsize)
- : allocator_ (alloc),
- maxsize_ (maxsize),
- size_ (0)
-{
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- size_t memsize
- = this->maxsize_ * sizeof (Cache_Heap_Item *);
-
- this->heap_ = (Cache_Heap_Item **) this->allocator_->malloc (memsize);
- if (this->heap_)
- {
- for (size_t i = 0; i < this->maxsize_; i++)
- this->heap_[i] = 0;
- }
- else
- {
- this->maxsize_ = 0;
- // should indicate something
- }
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::~JAWS_Cache_Heap (void)
-{
- if (this->heap_ != 0)
- {
- for (size_t i = 0; i < this->maxsize_; i++)
- {
- if (this->heap_[i])
- {
- ACE_DES_FREE (this->heap_[i], this->allocator_->free,
- Cache_Heap_Item);
- this->heap_[i] = 0;
- }
- }
- this->allocator_->free (this->heap_);
- this->heap_ = 0;
- }
-
- this->allocator_ = 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::is_empty (void) const
-{
- return (this->size_ == 0);
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::is_full (void) const
-{
- return (this->size_ == this->maxsize_);
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> size_t
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::size (void) const
-{
- return this->size_;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> size_t
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::maxsize (void) const
-{
- return this->maxsize_;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::maxsize (Cache_Manager *cm,
- size_t new_maxsize)
-{
- int result = -1;
-
- size_t memsize
- = new_maxsize * sizeof (Cache_Heap_Item *);
-
- Cache_Heap_Item **new_heap
- = (Cache_Heap_Item **) this->allocator_->malloc (memsize);
- if (new_heap)
- {
- while (new_maxsize < this->size_)
- cm->FLUSH_i ();
-
- for (size_t i = 0; i < new_maxsize; i++)
- if (i < this->size_)
- new_heap[i] = this->heap_[i];
- else
- new_heap[i] = 0;
-
- Cache_Heap_Item ** volatile temp = this->heap_;
- this->heap_ = new_heap;
- this->maxsize_ = new_maxsize;
- this->allocator_->free (temp);
- result = 0;
- }
-
- return result;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> void
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::insert_i (Cache_Heap_Item *item)
-{
- /* ASSERT: this->size_ < this->maxsize_ */
-
- size_t i;
-
- for (i = this->size_ + 1; i > 1; i /= 2)
- {
- if (item->priority () > this->heap_[i/2 - 1]->priority ())
- break;
-
- this->heap_[i-1] = this->heap_[i/2 - 1];
- this->heap_[i-1]->heap_idx_ = i-1;
- }
-
- this->heap_[i-1] = item;
- this->heap_[i-1]->heap_idx_ = i-1;
- this->size_++;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::insert (const EXT_ID &ext_id,
- JAWS_Cache_Object *const &int_id)
-{
- if (this->is_full ())
- return -1;
-
- Cache_Heap_Item *item;
- ACE_NEW_MALLOC_RETURN (item,
- (Cache_Heap_Item *)
- this->allocator_->malloc (sizeof (Cache_Heap_Item)),
- Cache_Heap_Item (ext_id, int_id), -1);
-
- this->insert_i (item);
-
- return 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> void
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::remove_i (void)
-{
- /* ASSERT: this->size_ > 0 */
- this->size_--;
- Cache_Heap_Item *temp = this->heap_[this->size_];
- this->heap_[this->size_] = 0;
-
- size_t i = 1;
- while (2*i <= this->size_)
- {
- size_t child = 2*i;
- if ((child < this->size_)
- && (this->heap_[2*i]->priority ()
- < this->heap_[2*i - 1]->priority ()))
- child = 2*i + 1;
-
- if (temp->priority () < this->heap_[child-1]->priority ())
- break;
-
- this->heap_[i-1] = this->heap_[child-1];
- this->heap_[i-1]->heap_idx_ = i-1;
- i = child;
- }
-
- if (this->size_ > 0)
- {
- this->heap_[i-1] = temp;
- this->heap_[i-1]->heap_idx_ = i-1;
- }
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> void
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::remove_i (size_t pos)
-{
- Cache_Heap_Item *item = this->heap_[pos];
-
- if (pos > 0)
- {
- int i = pos + 1;
- do
- {
- this->heap_[i-1] = this->heap_[i/2 - 1];
- this->heap_[i-1]->heap_idx_ = i-1;
- i /= 2;
- }
- while (i > 1);
- }
-
- this->heap_[0] = item;
-
- this->remove_i ();
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::remove (EXT_ID &ext_id,
- JAWS_Cache_Object *&int_id)
-{
- if (this->is_empty ())
- return -1;
-
- Cache_Heap_Item *item = this->heap_[0];
- item->int_id_->heap_item (0);
-
- this->remove_i ();
-
- ext_id = item->ext_id_;
- int_id = item->int_id_;
-
- ACE_DES_FREE (item, this->allocator_->free, Cache_Heap_Item);
- item = 0;
- return 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::remove (void *item)
-{
- if (item == 0)
- return 0;
-
- Cache_Heap_Item *real_item = (Cache_Heap_Item *) item;
-
- // Make sure the item is where it thinks it is.
- if (this->heap_[real_item->heap_idx_] != real_item)
- return -1;
-
- real_item->int_id_->heap_item (0);
- this->remove_i (real_item->heap_idx_);
-
- ACE_DES_FREE (real_item, this->allocator_->free, Cache_Heap_Item);
- real_item = 0;
-
- return 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::adjust (void *item)
-{
- if (item == 0)
- return 0;
-
- Cache_Heap_Item *real_item = (Cache_Heap_Item *) item;
-
- // Make sure the item is where it thinks it is.
- if (this->heap_[real_item->heap_idx_] != real_item)
- return -1;
-
- this->remove_i (real_item->heap_idx_);
- this->insert_i (real_item);
-
- return 0;
-}
-
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-JAWS_Cache_Heap_Item<EXT_ID,FACT,H_FN,E_FN>::
-JAWS_Cache_Heap_Item (const EXT_ID &ext_id, JAWS_Cache_Object *const &int_id)
- : ext_id_ (ext_id),
- int_id_ (int_id),
- heap_idx_ (0)
-{
- this->int_id_->heap_item (this);
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> unsigned int
-JAWS_Cache_Heap_Item<EXT_ID,FACT,H_FN,E_FN>::priority (void)
-{
- return this->int_id_->priority ();
-}
-
-
-#endif /* JAWS_CACHE_HEAP_T_CPP */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Cache_Heap_T.h b/apps/JAWS/PROTOTYPE/JAWS/Cache_Heap_T.h
deleted file mode 100644
index 16fbe890fe6..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Cache_Heap_T.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_CACHE_HEAP_T_H
-#define JAWS_CACHE_HEAP_T_H
-
-#include "ace/Malloc.h"
-#include "JAWS/Cache_Object.h"
-
-// Forward declarations
-template <class EXT_ID, class FACTORY, class HASH_FUNC, class EQ_FUNC>
-class JAWS_Cache_Manager;
-
-template <class EXT_ID, class FACTORY, class HASH_FUNC, class EQ_FUNC>
-class JAWS_Cache_Heap_Item;
-
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-class JAWS_Cache_Heap
-// Roll my own heap here. Eventually, a heap should be its own
-// standalone data structure.
-{
-public:
-
- typedef JAWS_Cache_Manager<EXT_ID, FACT, H_FN, E_FN> Cache_Manager;
- typedef JAWS_Cache_Heap_Item<EXT_ID, FACT, H_FN, E_FN> Cache_Heap_Item;
-
- JAWS_Cache_Heap (ACE_Allocator *alloc = 0, size_t maxsize = 8192);
- // maxsize is the total number of objects the in memory cache is
- // willing to manage
-
- ~JAWS_Cache_Heap (void);
-
- int is_empty (void) const;
- int is_full (void) const;
-
- size_t size (void) const;
- size_t maxsize (void) const;
-
- int maxsize (Cache_Manager *cm, size_t new_maxsize);
- // attempt to grow (or shrink) the heap. Return 0 on success, -1 on
- // error.
-
- int insert (const EXT_ID &ext_id, JAWS_Cache_Object *const &int_id);
- // attempt to insert int_id into heap.
-
- int remove (EXT_ID &ext_id, JAWS_Cache_Object *&int_id);
- // attempt to remove the top element of heap.
-
- int remove (void *item);
- // treat item as a Cache_Heap_Item, and remove it from the heap
-
- int adjust (void *item);
- // treat item as a Cache_Heap_Item, and alter its heap position
-
-protected:
-
- void insert_i (Cache_Heap_Item *item);
- // insert item into heap.
-
- void remove_i (size_t pos);
- // remove the element residing at pos, but do not delete it.
-
- void remove_i (void);
- // remove the element residing at the top of heap, but do not delete it.
-
-private:
-
- ACE_Allocator *allocator_;
-
- size_t maxsize_;
- size_t size_;
-
- Cache_Heap_Item **heap_;
-
-};
-
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-class JAWS_Cache_Heap_Item
-{
-
- friend class JAWS_Cache_Heap<EXT_ID, FACT, H_FN, E_FN>;
-
-public:
-
- JAWS_Cache_Heap_Item (const EXT_ID &ext_id, JAWS_Cache_Object *const &int_id);
- unsigned int priority (void);
-
-private:
-
- EXT_ID ext_id_;
- JAWS_Cache_Object *int_id_;
-
- size_t heap_idx_;
-
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "JAWS/Cache_Heap_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#endif /* JAWS_CACHE_HEAP_T_H */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Cache_List_T.cpp b/apps/JAWS/PROTOTYPE/JAWS/Cache_List_T.cpp
deleted file mode 100644
index 278d85e00ea..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Cache_List_T.cpp
+++ /dev/null
@@ -1,222 +0,0 @@
-// $Id$
-
-#ifndef JAWS_CACHE_LIST_T_CPP
-#define JAWS_CACHE_LIST_T_CPP
-
-#include "JAWS/Cache_List_T.h"
-#include "JAWS/Cache_Manager_T.h"
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::JAWS_Cache_List (ACE_Allocator *alloc,
- size_t maxsize)
- : allocator_ (alloc),
- maxsize_ (maxsize),
- size_ (0),
- head_ (0),
- tail_ (0)
-{
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::~JAWS_Cache_List (void)
-{
- while (this->head_ != 0)
- this->remove (this->head_);
-
- this->allocator_ = 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::is_empty (void) const
-{
- return (this->size_ == 0);
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::is_full (void) const
-{
- return (this->size_ == this->maxsize_);
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> size_t
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::size (void) const
-{
- return this->size_;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> size_t
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::maxsize (void) const
-{
- return this->maxsize_;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::maxsize (Cache_Manager *,
- size_t new_maxsize)
-{
- this->maxsize_ = new_maxsize;
- return 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> void
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::insert_i (Cache_List_Item *item)
-{
- /* ASSERT: this->size_ < this->maxsize_ */
- item->next_ = 0;
- item->prev_ = 0;
-
- if (this->size_++ == 0)
- this->head_ = this->tail_ = item;
- else
- {
- this->tail_->next_ = item;
- item->prev_ = this->tail_;
- this->tail_ = item;
- }
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::insert (const EXT_ID &ext_id,
- JAWS_Cache_Object *const &int_id)
-{
- if (this->is_full ())
- return -1;
-
- Cache_List_Item *item;
- ACE_NEW_MALLOC_RETURN (item,
- (Cache_List_Item *)
- this->allocator_->malloc (sizeof (Cache_List_Item)),
- Cache_List_Item (ext_id, int_id), -1);
-
- this->insert_i (item);
-
- return 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> void
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::remove_i (void)
-{
- /* ASSERT: this->size_ > 0 */
- this->size_--;
- this->item_ = this->head_;
- if (this->head_ == this->tail_)
- {
- this->head_ = this->tail_ = 0;
- return;
- }
-
- this->head_ = this->head_->next_;
- this->head_->prev_ = 0;
- this->item_->next_ = 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> void
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::remove_i (Cache_List_Item *item)
-{
- this->size_--;
- this->item_ = item;
-
- if (item->next_ == 0 && item->prev_ == 0)
- {
- this->head_ = this->tail_ = 0;
- }
- else if (item->next_ == 0)
- {
- this->tail_ = item->prev_;
- this->tail_->next_ = 0;
- }
- else if (item->prev_ == 0)
- {
- this->head_ = item->next_;
- this->head_->prev_ = 0;
- }
- else
- {
- item->next_->prev_ = item->prev_;
- item->prev_->next_ = item->next_;
- }
-
- item->next_ = 0;
- item->prev_ = 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::remove (EXT_ID &ext_id,
- JAWS_Cache_Object *&int_id)
-{
- if (this->is_empty ())
- return -1;
-
- this->remove_i ();
-
- ext_id = this->item_->ext_id_;
- int_id = this->item_->int_id_;
- int_id->heap_item (0);
-
-#if defined (__BORLANDC__) && (__BORLANDC__ <= 0x540)
- ACE_DES_FREE_TEMPLATE4(this->item_, this->allocator_->free,
- JAWS_Cache_List_Item,
- EXT_ID, FACT, H_FN, E_FN);
-#else
- ACE_DES_FREE (this->item_, this->allocator_->free, Cache_List_Item);
-#endif
- this->item_ = 0;
- return 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::remove (void *item)
-{
- if (item == 0)
- return 0;
-
- this->remove_i ((Cache_List_Item *) item);
- this->item_->int_id_->heap_item (0);
-
-#if defined (__BORLANDC__) && (__BORLANDC__ <= 0x540)
- ACE_DES_FREE_TEMPLATE4(this->item_, this->allocator_->free,
- JAWS_Cache_List_Item,
- EXT_ID, FACT, H_FN, E_FN);
-#else
- ACE_DES_FREE (this->item_, this->allocator_->free, Cache_List_Item);
-#endif
- this->item_ = 0;
-
- return 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::adjust (void *item)
-{
- if (item == 0)
- return 0;
-
- Cache_List_Item *real_item = (Cache_List_Item *) item;
-
- this->remove_i (real_item);
- this->insert_i (real_item);
- this->item_ = 0;
-
- return 0;
-}
-
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-JAWS_Cache_List_Item<EXT_ID,FACT,H_FN,E_FN>::
-JAWS_Cache_List_Item (const EXT_ID &ext_id, JAWS_Cache_Object *const &int_id)
- : ext_id_ (ext_id),
- int_id_ (int_id)
-{
- this->int_id_->heap_item (this);
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> unsigned int
-JAWS_Cache_List_Item<EXT_ID,FACT,H_FN,E_FN>::priority (void)
-{
- return this->int_id_->priority ();
-}
-
-
-#endif /* JAWS_CACHE_LIST_T_CPP */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Cache_List_T.h b/apps/JAWS/PROTOTYPE/JAWS/Cache_List_T.h
deleted file mode 100644
index 7dd9c7c8ca1..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Cache_List_T.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_CACHE_LIST_T_H
-#define JAWS_CACHE_LIST_T_H
-
-#include "ace/Malloc.h"
-#include "JAWS/Cache_Object.h"
-
-// Forward declarations
-template <class EXT_ID, class FACTORY, class HASH_FUNC, class EQ_FUNC>
-class JAWS_Cache_Manager;
-
-template <class EXT_ID, class FACTORY, class HASH_FUNC, class EQ_FUNC>
-class JAWS_Cache_List_Item;
-
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-class JAWS_Cache_List
-// Roll my own heap here. Eventually, a heap should be its own
-// standalone data structure.
-//
-// This version is not a heap, but a doubly linked list. We are
-// trying to simplify all the heap operations to be O(1).
-{
-public:
-
- typedef JAWS_Cache_Manager<EXT_ID, FACT, H_FN, E_FN> Cache_Manager;
- typedef JAWS_Cache_List_Item<EXT_ID, FACT, H_FN, E_FN> Cache_List_Item;
-
- JAWS_Cache_List (ACE_Allocator *alloc = 0, size_t maxsize = 8192);
- // maxsize is the total number of objects the in memory cache is
- // willing to manage
-
- ~JAWS_Cache_List (void);
-
- int is_empty (void) const;
- int is_full (void) const;
-
- size_t size (void) const;
- size_t maxsize (void) const;
-
- int maxsize (Cache_Manager *cm, size_t new_maxsize);
- // attempt to grow (or shrink) the heap. Return 0 on success, -1 on
- // error.
-
- int insert (const EXT_ID &ext_id, JAWS_Cache_Object *const &int_id);
- // attempt to insert int_id into heap.
-
- int remove (EXT_ID &ext_id, JAWS_Cache_Object *&int_id);
- // attempt to remove the top element of heap.
-
- int remove (void *item);
- // treat item as a Cache_List_Item, and remove it from the heap
-
- int adjust (void *item);
- // treat item as a Cache_List_Item, and alter its heap position
-
-protected:
-
- void insert_i (Cache_List_Item *item);
- // insert item into heap.
-
- void remove_i (Cache_List_Item *item);
- // remove the element residing at pos, but do not delete it.
-
- void remove_i (void);
- // remove the element residing at the top of heap, but do not delete it.
-
-private:
-
- ACE_Allocator *allocator_;
-
- size_t maxsize_;
- size_t size_;
-
- Cache_List_Item *item_;
-
- Cache_List_Item *head_;
- Cache_List_Item *tail_;
-
-};
-
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-class JAWS_Cache_List_Item
-{
-
- friend class JAWS_Cache_List<EXT_ID, FACT, H_FN, E_FN>;
-
-public:
-
- typedef JAWS_Cache_List<EXT_ID, FACT, H_FN, E_FN> Cache_List;
-
- JAWS_Cache_List_Item (const EXT_ID &ext_id, JAWS_Cache_Object *const &int_id);
- unsigned int priority (void);
-
-private:
-
- EXT_ID ext_id_;
- JAWS_Cache_Object *int_id_;
-
- JAWS_Cache_List_Item *next_;
- JAWS_Cache_List_Item *prev_;
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "JAWS/Cache_List_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#endif /* JAWS_CACHE_LIST_T_H */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Cache_Manager.cpp b/apps/JAWS/PROTOTYPE/JAWS/Cache_Manager.cpp
deleted file mode 100644
index a91ac38375a..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Cache_Manager.cpp
+++ /dev/null
@@ -1,189 +0,0 @@
-// $Id$
-
-#include "ace/OS.h"
-#include "ace/ACE.h"
-#include "ace/Synch.h"
-
-#include "JAWS/Cache_Manager.h"
-#include "JAWS/Cache_List_T.h"
-
-JAWS_String_Hash_Functor::JAWS_String_Hash_Functor (const char *s)
- : i_ (0)
-{
- this->i_ = ACE::hash_pjw (s);
-}
-
-JAWS_String_Hash_Functor::operator unsigned long (void) const
-{
- return this->i_;
-}
-
-JAWS_String_Equal_Functor::JAWS_String_Equal_Functor (const char *s1,
- const char *s2)
- : i_ (0)
-{
- this->i_ = ACE_OS::strcmp (s1, s2);
-}
-
-JAWS_String_Equal_Functor::operator int (void) const
-{
- return this->i_ == 0;
-}
-
-JAWS_Strdup_String::JAWS_Strdup_String (void)
- : c_ (0),
- s_ (0)
-{
-}
-
-JAWS_Strdup_String::JAWS_Strdup_String (const char *s)
- : c_ (0),
- s_ (0)
-{
- this->c_ = new int (1);
- this->s_ = ACE_OS::strdup (s);
-}
-
-JAWS_Strdup_String::JAWS_Strdup_String (const JAWS_Strdup_String &s)
- : c_ (s.c_),
- s_ (s.s_)
-{
- ++*(this->c_);
-}
-
-JAWS_Strdup_String::~JAWS_Strdup_String (void)
-{
- if (this->c_ && --*(this->c_) == 0)
- {
- if (this->s_)
- ACE_OS::free (this->s_);
- delete this->c_;
- }
- this->s_ = 0;
- this->c_ = 0;
-}
-
-JAWS_Strdup_String::operator const char * (void) const
-{
- return this->s_;
-}
-
-void
-JAWS_Strdup_String::operator = (const char *s)
-{
- if (this->c_ && --*(this->c_) == 0)
- {
- if (this->s_)
- ACE_OS::free (this->s_);
- delete this->c_;
- }
- this->c_ = new int (1);
- this->s_ = ACE_OS::strdup (s);
-}
-
-void
-JAWS_Strdup_String::operator = (const JAWS_Strdup_String &s)
-{
- if (this->c_ && --*(this->c_) == 0)
- {
- if (this->s_)
- ACE_OS::free (this->s_);
- delete this->c_;
- }
- this->c_ = s.c_;
- this->s_ = s.s_;
- ++*(this->c_);
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class JAWS_Hash_Bucket_Item<JAWS_Strdup_String, JAWS_Cache_Object *>;
-template class JAWS_Hash_Bucket_DLCStack<JAWS_Strdup_String, JAWS_Cache_Object *>;
-template class JAWS_Hash_Bucket_DLCStack_Iterator<JAWS_Strdup_String,
- JAWS_Cache_Object *>;
-template class JAWS_Hash_Bucket_Manager<JAWS_Strdup_String,
- JAWS_Cache_Object *,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_Hash<JAWS_Strdup_String,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_List_Item<JAWS_Strdup_String,
- JAWS_Referenced_Cache_Object_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_List<JAWS_Strdup_String,
- JAWS_Referenced_Cache_Object_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_Manager<JAWS_Strdup_String,
- JAWS_Referenced_Cache_Object_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_List_Item<JAWS_Strdup_String,
- JAWS_Counted_Cache_Object_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_List<JAWS_Strdup_String,
- JAWS_Counted_Cache_Object_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_Manager<JAWS_Strdup_String,
- JAWS_Counted_Cache_Object_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class ACE_Singleton<JAWS_Referenced_Cache_Object_Factory,
- ACE_SYNCH_MUTEX>;
-template class ACE_Singleton<JAWS_Counted_Cache_Object_Factory,
- ACE_SYNCH_MUTEX>;
-template class ACE_Singleton<JAWS_String_Referenced_Cache_Manager,
- ACE_SYNCH_MUTEX>;
-template class ACE_Singleton<JAWS_String_Counted_Cache_Manager,
- ACE_SYNCH_MUTEX>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#pragma instantiate JAWS_Hash_Bucket_Item<JAWS_Strdup_String, JAWS_Cache_Object *>
-#pragma instantiate JAWS_Hash_Bucket_DLCStack<JAWS_Strdup_String, \
- JAWS_Cache_Object *>
-#pragma instantiate JAWS_Hash_Bucket_DLCStack_Iterator<JAWS_Strdup_String, \
- JAWS_Cache_Object *>
-#pragma instantiate JAWS_Hash_Bucket_Manager<JAWS_Strdup_String, \
- JAWS_Cache_Object *, \
- JAWS_String_Equal_Functor>
-#pragma instantiate JAWS_Cache_Hash<JAWS_Strdup_String, \
- JAWS_String_Hash_Functor, \
- JAWS_String_Equal_Functor>
-#pragma instantiate JAWS_Cache_Heap_Item<JAWS_Strdup_String, \
- ACE_Referenced_Cache_Object_Factory, \
- JAWS_String_Hash_Functor, \
- JAWS_String_Equal_Functor>
-#pragma instantiate JAWS_Cache_Heap<JAWS_Strdup_String, \
- JAWS_Referenced_Cache_Object_Factory, \
- JAWS_String_Hash_Functor, \
- JAWS_String_Equal_Functor>
-#pragma instantiate JAWS_Cache_Manager<JAWS_Strdup_String, \
- JAWS_Referenced_Cache_Object_Factory, \
- JAWS_String_Hash_Functor, \
- JAWS_String_Equal_Functor>
-#pragma instantiate JAWS_Cache_Heap_Item<JAWS_Strdup_String, \
- JAWS_Counted_Cache_Object_Factory, \
- JAWS_String_Hash_Functor, \
- JAWS_String_Equal_Functor>
-#pragma instantiate JAWS_Cache_Heap<JAWS_Strdup_String, \
- JAWS_Counted_Cache_Object_Factory, \
- JAWS_String_Hash_Functor, \
- JAWS_String_Equal_Functor>
-#pragma instantiate JAWS_Cache_Manager<JAWS_Strdup_String, \
- JAWS_Counted_Cache_Object_Factory, \
- JAWS_String_Hash_Functor, \
- JAWS_String_Equal_Functor>
-#pragma instantiate ACE_Singleton<JAWS_Referenced_Cache_Object_Factory, \
- ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Singleton<JAWS_Counted_Cache_Object_Factory, \
- ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Singleton<JAWS_String_Referenced_Cache_Manager, \
- ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Singleton<JAWS_String_Counted_Cache_Manager, \
- ACE_SYNCH_MUTEX>
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Cache_Manager.h b/apps/JAWS/PROTOTYPE/JAWS/Cache_Manager.h
deleted file mode 100644
index 723e6729f33..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Cache_Manager.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_CACHE_MANAGER_H
-#define JAWS_CACHE_MANAGER_H
-
-#include "ace/OS.h"
-#include "ace/ACE.h"
-#include "ace/Synch.h"
-
-#include "JAWS/Cache_Manager_T.h"
-
-class JAWS_String_Hash_Functor
-{
-public:
- JAWS_String_Hash_Functor (const char *s);
- operator unsigned long (void) const;
-
-private:
- unsigned long i_;
-};
-
-class JAWS_String_Equal_Functor
-{
-public:
- JAWS_String_Equal_Functor (const char *s1, const char *s2);
- operator int (void) const;
-
-private:
- int i_;
-};
-
-class JAWS_Strdup_String
-{
-public:
-
- JAWS_Strdup_String (void);
- JAWS_Strdup_String (const char *s);
- JAWS_Strdup_String (const JAWS_Strdup_String &s);
- ~JAWS_Strdup_String (void);
-
- operator const char * (void) const;
- void operator = (const char *s);
- void operator = (const JAWS_Strdup_String &s);
-
-private:
-
- int *c_;
- char *s_;
-
-};
-
-typedef JAWS_Cache_Manager<JAWS_Strdup_String,
- JAWS_Referenced_Cache_Object_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>
- JAWS_String_Referenced_Cache_Manager;
-
-typedef JAWS_Cache_Manager<JAWS_Strdup_String,
- JAWS_Counted_Cache_Object_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>
- JAWS_String_Counted_Cache_Manager;
-
-
-#endif /* JAWS_CACHE_MANAGER_H */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Cache_Manager_T.cpp b/apps/JAWS/PROTOTYPE/JAWS/Cache_Manager_T.cpp
deleted file mode 100644
index d2264c7cefd..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Cache_Manager_T.cpp
+++ /dev/null
@@ -1,577 +0,0 @@
-// $Id$
-
-#ifndef JAWS_CACHE_MANAGER_T_CPP
-#define JAWS_CACHE_MANAGER_T_CPP
-
-#include "JAWS/Cache_Manager_T.h"
-#include "JAWS/Cache_Hash_T.h"
-
-class Cache_Manager;
-
-#include <iostream.h>
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC>
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::JAWS_Cache_Manager (ACE_Allocator *alloc,
- JAWS_Cache_Object_Factory *cof,
- size_t hashsize,
- size_t maxsize,
- size_t maxobjsize,
- size_t minobjsize,
- size_t highwater,
- size_t lowwater,
- int timetolive,
- int counted)
- : allocator_ (alloc),
- factory_ (cof),
- hashsize_ (hashsize),
- maxsize_ (maxsize),
- maxobjsize_ (maxobjsize),
- minobjsize_ (minobjsize),
- highwater_ (highwater),
- lowwater_ (lowwater),
- waterlevel_ (0),
- timetolive_ (timetolive),
- counted_ (counted),
- hash_ (0),
- heap_ (0)
-{
- // Some sanity checking needed here --
- if (this->lowwater_ > this->highwater_)
- this->lowwater_ = this->highwater_ / 2;
-
- if (this->maxobjsize_ > (this->highwater_ - this->lowwater_) * 1024)
- this->maxobjsize_ = (this->highwater_ - this->lowwater_) * (1024/2);
-
- if (this->minobjsize_ > this->maxobjsize_)
- this->minobjsize_ = this->maxobjsize_ / 2;
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- if (this->factory_ == 0)
- this->factory_ = Object_Factory::instance ();
-
- ACE_NEW_MALLOC (this->hash_,
- (Cache_Hash *)
- this->allocator_->malloc (sizeof (Cache_Hash)),
- Cache_Hash (alloc, hashsize));
-
- if (this->hash_ == 0)
- {
- this->hashsize_ = 0;
- return;
- }
-
- ACE_NEW_MALLOC (this->heap_,
- (Cache_Heap *)
- this->allocator_->malloc (sizeof (Cache_Heap)),
- Cache_Heap (alloc, maxsize));
-
- if (this->heap_ == 0)
- {
- this->maxsize_ = 0;
-
-#if defined (__BORLANDC__) && (__BORLANDC__ <= 0x540)
- ACE_DES_FREE_TEMPLATE3(this->hash_, this->allocator_->free,
- JAWS_Cache_Hash,
- KEY, HASH_FUNC, EQ_FUNC);
-#else
- ACE_DES_FREE (this->hash_, this->allocator_->free, Cache_Hash);
-#endif
- this->hash_ = 0;
- this->hashsize_ = 0;
- }
-}
-
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::open (ACE_Allocator *alloc,
- JAWS_Cache_Object_Factory *cof,
- size_t hashsize,
- size_t maxsize,
- size_t maxobjsize,
- size_t minobjsize,
- size_t highwater,
- size_t lowwater,
- int timetolive,
- int counted)
-{
- this->close ();
-
- this->allocator_ = alloc;
- this->factory_ = cof;
- this->hashsize_ = hashsize;
- this->maxsize_ = maxsize;
- this->maxobjsize_ = maxobjsize;
- this->minobjsize_ = minobjsize;
- this->highwater_ = highwater;
- this->lowwater_ = lowwater;
- this->waterlevel_ = 0;
- this->timetolive_ = timetolive;
- this->counted_ = counted;
-
- // Some sanity checking needed here --
- if (this->lowwater_ > this->highwater_)
- this->lowwater_ = this->highwater_ / 2;
-
- if (this->maxobjsize_ > (this->highwater_ - this->lowwater_) * 1024)
- this->maxobjsize_ = (this->highwater_ - this->lowwater_) * (1024/2);
-
- if (this->minobjsize_ > this->maxobjsize_)
- this->minobjsize_ = this->maxobjsize_ / 2;
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- if (this->factory_ == 0)
- this->factory_ = Object_Factory::instance ();
-
- this->hash_ = (Cache_Hash *) this->allocator_->malloc (sizeof (Cache_Hash));
- if (this->hash_ == 0)
- {
- errno = ENOMEM;
- this->hashsize_ = 0;
-
- return -1;
- }
- new (this->hash_) Cache_Hash (alloc, hashsize);
-
- this->heap_ = (Cache_Heap *) this->allocator_->malloc (sizeof (Cache_Heap));
- if (this->heap_ == 0)
- {
- errno = ENOMEM;
- this->maxsize_ = 0;
-
-#if defined (__BORLANDC__) && (__BORLANDC__ <= 0x540)
- ACE_DES_FREE_TEMPLATE3(this->hash_, this->allocator_->free,
- JAWS_Cache_Hash,
- KEY, HASH_FUNC, EQ_FUNC);
-#else
- ACE_DES_FREE (this->hash_, this->allocator_->free, Cache_Hash);
-#endif
- this->hash_ = 0;
- this->hashsize_ = 0;
-
- return -1;
- }
- new (this->heap_) Cache_Heap (alloc, maxsize);
-
- return 0;
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC>
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>::~JAWS_Cache_Manager (void)
-{
- this->close ();
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>::close (void)
-{
- while (this->waterlevel_ > 0)
- this->FLUSH_i ();
-
- if (this->hash_)
- {
-#if defined (__BORLANDC__) && (__BORLANDC__ <= 0x540)
- ACE_DES_FREE_TEMPLATE3(this->hash_, this->allocator_->free,
- JAWS_Cache_Hash,
- KEY, HASH_FUNC, EQ_FUNC);
-#else
- ACE_DES_FREE (this->hash_, this->allocator_->free, Cache_Hash);
-#endif
- this->hash_ = 0;
- }
-
- if (this->heap_)
- {
-#if defined (__BORLANDC__) && (__BORLANDC__ <= 0x540)
- ACE_DES_FREE_TEMPLATE4(this->heap_, this->allocator_->free,
- JAWS_Cache_List,
- KEY, FACTORY, HASH_FUNC, EQ_FUNC);
-#else
- ACE_DES_FREE (this->heap_, this->allocator_->free, Cache_Heap);
-#endif
- this->heap_ = 0;
- }
-
- return 0;
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::GET_i (const KEY &key, JAWS_Cache_Object *&object)
-{
- int result = this->hash_->find (key, object);
-
- if (result == 0)
- this->TAKE (object);
- else
- object = 0;
-
- return result;
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::PUT_i (const KEY &key, const void *data, size_t size, JAWS_Cache_Object *&obj)
-{
- int result = 0;
-
- if (data == 0)
- {
- this->FLUSH_i (key);
- obj = 0;
- return 0;
- }
-
- result = this->MAKE (data, size, obj);
- if (result == -1)
- {
- if (size/1024 <= this->maxobjsize_)
- cerr << "MAKE failed. Bummer!" << endl;
- else
- this->DROP_i (obj);
- return -1;
- }
-
- obj->internal (new KEY (key));
-
- KEY old_key;
- JAWS_Cache_Object *old_obj;
-
- result = this->hash_->rebind (key, obj, old_key, old_obj);
- if (result == -1)
- {
- cerr << "*** hash bind error: " << key << endl;
- obj->release ();
- this->DROP_i (obj);
- return -1;
- }
- else if (result == 1)
- {
- this->heap_->remove (old_obj->heap_item ());
- this->waterlevel_ -= old_obj->size ();
- old_obj->release ();
- this->DROP_i (old_obj);
- }
-
- result = this->heap_->insert (key, obj);
- if (result == -1)
- {
- cerr << "*** heap insertion error: " << key << endl;
- this->hash_->unbind (key);
- obj->release ();
- this->DROP_i (obj);
- return -1;
- }
-
- this->waterlevel_ += size;
-
- // Acquire this one for the putter.
- this->TAKE (obj);
-
- return 0;
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::FLUSH_i (const KEY &key)
-{
- JAWS_Cache_Object *temp_object;
-
-#ifdef ENTERA_VERBOSE_TRACE
- cerr << "*** flush key unbinding: " << key << endl;
-#endif
- int result = this->hash_->unbind (key, temp_object);
- if (result == 0)
- {
- this->waterlevel_ -= temp_object->size ();
- if (this->heap_->remove (temp_object->heap_item ()) == -1)
- cerr << "*** flush key heap remove failed: " << endl;
- temp_object->release ();
- this->DROP_i (temp_object);
- }
- else
- cerr << "*** flush key hash unbind failed: " << key << endl;
-
- return result;
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::FLUSH_i (void)
-{
- KEY temp_key;
- JAWS_Cache_Object *temp_object;
-
- int result = this->heap_->remove (temp_key, temp_object);
- if (result == 0)
- {
-#ifdef ENTERA_VERBOSE_TRACE
- cerr << "*** flush unbinding: " << temp_key << endl;
-#endif
- result = this->hash_->unbind (temp_key);
- if (result == -1)
- cerr << "*** flush hash unbind failed: " << temp_key << endl;
- result = 0;
- this->waterlevel_ -= temp_object->size ();
- temp_object->release ();
- this->DROP_i (temp_object);
- }
- else
- {
- cerr << "*** flush heap remove failed" << endl;
- }
-
- return result;
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::DROP_i (JAWS_Cache_Object *&obj)
-{
- int result = 0;
-
- if (obj->count () == 0)
- {
- KEY *key = (KEY *) obj->internal ();
- this->factory_->destroy (obj);
- delete key;
- obj = 0;
- result = 1;
- }
- else
- result = this->heap_->adjust (obj->heap_item ());
-
- return result;
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::GET (const KEY &key, JAWS_Cache_Object *&object)
-{
- ACE_Read_Guard<ACE_SYNCH_RW_MUTEX> g (this->lock_);
-
- return this->GET_i (key, object);
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::PUT (const KEY &key, const void *data, size_t size, JAWS_Cache_Object *&obj)
-{
- ACE_Write_Guard<ACE_SYNCH_RW_MUTEX> g (this->lock_);
-
- return this->PUT_i (key, data, size, obj);
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::MAKE (const void *data, size_t size, JAWS_Cache_Object *&obj)
-{
- // verify object is within cacheable range
- if (size/1024 > this->maxobjsize_)
- {
-#if 0
- // What we do is cache it anyway, but remove it as soon as the
- // requester returns it.
- obj = this->factory_->create (data, size);
- return 0;
-#else
- // The above is a little tricky to implement. Think about it
- // some more.
- obj = this->factory_->create (data, size);
- return -1;
-
-#endif /* 0 */
- }
-
- if (size/1024 < this->minobjsize_)
-
- {
- // Don't bother to cache this.
- cerr << "*** " << size << " is too small to cache" << endl;
- return -1;
- }
-
- // make sure we have sufficient memory
- if (this->waterlevel_ + size > this->highwater_ * (1024 * 1024))
- {
- do
- {
- if (this->FLUSH_i () == -1)
- {
- cerr << "*** cache flooded, flush error" << endl;
- return -1;
- }
- }
- while (this->waterlevel_ > this->lowwater_ * (1024 * 1024));
- }
-
- // make sure heap has enough room
- if (this->heap_->is_full ())
- {
- cerr << "*** heap full, flushing" << endl;
- if (this->FLUSH_i () == -1)
- {
- cerr << "*** heap full, flush error" << endl;
- return -1;
- }
- }
-
- obj = this->factory_->create (data, size);
- if (this->TAKE (obj) == -1)
- {
- cerr << "*** take error" << endl;
- this->factory_->destroy (obj);
- obj = 0;
- return -1;
- }
-
- return 0;
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::TAKE (JAWS_Cache_Object *const &obj)
-{
- if (obj == 0)
- return -1;
-
- return obj->acquire ();
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::DROP (JAWS_Cache_Object *&obj)
-{
- if (obj == 0)
- return -1;
-
-#if 0
- if (obj->size ()/1024 > this->maxobjsize_)
- {
- ACE_Write_Guard<ACE_SYNCH_RW_MUTEX> g (this->lock_);
-
- int result = obj->release ();
- if (result == 0)
- {
- if (obj->count () == 0)
- {
- KEY *key = (KEY *) obj->internal ();
-#ifdef ENTERA_VERBOSE_TRACE
- cerr << "*** drop large unbinding: " << key << endl;
-#endif
- result = this->hash_->unbind (*key);
- if (result == 0)
- {
- if (this->heap_->remove (obj->heap_item ()) == -1)
- cerr << "*** drop large heap remove failed: " << endl;
- this->factory_->destroy (obj);
- delete key;
- obj = 0;
- result = 1;
- }
- else
- cerr << "*** drop large hash unbind failed: " << key << endl;
- }
- }
- return result;
- }
-#endif /* 0 */
-
- {
- ACE_Write_Guard<ACE_SYNCH_RW_MUTEX> g (this->lock_);
-
- int result = obj->release ();
-
- if (result == 0)
- {
- if (obj->count () == 0)
- {
- KEY *key = (KEY *) obj->internal ();
- this->factory_->destroy (obj);
- delete key;
- obj = 0;
- result = 1;
- }
- else
- {
- result = this->DROP_i (obj);
- }
- }
-
- return result;
- }
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::FLUSH (void)
-{
- ACE_Write_Guard<ACE_SYNCH_RW_MUTEX> g (this->lock_);
-
- return this->FLUSH_i ();
-}
-
-
-template <class KEY, class DATA, class CACHE_MANAGER>
-JAWS_Cache_Proxy<KEY, DATA, CACHE_MANAGER>
-::JAWS_Cache_Proxy (const KEY &key, Cache_Manager *manager)
- : object_ (0),
- manager_ (manager)
-{
- if (this->manager_ == 0)
- this->manager_ = Cache_Manager_Singleton::instance ();
-
- int result = this->manager_->GET (key, this->object_);
- if (result == -1)
- this->object_ = 0;
-}
-
-template <class KEY, class DATA, class CACHE_MANAGER>
-JAWS_Cache_Proxy<KEY, DATA, CACHE_MANAGER>
-::JAWS_Cache_Proxy (const KEY &key, DATA *data, size_t size,
- Cache_Manager *manager)
- : object_ (0),
- manager_ (manager)
-{
- if (this->manager_ == 0)
- this->manager_ = Cache_Manager_Singleton::instance ();
-
- int result = this->manager_->PUT (key, data, size, this->object_);
- if (result == -1)
- this->object_ = 0;
-}
-
-template <class KEY, class DATA, class CACHE_MANAGER>
-JAWS_Cache_Proxy<KEY, DATA, CACHE_MANAGER>::~JAWS_Cache_Proxy (void)
-{
- DATA *data = this->data ();
- this->manager_->DROP (this->object_);
- if (this->object_ == 0)
- this->close (data);
-}
-
-template <class KEY, class DATA, class CACHE_MANAGER> DATA *
-JAWS_Cache_Proxy<KEY, DATA, CACHE_MANAGER>::data (void) const
-{
- return this->object_ ? (DATA *) this->object_->data () : 0;
-}
-
-template <class KEY, class DATA, class CACHE_MANAGER>
-JAWS_Cache_Proxy<KEY, DATA, CACHE_MANAGER>::operator DATA * (void) const
-{
- return this->data ();
-}
-
-template <class KEY, class DATA, class CACHE_MANAGER> int
-JAWS_Cache_Proxy<KEY, DATA, CACHE_MANAGER>::close (DATA *)
-{
- return 0;
-}
-
-
-#endif /* JAWS_CACHE_MANAGER_T_CPP */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Cache_Manager_T.h b/apps/JAWS/PROTOTYPE/JAWS/Cache_Manager_T.h
deleted file mode 100644
index f3c14de3671..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Cache_Manager_T.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/* -*- c++ -*- */
-// Hey Emacs! This is a C++ file!
-// $Id$
-
-#ifndef JAWS_CACHE_MANAGER_T_H
-#define JAWS_CACHE_MANAGER_T_H
-
-#include "ace/Singleton.h"
-#include "ace/Synch.h"
-
-#include "JAWS/Cache_Object.h"
-
-template <class KEY, class HASH_FUNC, class EQ_FUNC> class JAWS_Cache_Hash;
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC>
-class JAWS_Cache_Heap;
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC>
-class JAWS_Cache_List;
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC>
-class JAWS_Cache_Manager
-{
-
- friend class JAWS_Cache_Hash<KEY, HASH_FUNC, EQ_FUNC>;
- friend class JAWS_Cache_Heap<KEY, FACTORY, HASH_FUNC, EQ_FUNC>;
- friend class JAWS_Cache_List<KEY, FACTORY, HASH_FUNC, EQ_FUNC>;
-
-public:
-
- typedef ACE_Singleton<FACTORY, ACE_SYNCH_MUTEX> Object_Factory;
- typedef JAWS_Cache_Hash<KEY, HASH_FUNC, EQ_FUNC> Cache_Hash;
- typedef JAWS_Cache_List<KEY, FACTORY, HASH_FUNC, EQ_FUNC> Cache_Heap;
-
- JAWS_Cache_Manager (ACE_Allocator *alloc = 0,
- JAWS_Cache_Object_Factory *cof = 0,
-
- size_t hashsize = 2048, // number of hash buckets
- size_t maxsize = 65535, // max number of in memory
- // objects
-
- size_t maxobjsize = 256, // max cached object size in kB
- size_t minobjsize = 0, // min cached object size in kB
-
- size_t highwater = 100, // max size of cache in MB
- size_t lowwater = 50, // min size of cache when
- // expiring after highwater
- // has been reached
-
- int timetolive = -1, // amt of time the lowest
- // priority item is allowed to
- // remain in the cache
-
- int counted = 0 // flag for whether to use
- // counts
- );
-
- int open (ACE_Allocator *alloc = 0,
- JAWS_Cache_Object_Factory *cof = 0,
-
- size_t hashsize = 1024, // number of hash buckets
- size_t maxsize = 4096, // max number of in memory
- // objects
-
- size_t maxobjsize = 5120, // max cached object size in kB
- size_t minobjsize = 0, // min cached object size in kB
-
- size_t highwater = 50, // max size of cache in MB
- size_t lowwater = 30, // min size of cache when
- // expiring after highwater
- // has been reached
-
- int timetolive = -1, // amount of time the lowest
- // priority item is allowed to
- // remain in the cache
-
- int counted = 0 // flag for whether to use
- // counts
- );
-
- ~JAWS_Cache_Manager (void);
-
- int close (void);
-
- // Search Methods
-
- int GET (const KEY &key, JAWS_Cache_Object *&cobj);
- // Retrieve the object associated with key from cache. Return 0 on
- // success, -1 on failure.
-
- int PUT (const KEY &key, const void *data, size_t size,
- JAWS_Cache_Object *&obj);
- // Inserts or replaces object associated with key into cache.
- // Return 0 on success, -1 on failure.
-
- int MAKE (const void *data, size_t size, JAWS_Cache_Object *&cobj);
- // Create a cached object, increment reference count.
-
- int TAKE (JAWS_Cache_Object *const &cobj);
- // Increment reference count.
-
- int DROP (JAWS_Cache_Object *&cobj);
- // Decrement reference count on cached object, perhaps delete.
- // Returns 0 if only decremented, 1 if deleted, -1 if error.
-
- int FLUSH (void);
- // Removes lowest priority object from cache.
-
-protected:
-
- int GET_i (const KEY &key, JAWS_Cache_Object *&object);
- // Retrieve the object associated with key from cache. Return 0 on
- // success, -1 on failure.
-
- int PUT_i (const KEY &key, const void *data, size_t size,
- JAWS_Cache_Object *&object);
- // Inserts or replaces object associated with key into cache.
- // Return 0 on success, -1 on failure.
-
- int FLUSH_i (void);
- // Removes lowest priority object from cache.
-
- int FLUSH_i (const KEY &key);
- // Removes object associated with key from cache.
-
- int DROP_i (JAWS_Cache_Object *&cobj);
- // Decrement reference count on cached object, perhaps delete.
-
-private:
-
- ACE_Allocator *allocator_;
- JAWS_Cache_Object_Factory *factory_;
-
- size_t hashsize_;
- size_t maxsize_;
- size_t maxobjsize_;
- size_t minobjsize_;
- size_t highwater_;
- size_t lowwater_;
- size_t waterlevel_;
- int timetolive_;
- int counted_;
-
- Cache_Hash *hash_;
- Cache_Heap *heap_;
-
- ACE_SYNCH_RW_MUTEX lock_;
-
-};
-
-
-template <class KEY, class DATA, class CACHE_MANAGER>
-class JAWS_Cache_Proxy
-{
-public:
- typedef CACHE_MANAGER Cache_Manager;
- typedef ACE_Singleton<Cache_Manager, ACE_SYNCH_MUTEX>
- Cache_Manager_Singleton;
-
- JAWS_Cache_Proxy (const KEY &, Cache_Manager * = 0);
- // Corresponds to a GET
-
- JAWS_Cache_Proxy (const KEY &, DATA *, size_t, Cache_Manager * = 0);
- // Corresponds to a U/PUT
-
- virtual ~JAWS_Cache_Proxy (void);
-
- DATA *data (void) const;
- operator DATA * (void) const;
-
- virtual int close (DATA *);
-
-private:
-
- JAWS_Cache_Object *object_;
- Cache_Manager *manager_;
-
-
-};
-
-
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "JAWS/Cache_Manager_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#endif /* JAWS_CACHE_MANAGER_T_H */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Cache_Object.cpp b/apps/JAWS/PROTOTYPE/JAWS/Cache_Object.cpp
deleted file mode 100644
index abb582aa9c7..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Cache_Object.cpp
+++ /dev/null
@@ -1,302 +0,0 @@
-// $Id$
-
-#include "JAWS/Cache_Object.h"
-
-JAWS_Cache_Object::JAWS_Cache_Object (const void *data, size_t size)
- : internal_ (0),
- data_ (data),
- size_ (size)
-{
- this->first_access_ = ACE_OS::time ((time_t *)0);
- this->new_last_access_ = this->last_access_ = this->first_access_;
-}
-
-JAWS_Cache_Object::~JAWS_Cache_Object ()
-{
- this->data_ = 0;
- this->size_ = 0;
-}
-
-void *
-JAWS_Cache_Object::internal (void) const
-{
- return this->internal_;
-}
-
-void
-JAWS_Cache_Object::internal (void *item)
-{
- this->internal_ = item;
-}
-
-const void *
-JAWS_Cache_Object::data (void) const
-{
- return this->data_;
-}
-
-size_t
-JAWS_Cache_Object::size (void) const
-{
- return this->size_;
-}
-
-unsigned int
-JAWS_Cache_Object::count (void) const
-{
- return this->count_i ();
-}
-
-int
-JAWS_Cache_Object::acquire (void)
-{
- this->new_last_access_ = ACE_OS::time ((time_t *)0);
- return this->acquire_i ();
-}
-
-int
-JAWS_Cache_Object::release (void)
-{
- this->last_access_ = this->new_last_access_;
- return this->release_i ();
-}
-
-time_t
-JAWS_Cache_Object::last_access (void) const
-{
- return this->last_access_;
-}
-
-time_t
-JAWS_Cache_Object::first_access (void) const
-{
- return this->first_access_;
-}
-
-unsigned int
-JAWS_Cache_Object::priority (void) const
-{
- return this->priority_i ();
-}
-
-void *
-JAWS_Cache_Object::heap_item (void) const
-{
- return this->heap_item_;
-}
-
-void
-JAWS_Cache_Object::heap_item (void *item)
-{
- this->heap_item_ = item;
-}
-
-
-JAWS_Referenced_Cache_Object::
-JAWS_Referenced_Cache_Object (const void *data, size_t size)
- : JAWS_Cache_Object (data, size),
- lock_adapter_ (count_)
-{
-}
-
-JAWS_Referenced_Cache_Object::~JAWS_Referenced_Cache_Object (void)
-{
-}
-
-ACE_Lock &
-JAWS_Referenced_Cache_Object::lock (void)
-{
- return this->lock_adapter_;
-}
-
-unsigned int
-JAWS_Referenced_Cache_Object::count_i (void) const
-{
- JAWS_Referenced_Cache_Object *mutable_this
- = (JAWS_Referenced_Cache_Object *) this;
-
- if (mutable_this->count_.tryacquire_write () == 0)
- return 0;
-
- return 1;
-}
-
-int
-JAWS_Referenced_Cache_Object::acquire_i (void)
-{
- return this->count_.acquire_read ();
-}
-
-int
-JAWS_Referenced_Cache_Object::release_i (void)
-{
- return this->count_.release ();
-}
-
-unsigned int
-JAWS_Referenced_Cache_Object::priority_i (void) const
-{
- unsigned int priority = ~(0U);
- double delta
- = ACE_OS::difftime (this->last_access (), this->first_access ());
-
- if (delta >= 0.0 && delta < ~(0U))
- priority = (unsigned) delta;
-
- return priority;
-}
-
-
-
-JAWS_Counted_Cache_Object::
-JAWS_Counted_Cache_Object (const void *data, size_t size)
- : JAWS_Cache_Object (data, size),
- count_ (0),
- new_count_ (0),
- lock_adapter_ (lock_)
-{
-}
-
-JAWS_Counted_Cache_Object::~JAWS_Counted_Cache_Object (void)
-{
-}
-
-ACE_Lock &
-JAWS_Counted_Cache_Object::lock (void)
-{
- return this->lock_adapter_;
-}
-
-unsigned int
-JAWS_Counted_Cache_Object::count_i (void) const
-{
- JAWS_Counted_Cache_Object *mutable_this = (JAWS_Counted_Cache_Object *) this;
-
- {
- ACE_Guard<ACE_SYNCH_MUTEX> g (mutable_this->lock_);
-
- return this->count_;
- }
-}
-
-int
-JAWS_Counted_Cache_Object::acquire_i (void)
-{
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
-
- this->new_count_++;
- return 0;
-}
-
-int
-JAWS_Counted_Cache_Object::release_i (void)
-{
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
-
- this->new_count_--;
- this->count_ = this->new_count_;
- return 0;
-}
-
-unsigned int
-JAWS_Counted_Cache_Object::priority_i (void) const
-{
- return this->count_i ();
-}
-
-JAWS_Cache_Object_Factory::JAWS_Cache_Object_Factory (ACE_Allocator *alloc)
- : allocator_ (alloc)
-{
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-}
-
-JAWS_Cache_Object_Factory::~JAWS_Cache_Object_Factory (void)
-{
-}
-
-int
-JAWS_Cache_Object_Factory::open (ACE_Allocator *alloc)
-{
- this->allocator_ = alloc;
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- return 0;
-}
-
-JAWS_Referenced_Cache_Object_Factory
-::JAWS_Referenced_Cache_Object_Factory (ACE_Allocator *alloc)
- : JAWS_Cache_Object_Factory (alloc)
-{
-}
-
-JAWS_Referenced_Cache_Object_Factory
-::~JAWS_Referenced_Cache_Object_Factory (void)
-{
-}
-
-JAWS_Cache_Object *
-JAWS_Referenced_Cache_Object_Factory::create (const void *data, size_t size)
-{
- JAWS_Referenced_Cache_Object *obj;
-
- size_t obj_size = sizeof (JAWS_Referenced_Cache_Object);
- ACE_NEW_MALLOC_RETURN (obj,
- (JAWS_Referenced_Cache_Object *)
- this->allocator_->malloc (obj_size),
- JAWS_Referenced_Cache_Object (data, size), 0);
-
- return obj;
-}
-
-void
-JAWS_Referenced_Cache_Object_Factory::destroy (JAWS_Cache_Object *obj)
-{
- JAWS_Referenced_Cache_Object *rco = (JAWS_Referenced_Cache_Object *) obj;
- ACE_DES_FREE (rco, this->allocator_->free, JAWS_Referenced_Cache_Object);
-}
-
-JAWS_Counted_Cache_Object_Factory
-::JAWS_Counted_Cache_Object_Factory (ACE_Allocator *alloc)
- : JAWS_Cache_Object_Factory (alloc)
-{
-}
-
-JAWS_Counted_Cache_Object_Factory
-::~JAWS_Counted_Cache_Object_Factory (void)
-{
-}
-
-JAWS_Cache_Object *
-JAWS_Counted_Cache_Object_Factory::create (const void *data, size_t size)
-{
- JAWS_Counted_Cache_Object *obj;
-
- size_t obj_size = sizeof (JAWS_Counted_Cache_Object);
- ACE_NEW_MALLOC_RETURN (obj,
- (JAWS_Counted_Cache_Object *)
- this->allocator_->malloc (obj_size),
- JAWS_Counted_Cache_Object (data, size), 0);
-
- return obj;
-}
-
-void
-JAWS_Counted_Cache_Object_Factory::destroy (JAWS_Cache_Object *obj)
-{
- JAWS_Counted_Cache_Object *cco = (JAWS_Counted_Cache_Object *) obj;
- ACE_DES_FREE (cco, this->allocator_->free, JAWS_Counted_Cache_Object);
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-// These are only specialized with ACE_HAS_THREADS.
-template class ACE_Lock_Adapter<ACE_SYNCH_RW_MUTEX>;
-template class ACE_Lock_Adapter<ACE_SYNCH_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-// These are only specialized with ACE_HAS_THREADS.
-#pragma instantiate ACE_Lock_Adapter<ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Lock_Adapter<ACE_SYNCH_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Cache_Object.h b/apps/JAWS/PROTOTYPE/JAWS/Cache_Object.h
deleted file mode 100644
index fbd570b4140..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Cache_Object.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-
-#ifndef JAWS_CACHE_OBJECT_H
-#define JAWS_CACHE_OBJECT_H
-
-#include "ace/OS.h"
-#include "ace/Synch.h"
-#include "ace/Malloc.h"
-
-// Cache bucket -- use Hash_Bucket to hold cacheable objects.
-
-class JAWS_Cache_Object
-{
-public:
- JAWS_Cache_Object (const void *, size_t);
- virtual ~JAWS_Cache_Object (void);
-
- void *internal (void) const;
- void internal (void *);
-
- const void *data (void) const;
- size_t size (void) const;
- unsigned int count (void) const;
-
- int acquire (void);
- int release (void);
-
- time_t last_access (void) const;
- time_t first_access (void) const;
-
- unsigned int priority (void) const;
-
- enum { ACE_CO_REFERENCED, ACE_CO_COUNTED };
-
- void *heap_item (void) const;
- void heap_item (void *item);
-
- virtual ACE_Lock & lock (void) = 0;
-
-protected:
-
- virtual unsigned int count_i (void) const = 0;
- virtual int acquire_i (void) = 0;
- virtual int release_i (void) = 0;
- virtual unsigned int priority_i (void) const = 0;
-
-private:
-
- void *internal_;
- const void *data_;
- size_t size_;
-
- time_t last_access_;
- time_t first_access_;
- time_t new_last_access_;
-
- void *heap_item_;
-
-};
-
-class JAWS_Referenced_Cache_Object : public JAWS_Cache_Object
-{
-public:
- JAWS_Referenced_Cache_Object (const void *, size_t);
- virtual ~JAWS_Referenced_Cache_Object (void);
-
- virtual ACE_Lock & lock (void);
-
-protected:
-
- virtual unsigned int count_i (void) const;
- virtual int acquire_i (void);
- virtual int release_i (void);
- virtual unsigned int priority_i (void) const;
-
-private:
-
- /* MUTABLE */ ACE_SYNCH_RW_MUTEX count_;
- /* MUTABLE */ ACE_Lock_Adapter<ACE_SYNCH_RW_MUTEX> lock_adapter_;
-
-};
-
-class JAWS_Counted_Cache_Object : public JAWS_Cache_Object
-{
-public:
- JAWS_Counted_Cache_Object (const void *, size_t);
- virtual ~JAWS_Counted_Cache_Object (void);
-
- virtual ACE_Lock & lock (void);
-
-protected:
-
- virtual unsigned int count_i (void) const;
- virtual int acquire_i (void);
- virtual int release_i (void);
- virtual unsigned int priority_i (void) const;
-
-private:
-
- unsigned int count_;
- unsigned int new_count_;
- /* MUTABLE */ ACE_SYNCH_MUTEX lock_;
- /* MUTABLE */ ACE_Lock_Adapter<ACE_SYNCH_MUTEX> lock_adapter_;
-
-};
-
-class JAWS_Cache_Object_Factory
-{
-public:
-
- JAWS_Cache_Object_Factory (ACE_Allocator *alloc = 0);
- virtual ~JAWS_Cache_Object_Factory (void);
-
- int open (ACE_Allocator *alloc = 0);
-
- virtual JAWS_Cache_Object * create (const void *, size_t) = 0;
- virtual void destroy (JAWS_Cache_Object *) = 0;
-
-protected:
-
- ACE_Allocator *allocator_;
-
-};
-
-class JAWS_Referenced_Cache_Object_Factory : public JAWS_Cache_Object_Factory
-{
-public:
- JAWS_Referenced_Cache_Object_Factory (ACE_Allocator *alloc = 0);
- virtual ~JAWS_Referenced_Cache_Object_Factory (void);
-
- virtual JAWS_Cache_Object * create (const void *, size_t);
- virtual void destroy (JAWS_Cache_Object *);
-
-};
-
-class JAWS_Counted_Cache_Object_Factory : public JAWS_Cache_Object_Factory
-{
-public:
- JAWS_Counted_Cache_Object_Factory (ACE_Allocator *alloc = 0);
- virtual ~JAWS_Counted_Cache_Object_Factory (void);
-
- virtual JAWS_Cache_Object * create (const void *, size_t);
- virtual void destroy (JAWS_Cache_Object *);
-
-};
-
-#endif /* JAWS_CACHE_OBJECT_H */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Concurrency.cpp b/apps/JAWS/PROTOTYPE/JAWS/Concurrency.cpp
deleted file mode 100644
index 26670687799..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Concurrency.cpp
+++ /dev/null
@@ -1,349 +0,0 @@
-// $Id$
-
-#include "JAWS/JAWS.h"
-#include "JAWS/Concurrency.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/Pipeline.h"
-#include "JAWS/Pipeline_Tasks.h"
-#include "JAWS/Policy.h"
-#include "JAWS/Data_Block.h"
-#include "JAWS/Waiter.h"
-#include "JAWS/Reaper.h"
-
-ACE_RCSID(JAWS, Concurrency, "$Id$")
-
-JAWS_Concurrency_Base::JAWS_Concurrency_Base (void)
- : ACE_Task<ACE_MT_SYNCH> (new ACE_Thread_Manager),
- mb_acquired_ (0),
- mb_ (0),
- reaper_ (new JAWS_Reaper (this))
-{
-}
-
-JAWS_Concurrency_Base::~JAWS_Concurrency_Base (void)
-{
- delete this->thr_mgr_;
- delete this->reaper_;
-}
-
-ACE_Message_Block *
-JAWS_Concurrency_Base::singleton_mb (void)
-{
- if (this->mb_acquired_ == 0)
- {
- ACE_Guard<ACE_Thread_Mutex> g(this->lock_);
-
- if (this->mb_acquired_ == 0)
- {
- int result;
- ACE_Message_Block *mb;
-
- result = this->getq (mb);
- this->mb_acquired_ = 1;
-
- if (result == -1 || mb == 0)
- return 0;
-
- this->mb_ = mb;
- }
- }
-
- return this->mb_;
-}
-
-int
-JAWS_Concurrency_Base::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
-{
- return this->putq (mb, tv);
-}
-
-int
-JAWS_Concurrency_Base::svc (void)
-{
- JAWS_TRACE ("JAWS_Concurrency_Base::svc");
-
- ACE_Message_Block *mb; // The message queue element
- JAWS_Data_Block *db; // Contains the task list
-
- mb = this->singleton_mb ();
-
- // A NULL data block indicates that the thread should shut
- // itself down
- if (mb == 0)
- {
- JAWS_TRACE ("JAWS_Concurrency_Base::svc, empty message block");
- return -1;
- }
-
- db = ACE_dynamic_cast (JAWS_Data_Block *, mb);
-
- this->svc_loop (db);
-
- return 0;
-}
-
-int
-JAWS_Concurrency_Base::svc_loop (JAWS_Data_Block *db)
-{
- JAWS_TRACE ("JAWS_Concurrency_Base::svc_loop");
-
- // Thread specific message block and data block
- ACE_DEBUG ((LM_DEBUG, "(%t) Creating DataBlock\n"));
- JAWS_Data_Block *ts_db = new JAWS_Data_Block (*db);
- if (ts_db == 0)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "JAWS_Concurrency_Base::svc_hook"));
- return -1;
- }
-
- for (;;)
- {
- if (this->svc_hook (ts_db) != 0)
- break;
- ts_db->task (db->task ());
- ts_db->policy (db->policy ());
- ts_db->payload (0);
- ts_db->io_handler (0);
- ts_db->rd_ptr (ts_db->wr_ptr ());
- ts_db->crunch ();
- }
-
- ACE_DEBUG ((LM_DEBUG, "(%t) Deleting DataBlock\n"));
- delete ts_db; // ts_db->release ();
-
- return 0;
-}
-
-int
-JAWS_Concurrency_Base::svc_hook (JAWS_Data_Block *ts_db)
-{
- JAWS_TRACE ("JAWS_Concurrency_Base::svc_hook");
-
- int result = 0;
-
- JAWS_Dispatch_Policy *policy; // Contains task policies
- JAWS_IO_Handler *handler; // Keeps the state of the task
- JAWS_Pipeline_Handler *task; // The task itself
- JAWS_Data_Block *mb; // The task message block
-
- policy = ts_db->policy ();
- task = ts_db->task ();
- handler = 0;
-
- // Get the waiter index
- JAWS_Waiter *waiter = JAWS_Waiter_Singleton::instance ();
- int waiter_index = waiter->index ();
-
- mb = ts_db;
- do
- {
- JAWS_TRACE ("JAWS_Concurrency_Base::svc_hook, looping");
-
- // Use a NULL task to make the thread recycle now
- if (task == 0)
- {
- JAWS_TRACE ("JAWS_Concurrency_Base::svc_hook, recycling");
- if (handler)
- handler->done ();
- handler = 0;
- JAWS_IO_Handler **ioh = waiter->find (waiter_index);
- *ioh = 0;
- break;
- }
-
- // the task should set the handler to the appropriate next step
- result = task->put (mb);
-
- if (result == 0 || result == -3)
- handler = mb->io_handler ();
- else handler = 0;
-
- if (result == 1 || result == 2)
- {
- JAWS_TRACE ("JAWS_Concurrency_Base::svc_hook, waiting");
- // need to wait for an asynchronous event
-
- // We need a way to destroy all the handlers created by the
- // Asynch_Acceptor. Figure this out later.
- handler = waiter->wait_for_completion (waiter_index);
- if (handler == 0)
- {
- JAWS_TRACE ("JAWS_Concurrency_Base::svc_hook, bad proactor");
- // Proactor failed
- result = -1;
- break;
- }
- }
-
- if (result < 0)
- {
- JAWS_TRACE ("JAWS_Concurrency_Base::svc_hook, negative result");
- if (result == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "JAWS_Concurrency_Base::svc_hook"));
-
- if (handler)
- handler->done ();
-
- handler = 0;
- if (result == -2)
- {
- JAWS_IO_Handler **ioh = waiter->find (waiter_index);
- *ioh = 0;
- result = 0;
- }
- break;
- }
-
- if (handler == 0)
- break;
-
- mb = handler->message_block ();
- task = handler->task ();
- result = 0;
- }
- while (result == 0);
-
- return result;
-}
-
-int
-JAWS_Concurrency_Base::activate_hook (void)
-{
- return 0;
-}
-
-JAWS_Dispatcher::JAWS_Dispatcher (void)
- : policy_(0)
-{
-}
-
-int
-JAWS_Dispatcher::dispatch (ACE_Message_Block *mb)
-{
- return this->policy ()->concurrency ()->put (mb);
-}
-
-JAWS_Dispatch_Policy *
-JAWS_Dispatcher::policy (void)
-{
- return this->policy_;
-}
-
-JAWS_Dispatch_Policy *
-JAWS_Dispatcher::policy (JAWS_Dispatch_Policy *p)
-{
- this->policy_ = p;
- return this->policy_;
-}
-
-int
-JAWS_Thread_Pool_Task::make (long flags, int nthreads, int maxthreads)
-{
- this->flags_ = flags;
- this->nthreads_ = nthreads;
- this->maxthreads_ = maxthreads;
-
- ACE_thread_t *thr_names = new ACE_thread_t[nthreads];
-
- if (this->activate (flags | THR_SUSPENDED,
- nthreads,
- 0, // force active
- ACE_DEFAULT_THREAD_PRIORITY,
- -1, // group id
- 0, // ACE_Task_Base
- 0, // thread handles
- 0, // stack
- 0, // stack size
- thr_names) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "JAWS_Thread_Pool_Task::activate"),
- -1);
-
- for (int i = 0; i < nthreads; i++)
- {
- JAWS_Thread_ID thr_id(thr_names[i]);
- JAWS_IO_Handler *dummy = 0;
-
- JAWS_Waiter_Singleton::instance ()->insert (thr_id, dummy);
- }
-
- delete[] thr_names;
-
- this->thr_mgr_->resume_all ();
-
- if (this->reaper_->open () == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "JAWS_Reaper::open"),
- -1);
-
- return 0;
-}
-
-int
-JAWS_Thread_Per_Task::make (long flags, int maxthreads)
-{
- this->flags_ = flags;
- this->maxthreads_ = maxthreads;
- return 0;
-}
-
-int
-JAWS_Thread_Per_Task::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
-{
- JAWS_TRACE ("JAWS_Thread_Per_Task::put");
-
- this->putq (mb, tv);
- return this->activate_hook ();
-}
-
-int
-JAWS_Thread_Per_Task::svc_loop (JAWS_Data_Block *db)
-{
- return this->svc_hook (db);
-}
-
-int
-JAWS_Thread_Per_Task::activate_hook (void)
-{
- const int force_active = 1;
- const int nthreads = 1;
-
- ACE_thread_t thr_name;
-
- if (this->activate (this->flags_ | THR_SUSPENDED,
- nthreads,
- force_active,
- ACE_DEFAULT_THREAD_PRIORITY,
- -1, // group id
- 0, // ACE_Task_Base
- 0, // thread handle
- 0, // stack
- 0, // stack size
- &thr_name) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "JAWS_Thread_Pool_Task::activate"),
- -1);
-
- JAWS_Thread_ID thr_id (thr_name);
- JAWS_IO_Handler *dummy = 0;
-
- // In the thread-per-request strategy, need to take care of the
- // case when the waiter array is full. Think about that problem
- // later.
- JAWS_Waiter_Singleton::instance ()->insert (thr_id, dummy);
-
- this->thr_mgr_->resume (thr_name);
-
- if (this->reaper_->open () == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "JAWS_Reaper::open"),
- -1);
-
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton<JAWS_Dispatcher, ACE_SYNCH_MUTEX>;
-template class ACE_Singleton<JAWS_Thread_Pool_Task, ACE_SYNCH_MUTEX>;
-template class ACE_Singleton<JAWS_Thread_Per_Task, ACE_SYNCH_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton<JAWS_Dispatcher, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Singleton<JAWS_Thread_Pool_Task, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Singleton<JAWS_Thread_Per_Task, ACE_SYNCH_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Concurrency.h b/apps/JAWS/PROTOTYPE/JAWS/Concurrency.h
deleted file mode 100644
index 0b7019fe581..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Concurrency.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_CONCURRENCY_H
-#define JAWS_CONCURRENCY_H
-
-#include "ace/Singleton.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-#include "ace/Task.h"
-
-#include "JAWS/Export.h"
-#include "JAWS/IO.h"
-
-class JAWS_Data_Block;
-class JAWS_Dispatch_Policy;
-class JAWS_Reaper;
-
-class JAWS_Export JAWS_Concurrency_Base : public ACE_Task<ACE_MT_SYNCH>
- // = TITLE
- // Base class for different concurrency models
- //
- // = DESCRIPTION
- // Provides a default implementaion of the virtual put() method
- // which calls putq(), but can be overloaded to do something
- // synchronously, such as call put_next().
-
-{
-public:
- JAWS_Concurrency_Base (void);
- ~JAWS_Concurrency_Base (void);
-
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
- virtual int svc (void);
-
- virtual int svc_loop (JAWS_Data_Block *db);
- // in thread pool, this is an infinite loop
- // in thread per request, it is a single iteration
-
- virtual int svc_hook (JAWS_Data_Block *db);
- // does the work of following the pipeline tasks
-
- virtual int activate_hook (void);
- // callback for IO_Handler when accept completes
-
- virtual ACE_Message_Block *singleton_mb (void);
-
-protected:
- int mb_acquired_;
- ACE_Message_Block *mb_;
- JAWS_Reaper *reaper_;
- ACE_SYNCH_MUTEX lock_;
-};
-
-class JAWS_Export JAWS_Dispatcher
- // = TITLE
- // The class that is responsible to delivering events to the
- // appropriate concurrency mechanism.
- //
- // = DESCRIPTION
- // JAWS_IO_Handler calls into the dispatcher so that the completed
- // IO can find a thread to take care of it.
-{
-public:
- JAWS_Dispatcher (void);
-
- int dispatch (ACE_Message_Block *mb);
- JAWS_Dispatch_Policy *policy (void);
- JAWS_Dispatch_Policy *policy (JAWS_Dispatch_Policy *p);
-
-private:
- JAWS_Dispatch_Policy *policy_;
-};
-
-class JAWS_Export JAWS_Thread_Pool_Task : public JAWS_Concurrency_Base
- // = TITLE
- // Used to implement Thread Pool Concurrency Strategy
- //
- // = DESCRIPTION
- // This task is created to hold a pool of threads that receive
- // requests through the message queue.
-{
-public:
- virtual int make (long flags, int nthreads, int maxthreads);
- // Initiate the thread_pool task
-
-private:
- long flags_;
- int nthreads_;
- int maxthreads_;
-};
-
-class JAWS_Export JAWS_Thread_Per_Task : public JAWS_Concurrency_Base
- // = TITLE
- // Used to implement Thread Per Request Concurrency Strategy
- //
- // = DESCRIPTION
- // As each new message arrives from the queue, a new thread is
- // spawned to handle it. This is done by overloading put to call
- // activate.
-{
-public:
- virtual int make (long flags, int maxthreads);
- // Initiate the thread_per task
-
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
-
- virtual int svc_loop (JAWS_Data_Block *db);
- // a single iteration
-
- virtual int activate_hook (void);
- // callback for IO_Handler when accept completes
-
-private:
- long flags_;
- int maxthreads_;
-};
-
-typedef ACE_Singleton<JAWS_Dispatcher, ACE_SYNCH_MUTEX>
- JAWS_Dispatcher_Singleton;
-
-typedef ACE_Singleton<JAWS_Thread_Pool_Task, ACE_SYNCH_MUTEX>
- JAWS_Thread_Pool_Singleton;
-
-typedef ACE_Singleton<JAWS_Thread_Per_Task, ACE_SYNCH_MUTEX>
- JAWS_Thread_Per_Singleton;
-
-#endif /* !defined (JAWS_CONCURRENCY_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Data_Block.cpp b/apps/JAWS/PROTOTYPE/JAWS/Data_Block.cpp
deleted file mode 100644
index 9fb8b56cb20..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Data_Block.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-// $Id$
-
-#include "JAWS/Data_Block.h"
-#include "JAWS/Policy.h"
-
-ACE_RCSID(JAWS, Data_Block, "$Id$")
-
-JAWS_Data_Block::JAWS_Data_Block (void)
- : ACE_Message_Block (JAWS_DATA_BLOCK_SIZE),
- io_handler_ (0),
- policy_ (0),
- task_ (0),
- payload_ (0)
-{
-}
-
-JAWS_Data_Block::JAWS_Data_Block (JAWS_Data_Block &db)
- : ACE_Message_Block (JAWS_DATA_BLOCK_SIZE),
- io_handler_ (db.io_handler_),
- policy_ (db.policy_),
- task_ (db.task_),
- payload_ (db.payload_)
-{
-}
-
-JAWS_Data_Block::~JAWS_Data_Block (void)
-{
-}
-
-JAWS_Pipeline_Handler *
-JAWS_Data_Block::task (void)
-{
- return this->task_;
-}
-
-JAWS_IO_Handler *
-JAWS_Data_Block::io_handler (void)
-{
- return this->io_handler_;
-}
-
-JAWS_Dispatch_Policy *
-JAWS_Data_Block::policy (void)
-{
- return this->policy_;
-}
-
-void *
-JAWS_Data_Block::payload (void)
-{
- return this->payload_;
-}
-
-void
-JAWS_Data_Block::task (JAWS_Pipeline_Handler *taskp)
-{
- this->task_ = taskp;
-}
-
-void
-JAWS_Data_Block::io_handler (JAWS_IO_Handler *handlerp)
-{
- this->io_handler_ = handlerp;
-}
-
-void
-JAWS_Data_Block::policy (JAWS_Dispatch_Policy *policyp)
-{
- this->policy_ = policyp;
-}
-
-void
-JAWS_Data_Block::payload (void *payloadp)
-{
- this->payload_ = payloadp;
-}
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Data_Block.h b/apps/JAWS/PROTOTYPE/JAWS/Data_Block.h
deleted file mode 100644
index 94afaa93586..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Data_Block.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_DATA_BLOCK_H
-#define JAWS_DATA_BLOCK_H
-
-#include "ace/Message_Block.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "JAWS/Export.h"
-#include "JAWS/Pipeline.h"
-
-class JAWS_IO_Handler;
-class JAWS_Dispatch_Policy;
-class JAWS_Data_Block;
-class JAWS_Pipeline_Handler;
-
-class JAWS_Export JAWS_Data_Block : public ACE_Message_Block
-// = TITLE
-// Defines the communication unit between pipeline components
-{
-public:
- JAWS_Data_Block (void);
- JAWS_Data_Block (JAWS_Data_Block &db);
- ~JAWS_Data_Block (void);
-
- JAWS_Pipeline_Handler *task (void);
- JAWS_IO_Handler *io_handler (void);
- JAWS_Dispatch_Policy *policy (void);
- void *payload (void);
-
- void task (JAWS_Pipeline_Handler *taskp);
- void io_handler (JAWS_IO_Handler *handlerp);
- void policy (JAWS_Dispatch_Policy *policyp);
- void payload (void *payloadp);
-
- enum { JAWS_DATA_BLOCK_SIZE = 8192 };
-
-private:
- JAWS_IO_Handler *io_handler_;
- JAWS_Dispatch_Policy *policy_;
- JAWS_Pipeline_Handler *task_;
-
- void *payload_;
-};
-
-#endif /* !defined (JAWS_DATA_BLOCK_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Export.h b/apps/JAWS/PROTOTYPE/JAWS/Export.h
deleted file mode 100644
index f06afcdb767..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Export.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// $Id$
-
-// Definition for Win32 Export directives.
-// This file is generated automatically by
-// ${TAO_ROOT}/TAO_IDL/GenExportH.BAT
-// ------------------------------
-#ifndef JAWS_EXPORT_H
-#define JAWS_EXPORT_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (JAWS_HAS_DLL)
-# if (JAWS_HAS_DLL == 1)
-# if defined (JAWS_BUILD_DLL)
-# define JAWS_Export ACE_Proper_Export_Flag
-# define JAWS_SINGLETON_DECLARATION(T) \
- ACE_EXPORT_SINGLETON_DECLARATION (T)
-# else
-# define JAWS_Export ACE_Proper_Import_Flag
-# define JAWS_SINGLETON_DECLARATION(T) \
- ACE_IMPORT_SINGLETON_DECLARATION (T)
-# endif /* JAWS_BUILD_DLL */
-# else
-# define JAWS_Export
-# define JAWS_SINGLETON_DECLARATION(T)
-# endif /* ! JAWS_HAS_DLL == 1 */
-#else
-# define JAWS_Export
-# define JAWS_SINGLETON_DECLARATION(T)
-#endif /* JAWS_HAS_DLL */
-
-#endif /* JAWS_EXPORT_H */
- // End of auto generated file.
-
diff --git a/apps/JAWS/PROTOTYPE/JAWS/FILE.cpp b/apps/JAWS/PROTOTYPE/JAWS/FILE.cpp
deleted file mode 100644
index 16a2e0e0efc..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/FILE.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-// $Id$
-
-#include "ace/OS.h"
-#include "ace/Synch.h"
-
-#include "JAWS/FILE.h"
-
-
-JAWS_FILE::JAWS_FILE (void)
- : map_ (0)
-{
-}
-
-ACE_Mem_Map *
-JAWS_FILE::mem_map (int length,
- int prot,
- int share,
- void *addr,
- off_t offset,
- LPSECURITY_ATTRIBUTES sa) const
-{
- JAWS_FILE *mutable_this = (JAWS_FILE *) this;
- return mutable_this->mem_map (length, prot, share, addr, offset, sa);
-}
-
-ACE_Mem_Map *
-JAWS_FILE::mem_map (int length,
- int prot,
- int share,
- void *addr,
- off_t offset,
- LPSECURITY_ATTRIBUTES sa)
-{
- if (this->map_ == 0)
- {
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
-
- if (this->map_ == 0)
- {
- this->map_ = new ACE_Mem_Map;
- if (this->map_ != 0)
- {
- int r = this->map_->map (this->get_handle (),
- length, prot, share, addr, offset, sa);
- if (r < 0)
- {
- delete this->map_;
- this->map_ = 0;
- }
- }
- }
- }
-
- return this->map_;
-
-}
-
-
-ACE_Mem_Map *
-JAWS_FILE::map (void) const
-{
- return this->map_;
-}
diff --git a/apps/JAWS/PROTOTYPE/JAWS/FILE.h b/apps/JAWS/PROTOTYPE/JAWS/FILE.h
deleted file mode 100644
index 93ab721379f..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/FILE.h
+++ /dev/null
@@ -1,43 +0,0 @@
-// $Id$
-
-/* -*- c++ -*- */
-
-#ifndef JAWS_FILE_H
-#define JAWS_FILE_H
-
-#include "ace/FILE_IO.h"
-#include "ace/Mem_Map.h"
-
-#include "JAWS/Export.h"
-
-class JAWS_Export JAWS_FILE : public ACE_FILE_IO
-//
-// Like ACE_FILE_IO, but support for ACE_Mem_Map;
-{
-public:
-
- JAWS_FILE (void);
-
- ACE_Mem_Map *mem_map (int length = -1,
- int prot = PROT_RDWR,
- int share = ACE_MAP_PRIVATE,
- void *addr = 0,
- off_t offset = 0,
- LPSECURITY_ATTRIBUTES sa = 0);
- ACE_Mem_Map *mem_map (int length = -1,
- int prot = PROT_RDWR,
- int share = ACE_MAP_PRIVATE,
- void *addr = 0,
- off_t offset = 0,
- LPSECURITY_ATTRIBUTES sa = 0) const;
-
- ACE_Mem_Map *map (void) const;
-
-private:
-
- ACE_SYNCH_MUTEX lock_;
- ACE_Mem_Map *map_;
-
-};
-
-#endif /* JAWS_FILE_H */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Filecache.cpp b/apps/JAWS/PROTOTYPE/JAWS/Filecache.cpp
deleted file mode 100644
index fc17424ba86..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Filecache.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-// $Id$
-
-#include "JAWS/Filecache.h"
-#include "JAWS/Cache_List_T.h"
-
-void
-JAWS_Referenced_Filecache_Factory::destroy (JAWS_Cache_Object *object)
-{
- JAWS_FILE *file = (JAWS_FILE *) object->data ();
- file->close ();
- if (file->map ())
- file->map ()->close ();
- delete file;
- this->JAWS_Referenced_Cache_Object_Factory::destroy (object);
-}
-
-void
-JAWS_Counted_Filecache_Factory::destroy (JAWS_Cache_Object *object)
-{
- JAWS_FILE *file = (JAWS_FILE *) object->data ();
- file->close ();
- if (file->map ())
- file->map ()->close ();
- delete file;
- this->JAWS_Counted_Cache_Object_Factory::destroy (object);
-}
-
-JAWS_Cached_FILE::JAWS_Cached_FILE (const char *const &filename,
- JAWS_Filecache_Proxy::Cache_Manager *cm)
- : JAWS_Filecache_Proxy (filename, cm)
-{
- ACE_HANDLE handle = ACE_INVALID_HANDLE;
-
- if (this->data () != 0)
- handle = ACE_OS::dup (this->data ()->get_handle ());
-
- this->file_.set_handle (handle);
-}
-
-JAWS_Cached_FILE::JAWS_Cached_FILE (const char *const &filename,
- JAWS_FILE *&file,
- size_t size,
- JAWS_Filecache_Proxy::Cache_Manager *cm)
- : JAWS_Filecache_Proxy (filename, file, size, cm)
-{
-}
-
-JAWS_Cached_FILE::~JAWS_Cached_FILE (void)
-{
- this->file_.close ();
-}
-
-ACE_FILE_IO *
-JAWS_Cached_FILE::file (void)
-{
- return &(this->file_);
-}
-
-ACE_Mem_Map *
-JAWS_Cached_FILE::mmap (void)
-{
- return this->data ()->mem_map ();
-}
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class JAWS_Cache_List_Item<JAWS_Strdup_String,
- JAWS_Referenced_Filecache_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_List_Item<JAWS_Strdup_String,
- JAWS_Counted_Filecache_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_List<JAWS_Strdup_String,
- JAWS_Referenced_Filecache_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_List<JAWS_Strdup_String,
- JAWS_Counted_Filecache_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_Manager<JAWS_Strdup_String,
- JAWS_Referenced_Filecache_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_Manager<JAWS_Strdup_String,
- JAWS_Counted_Filecache_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_Proxy<char const *,
- JAWS_FILE,
- JAWS_Referenced_Filecache_Manager>;
-template class JAWS_Cache_Proxy<char const *,
- JAWS_FILE,
- JAWS_Counted_Filecache_Manager>;
-template class ACE_Singleton<JAWS_Referenced_Filecache_Manager,
- ACE_Thread_Mutex>;
-template class ACE_Singleton<JAWS_Counted_Filecache_Manager,
- ACE_Thread_Mutex>;
-template class ACE_Singleton<JAWS_Referenced_Filecache_Factory,
- ACE_Thread_Mutex>;
-template class ACE_Singleton<JAWS_Counted_Filecache_Factory, ACE_Thread_Mutex>;
-
-#endif
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Filecache.h b/apps/JAWS/PROTOTYPE/JAWS/Filecache.h
deleted file mode 100644
index c55fa498a7a..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Filecache.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_FILECACHE_H
-#define JAWS_FILECACHE_H
-
-#include "ace/OS.h"
-#include "ace/FILE_IO.h"
-
-#include "JAWS/Cache_Manager.h"
-#include "JAWS/FILE.h"
-#include "JAWS/Export.h"
-
-class JAWS_Export JAWS_Referenced_Filecache_Factory
- : public JAWS_Referenced_Cache_Object_Factory
-{
-public:
-
- virtual void destroy (JAWS_Cache_Object *);
-
-};
-
-class JAWS_Export JAWS_Counted_Filecache_Factory
- : public JAWS_Counted_Cache_Object_Factory
-{
-public:
-
- virtual void destroy (JAWS_Cache_Object *);
-
-};
-
-typedef JAWS_Cache_Manager<JAWS_Strdup_String,
- JAWS_Referenced_Filecache_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>
- JAWS_Referenced_Filecache_Manager;
-
-typedef JAWS_Cache_Manager<JAWS_Strdup_String,
- JAWS_Counted_Filecache_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>
- JAWS_Counted_Filecache_Manager;
-
-typedef JAWS_Referenced_Filecache_Manager JAWS_Filecache_Manager;
-
-typedef JAWS_Cache_Proxy<const char *,
- JAWS_FILE, JAWS_Filecache_Manager>
- JAWS_Filecache_Proxy;
-
-class JAWS_Export JAWS_Cached_FILE : private JAWS_Filecache_Proxy
-{
-public:
-
- JAWS_Cached_FILE (const char *const &filename,
- JAWS_Filecache_Proxy::Cache_Manager *cm = 0);
- JAWS_Cached_FILE (const char *const &filename,
- JAWS_FILE *&file,
- size_t size,
- JAWS_Filecache_Proxy::Cache_Manager *cm = 0);
-
- ~JAWS_Cached_FILE (void);
-
- ACE_FILE_IO * file (void);
- ACE_Mem_Map * mmap (void);
-
-private:
-
- ACE_FILE_IO file_;
-
-};
-
-
-#endif /* JAWS_FILECACHE_H */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Hash_Bucket_T.cpp b/apps/JAWS/PROTOTYPE/JAWS/Hash_Bucket_T.cpp
deleted file mode 100644
index f498ce12681..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Hash_Bucket_T.cpp
+++ /dev/null
@@ -1,462 +0,0 @@
-// $Id$
-
-#ifndef JAWS_HASH_BUCKET_T_CPP
-#define JAWS_HASH_BUCKET_T_CPP
-
-#include "JAWS/Hash_Bucket_T.h"
-
-// -----------------
-// Hash_Bucket_Item
-// -----------------
-
-template <class EXT_ID, class INT_ID>
-JAWS_Hash_Bucket_Item<EXT_ID, INT_ID>
-::JAWS_Hash_Bucket_Item (const EXT_ID &ext_id, const INT_ID &int_id,
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *next,
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *prev)
- : ext_id_ (ext_id),
- int_id_ (int_id),
- next_ (next),
- prev_ (prev)
-{
-}
-
-template <class EXT_ID, class INT_ID>
-JAWS_Hash_Bucket_Item<EXT_ID, INT_ID>
-::JAWS_Hash_Bucket_Item (JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *next,
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *prev)
- : next_ (next),
- prev_ (prev)
-{
-}
-
-template <class EXT_ID, class INT_ID>
-JAWS_Hash_Bucket_Item<EXT_ID, INT_ID>::~JAWS_Hash_Bucket_Item (void)
-{
- this->next_ = 0;
- this->prev_ = 0;
-}
-
-
-// ---------------------
-// Hash_Bucket_DLCStack
-// ---------------------
-
-template <class EXT_ID, class INT_ID>
-JAWS_Hash_Bucket_DLCStack<EXT_ID, INT_ID>::
-JAWS_Hash_Bucket_DLCStack (ACE_Allocator *alloc)
- : allocator_ (alloc),
- head_ (0),
- tail_ (0)
-{
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-}
-
-template <class EXT_ID, class INT_ID>
-JAWS_Hash_Bucket_DLCStack<EXT_ID, INT_ID>::
-~JAWS_Hash_Bucket_DLCStack (void)
-{
- this->reset ();
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack<EXT_ID, INT_ID>::
-is_empty (void) const
-{
- return this->head_ == 0 && this->tail_ == 0;
-}
-
-template <class EXT_ID, class INT_ID> JAWS_HASH_BUCKET_ITEM *
-JAWS_Hash_Bucket_DLCStack<EXT_ID, INT_ID>::
-push (const EXT_ID &ext_id, const INT_ID &int_id)
-{
- size_t malloc_size = sizeof (JAWS_HASH_BUCKET_ITEM);
- JAWS_HASH_BUCKET_ITEM *item;
- ACE_NEW_MALLOC_RETURN (item,
- (JAWS_HASH_BUCKET_ITEM *)
- this->allocator_->malloc (malloc_size),
- JAWS_HASH_BUCKET_ITEM (ext_id, int_id), 0);
-
- if (item != 0)
- {
- if (this->is_empty ())
- {
- this->head_ = item;
- this->tail_ = item;
- item->next_ = this->head_;
- item->prev_ = this->tail_;
- }
- else
- {
- item->next_ = this->head_;
- item->prev_ = this->tail_;
- this->head_->prev_ = item;
- this->tail_->next_ = item;
- this->head_ = item;
- }
- }
-
- return item;
-}
-
-template <class EXT_ID, class INT_ID> JAWS_HASH_BUCKET_ITEM *
-JAWS_Hash_Bucket_DLCStack<EXT_ID, INT_ID>::pop (void)
-{
- JAWS_HASH_BUCKET_ITEM *item = 0;
-
- if (! this->is_empty ())
- {
- item = this->head_;
- if (this->head_ == this->tail_)
- {
- this->head_ = this->tail_ = 0;
- }
- else
- {
- this->head_ = this->head_->next_;
- this->head_->prev_ = this->tail_;
- this->tail_->next_ = this->head_;
- }
- item->next_ = 0;
- item->prev_ = 0;
- }
-
- return item;
-}
-
-template <class EXT_ID, class INT_ID> void
-JAWS_Hash_Bucket_DLCStack<EXT_ID, INT_ID>::reset (void)
-{
- JAWS_HASH_BUCKET_ITEM *item = 0;
-
- while ((item = this->pop ()) != 0)
- this->remove (item);
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack<EXT_ID, INT_ID>::remove (JAWS_HASH_BUCKET_ITEM *item)
-{
- int result = 0;
-
- if (item != 0)
- {
- if (item->next_ != 0 && item->prev_ != 0)
- {
- if (item->next_ != item)
- {
- if (this->head_ == item)
- this->head_ = item->next_;
- if (this->tail_ == item)
- this->tail_ = item->prev_;
- item->next_->prev_ = item->prev_;
- item->prev_->next_ = item->next_;
- }
- else
- {
- this->head_ = this->tail_ = 0;
- }
- item->next_ = 0;
- item->prev_ = 0;
- }
-
- if (item->next_ == 0 && item->prev_ == 0)
- {
- ACE_DES_FREE_TEMPLATE2 (item, this->allocator_->free,
- JAWS_Hash_Bucket_Item, EXT_ID, INT_ID);
- }
- else
- result = -1;
- }
-
- return result;
-}
-
-
-// ------------------------------
-// Hash_Bucket_DLCStack_Iterator
-// ------------------------------
-
-template <class EXT_ID, class INT_ID>
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::
-JAWS_Hash_Bucket_DLCStack_Iterator (const JAWS_HASH_BUCKET_DLCSTACK &dlcstack)
- : dlcstack_ (dlcstack),
- next_ (0),
- prev_ (0),
- done_ (0)
-{
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::first (void)
-{
- int result = 0;
-
- if (! this->dlcstack_.is_empty ())
- {
- result = 1;
- this->next_ = this->dlcstack_.head_;
- this->prev_ = this->dlcstack_.tail_;
- this->done_ = 0;
- }
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::last (void)
-{
- return this->first ();
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::advance (void)
-{
- int result = 1;
-
- if (this->next_ != 0)
- {
- this->prev_ = this->next_;
- this->next_ = this->next_->next_;
- if (this->next_ == this->dlcstack_.head_)
- {
- this->done_ = 1;
- result = 0;
- }
- }
- else
- result = this->first ();
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::revert (void)
-{
- int result = 1;
-
- if (this->prev_ != 0)
- {
- this->next_ = this->prev_;
- this->prev_ = this->prev_->prev_;
- if (this->prev_ == this->dlcstack_.tail_)
- {
- this->done_ = 1;
- result = 0;
- }
- }
- else
- result = this->last ();
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::
-next (JAWS_HASH_BUCKET_ITEM *&item)
-{
- if (this->next_ == 0)
- this->first ();
-
- item = this->next_;
- return ! this->done ();
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::
-next (JAWS_HASH_BUCKET_ITEM *&item) const
-{
- item = this->next_;
- return ! this->done ();
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::
-prev (JAWS_HASH_BUCKET_ITEM *&item)
-{
- if (this->prev_ == 0)
- this->last ();
-
- item = this->prev_;
- return ! this->done ();
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::
-prev (JAWS_HASH_BUCKET_ITEM *&item) const
-{
- item = this->prev_;
- return ! this->done ();
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::done (void) const
-{
- return this->done_;
-}
-
-
-// --------------------
-// Hash_Bucket_Manager
-// --------------------
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC>
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>
-::JAWS_Hash_Bucket_Manager (ACE_Allocator *alloc)
- : dlcstack_ (alloc)
-{
- if (alloc == 0)
- this->dlcstack_.allocator_ = ACE_Allocator::instance ();
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> int
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>::open (ACE_Allocator *alloc)
-{
- this->dlcstack_.allocator_ = alloc;
- if (alloc == 0)
- this->dlcstack_.allocator_ = ACE_Allocator::instance ();
-
- return 0;
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC>
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>::~JAWS_Hash_Bucket_Manager (void)
-{
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> int
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>::close (void)
-{
- this->dlcstack_.reset ();
- return 0;
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> JAWS_HASH_BUCKET_ITEM *
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>
-::find_i (const EXT_ID &ext_id) const
-{
- JAWS_HASH_BUCKET_DLCSTACK_ITERATOR iter (this->dlcstack_);
- JAWS_HASH_BUCKET_ITEM *item = 0;
-
- if (iter.first ())
- while (!iter.done ())
- {
- iter.next (item);
- if (item && EQ_FUNC (item->ext_id_, ext_id))
- break;
- iter.advance ();
- }
-
- return (item && EQ_FUNC (item->ext_id_, ext_id)) ? item : 0;
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> int
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>::find (const EXT_ID &ext_id,
- INT_ID &int_id) const
-{
- int result = -1;
- JAWS_HASH_BUCKET_ITEM *item = this->find_i (ext_id);
-
- if (item)
- {
- int_id = item->int_id_;
- result = 0;
- }
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> int
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>
-::find (const EXT_ID &ext_id) const
-{
- INT_ID dummy_id;
- return this->find (ext_id, dummy_id);
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> int
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>::bind (const EXT_ID &ext_id,
- const INT_ID &int_id)
-{
- int result = 0;
-
- if (this->find (ext_id) == 0)
- {
- result = 1;
- }
- else
- {
- if (this->dlcstack_.push (ext_id, int_id) == 0)
- result = -1;
- }
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> int
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>::trybind (const EXT_ID &ext_id,
- INT_ID &int_id)
-{
- int result = 0;
-
- if (this->find (ext_id, int_id) == 0)
- {
- result = 1;
- }
- else
- {
- if (this->dlcstack_.push (ext_id, int_id) == 0)
- result = -1;
- }
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> int
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>::rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- EXT_ID &old_ext_id,
- INT_ID &old_int_id)
-{
- int result = 0;
- JAWS_HASH_BUCKET_ITEM *item = this->find_i (ext_id);
-
- if (item)
- {
- result = 1;
- old_ext_id = item->ext_id_;
- old_int_id = item->int_id_;
- this->dlcstack_.remove (item);
- }
-
- if (this->dlcstack_.push (ext_id, int_id) == 0)
- result = -1;
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> int
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>::unbind (const EXT_ID &ext_id,
- INT_ID &int_id)
-{
- int result = -1;
- JAWS_HASH_BUCKET_ITEM *item = this->find_i (ext_id);
-
- if (item)
- {
- result = 0;
- int_id = item->int_id_;
- this->dlcstack_.remove (item);
- }
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> int
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>::unbind (const EXT_ID &ext_id)
-{
- INT_ID dummy_id;
- return this->unbind (ext_id, dummy_id);
-}
-
-#endif /* JAWS_HASH_BUCKET_T_CPP */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Hash_Bucket_T.h b/apps/JAWS/PROTOTYPE/JAWS/Hash_Bucket_T.h
deleted file mode 100644
index 9a394a2b42d..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Hash_Bucket_T.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/* -*- c++ -*- */
-// Hey Emacs! This is a C++ file!
-// $Id$
-
-#ifndef JAWS_HASH_BUCKET_T_H
-#define JAWS_HASH_BUCKET_T_H
-
-#include "ace/Containers.h"
-
-#define JAWS_HASH_BUCKET_ITEM JAWS_Hash_Bucket_Item<EXT_ID, INT_ID>
-#define JAWS_HASH_BUCKET_DLCSTACK JAWS_Hash_Bucket_DLCStack<EXT_ID, INT_ID>
-#define JAWS_HASH_BUCKET_DLCSTACK_ITERATOR \
- JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>
-
-
-// Why Hash_Bucket?
-//
-// This is an attempt to simplify the creation of high-performance
-// hash tables with respect to concurrent access by multiple threads.
-// To this end, we attempt to raise the amount of concurrency through
-// the use or readers/writer locks rather than through mutual
-// exclusion.
-
-template <class EXT_ID, class INT_ID>
-class JAWS_Hash_Bucket_Item
-{
-public:
- JAWS_Hash_Bucket_Item (const EXT_ID &ext_id, const INT_ID &int_id,
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *next = 0,
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *prev = 0);
- JAWS_Hash_Bucket_Item (JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *next = 0,
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *prev = 0);
-
- ~JAWS_Hash_Bucket_Item (void);
- // Destructor.
-
- EXT_ID ext_id_;
- // Key used to look up an entry.
-
- INT_ID int_id_;
- // The contents of the entry itself.
-
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *next_;
- // Pointer to the next item in the bucket of overflow nodes.
-
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *prev_;
- // Pointer to the prev item in the bucket of overflow nodes.
-
-};
-
-
-template <class EXT_ID, class INT_ID> class JAWS_Hash_Bucket_DLCStack_Iterator;
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC>
-class JAWS_Hash_Bucket_Manager;
-
-template <class EXT_ID, class INT_ID>
-class JAWS_Hash_Bucket_DLCStack
-// Create a doubly linked circular stack to be managed by the
-// Hash_Bucket_Manager
-{
- friend JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>;
-
-public:
-
- JAWS_Hash_Bucket_DLCStack (ACE_Allocator *alloc = 0);
- ~JAWS_Hash_Bucket_DLCStack (void);
-
- int is_empty (void) const;
- // Returns 1 if the container is empty, otherwise returns 0.
-
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *push (const EXT_ID &ext_id,
- const INT_ID &int_id);
- // Adds <new_item> to the head of the list.
- // Returns the new item that was inserted.
-
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *pop (void);
- // Removes and returns the first <item> in the list. Returns
- // internal node's address on success, 0 if the queue was empty.
- // This method will *not* free the internal node.
-
- void reset (void);
- // Reset the <JAWS_Hash_Bucket_DLCStack> to be empty.
- // Notice that since no one is interested in the items within,
- // This operation will delete all items.
-
- int remove (JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *item);
- // If item is still part of the CStack, it is removed.
- // In anycase, if there is no error, item is freed.
- // Returns 0 if ok, -1 on error.
-
- ACE_Allocator *allocator_;
-
-private:
-
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *head_;
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *tail_;
-
-};
-
-
-template <class EXT_ID, class INT_ID>
-class JAWS_Hash_Bucket_DLCStack_Iterator
-{
-public:
-
- JAWS_Hash_Bucket_DLCStack_Iterator (const JAWS_HASH_BUCKET_DLCSTACK &dlcstack);
-
- int first (void);
- // Moves to first element in the set, clears done flag. Returns 0
- // if empty, 1 otherwise.
-
- int last (void);
- // Moves to last element in the set, clears done flag. Returns 0 if
- // empty, 1 otherwise.
-
- int advance (void);
- // Move forward by one element of set. Returns 0 if empty or we end
- // up being the first element in the set, 1 otherwise. If advance
- // takes us to the first element, done is set to true.
-
- int revert (void);
- // Move backward by one element of set. Returns 0 if empty or we
- // end up being the last element in the set, 1 otherwise. If revert
- // takes us to the last element, done is set to true.
-
- int next (JAWS_HASH_BUCKET_ITEM *&item);
- int next (JAWS_HASH_BUCKET_ITEM *&item) const;
- // Pass back the next item. Returns 0 if done is true, 1 otherwise.
-
- int prev (JAWS_HASH_BUCKET_ITEM *&item);
- int prev (JAWS_HASH_BUCKET_ITEM *&item) const;
- // Pass back the previous item. Returns 0 if done is true, 1
- // otherwise.
-
- int done (void) const;
- // Returns 1 if done_ flag is set, 0 otherwise. done_ flag is set
- // if next takes us to first element or prev takes us to last
- // element.
-
-private:
- const JAWS_HASH_BUCKET_DLCSTACK &dlcstack_;
- JAWS_HASH_BUCKET_ITEM *next_;
- JAWS_HASH_BUCKET_ITEM *prev_;
- int done_;
-};
-
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC>
-class JAWS_Hash_Bucket_Manager
-{
-public:
- JAWS_Hash_Bucket_Manager (ACE_Allocator *alloc = 0);
- int open (ACE_Allocator *alloc = 0);
-
- ~JAWS_Hash_Bucket_Manager (void);
- int close (void);
-
- int find (const EXT_ID &ext_id) const;
- int find (const EXT_ID &ext_id, INT_ID &int_id) const;
- // Locate <ext_id> and pass out parameter via <int_id>. If found,
- // return 0, returns -1 if not found.
-
- int bind (const EXT_ID &ext_id, const INT_ID &int_id);
- int trybind (const EXT_ID &ext_id, INT_ID &int_id);
- // Associate <ext_id> with <int_id> if and only if <ext_id> is not
- // in the map. If <ext_id> is already in the map then the <int_id>
- // parameter is assigned the existing value in the map. Returns 0
- // if a new entry is bound successfully, returns 1 if an attempt is
- // made to bind an existing entry, and returns -1 if failures occur.
-
- int rebind (const EXT_ID &ext_id, const INT_ID &int_id,
- EXT_ID &old_ext_id, INT_ID &old_int_id);
- // Associate <ext_id> with <int_id>. If <ext_id> is not in the map
- // then behaves just like <bind>. Otherwise, store the old values
- // of <ext_id> and <int_id> into the "out" parameters and rebind the
- // new parameters. This is very useful if you need to have an
- // atomic way of updating <JAWS_Hash_Map_Entrys> and you also need full
- // control over memory allocation. Returns 0 if a new entry is
- // bound successfully, returns 1 if an existing entry was rebound,
- // and returns -1 if failures occur.
-
- int unbind (const EXT_ID &ext_id);
- int unbind (const EXT_ID &ext_id, INT_ID &int_id);
- // Break any association of <ext_id>. Returns the value of <int_id>
- // in case the caller needs to deallocate memory. Return value is 0
- // if unbind succeeds, -1 otherwise.
-
-protected:
-
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *find_i (const EXT_ID &ext_id) const;
- // Returns the item associated with ext_id if found in list.
- // Returns NULL if not found.
-
-private:
-
- JAWS_Hash_Bucket_DLCStack<EXT_ID, INT_ID> dlcstack_;
-
-};
-
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "JAWS/Hash_Bucket_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#endif /* JAWS_HASH_BUCKET_T_H */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Headers.cpp b/apps/JAWS/PROTOTYPE/JAWS/Headers.cpp
deleted file mode 100644
index b41ddd87ff5..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Headers.cpp
+++ /dev/null
@@ -1,165 +0,0 @@
-/* $Id$ */
-
-#include "JAWS/Headers.h"
-
-// Header Data
-
-JAWS_Header_Data::JAWS_Header_Data (const char *name, const char *value,
- int type)
- : header_name_ (name ? ACE_OS::strdup (name) : 0),
- header_value_ (value ? ACE_OS::strdup (value) : 0),
- header_type_ (type)
-{
-}
-
-JAWS_Header_Data::JAWS_Header_Data (const char *name, int type,
- const char *value)
- : header_name_ (name ? ACE_OS::strdup (name) : 0),
- header_value_ (value ? ACE_OS::strdup (value) : 0),
- header_type_ (type)
-{
-}
-
-JAWS_Header_Data::~JAWS_Header_Data (void)
-{
- if ( this->header_name_ )
- ACE_OS::free ((void *)this->header_name_);
- if ( this->header_value_ )
- ACE_OS::free ((void *)this->header_value_);
- this->header_name_ = 0;
- this->header_value_ = 0;
-}
-
-const char *
-JAWS_Header_Data::header_name (void) const
-{
- return this->header_name_;
-}
-
-const char *
-JAWS_Header_Data::header_value (void) const
-{
- return this->header_value_;
-}
-
-int
-JAWS_Header_Data::header_type (void) const
-{
- return this->header_type_;
-}
-
-void
-JAWS_Header_Data::header_name (const char *name)
-{
- if (this->header_name_)
- ACE_OS::free ((void *)this->header_name_);
- this->header_name_ = name ? ACE_OS::strdup (name) : 0;
-}
-
-void
-JAWS_Header_Data::header_value (const char *value)
-{
- if (this->header_value_)
- ACE_OS::free ((void *)this->header_value_);
- this->header_value_ = value ? ACE_OS::strdup (value) : 0;
-}
-
-void
-JAWS_Header_Data::header_type (int type)
-{
- this->header_type_ = type;
-}
-
-
-// Header Table
-
-JAWS_Headers::JAWS_Headers (void)
- : iter_ (*this)
-{
-}
-
-JAWS_Headers::~JAWS_Headers (void)
-{
-}
-
-JAWS_Header_Table_Iterator &
-JAWS_Headers::iter (void)
-{
- return this->iter_;
-}
-
-int
-JAWS_Headers::insert (JAWS_Header_Data *new_data)
-{
- // Since there may be duplicate header entries, we don't worry about
- // doing this find anymore. Make the application developer figure
- // out how to interpret duplicate entries.
-
- return (JAWS_Header_Table::insert_tail (new_data) ? 0 : -1);
-}
-
-JAWS_Header_Data *
-JAWS_Headers::find (const char *const &header_name)
-{
- this->iter_.first ();
- return this->find_next (header_name);
-}
-
-JAWS_Header_Data *
-JAWS_Headers::find_next (const char *const &header_name)
-{
- JAWS_Header_Data *data = 0;
- JAWS_Header_Table_Iterator &i = this->iter_;
-
- while (! i.done ())
- {
- data = i.next ();
- if (data != 0)
- {
- if (ACE_OS::strcasecmp (data->header_name (), header_name) != 0)
- data = 0;
- }
- i.advance ();
- if (data != 0)
- break;
- }
-
- return data;
-}
-
-void
-JAWS_Headers::remove_all (const char *const &header_name)
-{
- JAWS_Header_Data *data;
- int done;
-
- do
- {
- JAWS_Header_Table_Iterator i (*this);
- i.first ();
- done = 1;
- while (! i.done ())
- {
- data = i.next ();
- if (data != 0
- && ACE_OS::strcasecmp (data->header_name (), header_name) == 0)
- {
- i.remove ();
- delete data;
- done = 0;
- break;
- }
- else
- i.advance ();
- }
- }
- while (! done);
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_DLList<JAWS_Header_Data>;
-template class ACE_DLList_Iterator<JAWS_Header_Data>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_DLList<JAWS_Header_Data>
-#pragma instantiate ACE_DLList_Iterator<JAWS_Header_Data>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Headers.h b/apps/JAWS/PROTOTYPE/JAWS/Headers.h
deleted file mode 100644
index f16db921915..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Headers.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_HEADERS_H
-#define JAWS_HEADERS_H
-
-#include "JAWS/Export.h"
-#include "ace/Containers.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Use scenario --
-
-// Parse_Headers will parse out a header name and then will want to
-// update "last header data" in Header_Info. At this point, only the
-// header name is strdup'd.
-
-// Parse_Headers will then append additional data to the header value
-// until the header value of "last header data" is done.
-
-// Parse_Headers will notify Header_Info that "last header data" is
-// done and is ready to be inserted into the Headers data structure.
-// At this point, the header value is strdup'd.
-
-class JAWS_Export JAWS_Header_Data
-{
-public:
- JAWS_Header_Data (const char *name, const char *value = 0, int type = 0);
- JAWS_Header_Data (const char *name, int type, const char *value = 0);
- ~JAWS_Header_Data (void);
-
- const char * header_name (void) const;
- const char * header_value (void) const;
- int header_type (void) const;
-
- void header_name (const char *name);
- void header_value (const char *value);
- void header_type (int type);
-
-private:
- const char * header_name_;
- const char * header_value_;
- int header_type_;
-};
-
-typedef ACE_DLList<JAWS_Header_Data> JAWS_Header_Table;
-typedef ACE_DLList_Iterator<JAWS_Header_Data> JAWS_Header_Table_Iterator;
-
-class JAWS_Export JAWS_Headers : public JAWS_Header_Table
-{
-public:
- JAWS_Headers (void);
- ~JAWS_Headers (void);
-
- int insert (JAWS_Header_Data *new_data);
- // insert the new data 0 -> success, -1 -> failure
-
- JAWS_Header_Data * find (const char *const &header_name);
- // find always begins from the beginning of the list
- // result is NULL if not found
-
- JAWS_Header_Data * find_next (const char *const &header_name);
- // behaves like find, but from where that last find left off
- // result is NULL if not found
-
- void remove_all (const char *const &header_name);
- // remove all headers from list that match header_name
-
- JAWS_Header_Table_Iterator &iter (void);
- // returns an iterator to the headers container
-
-private:
- JAWS_Header_Table_Iterator iter_;
-};
-
-#endif /* !defined (JAWS_HEADERS_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/IO.cpp b/apps/JAWS/PROTOTYPE/JAWS/IO.cpp
deleted file mode 100644
index e5542efc15d..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/IO.cpp
+++ /dev/null
@@ -1,561 +0,0 @@
-// $Id$
-
-#include "ace/Message_Block.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/Filecache.h"
-
-#include "JAWS/JAWS.h"
-#include "JAWS/Data_Block.h"
-#include "JAWS/Policy.h"
-#include "JAWS/IO.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/IO_Acceptor.h"
-#include "JAWS/Filecache.h"
-
-// #include "HTTP_Helpers.h"
-
-ACE_RCSID(JAWS, IO, "$Id$")
-
-JAWS_IO::JAWS_IO (void)
- : handle_ (ACE_INVALID_HANDLE),
- handler_ (0),
- inet_addr_ (0),
- acceptor_ (0)
-{
-}
-
-JAWS_IO::~JAWS_IO (void)
-{
-}
-
-#if 0
-ACE_HANDLE
-JAWS_IO::handle (void)
-{
- return this->handle_;
-}
-
-void
-JAWS_IO::handle (ACE_HANDLE handle)
-{
- this->handle_ = handle;
-}
-
-void
-JAWS_IO::handler (JAWS_IO_Handler *handler)
-{
- this->handler_ = handler;
-}
-
-void
-JAWS_IO::acceptor (JAWS_IO_Acceptor *acceptor)
-{
- this->acceptor_ = acceptor;
-}
-#endif /* 0 */
-
-JAWS_Synch_IO::JAWS_Synch_IO (void)
-{
- this->acceptor_ = JAWS_IO_Synch_Acceptor_Singleton::instance ();
-}
-
-JAWS_Synch_IO::~JAWS_Synch_IO (void)
-{
- if (this->handle_ != ACE_INVALID_HANDLE)
- ACE_OS::closesocket (this->handle_);
-}
-
-void
-JAWS_Synch_IO::accept (JAWS_IO_Handler *ioh,
- ACE_Message_Block *,
- unsigned int)
-{
- ACE_SOCK_Stream new_stream;
- new_stream.set_handle (ACE_INVALID_HANDLE);
- if (this->acceptor_->accept (new_stream) == -1)
- ioh->accept_error ();
- else
- ioh->accept_complete (new_stream.get_handle ());
-}
-
-void
-JAWS_Synch_IO::read (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb,
- unsigned int size)
-{
- JAWS_TRACE ("JAWS_Synch_IO::read");
-
- ACE_SOCK_Stream stream;
-
- stream.set_handle (ioh->handle ());
- int result = stream.recv (mb->wr_ptr (), size);
-
- if (result <= 0)
- ioh->read_error ();
- else
- {
- JAWS_TRACE ("JAWS_Synch_IO::read success");
- mb->wr_ptr (result);
- ioh->read_complete (mb);
- }
-}
-
-void
-JAWS_Synch_IO::receive_file (JAWS_IO_Handler *ioh,
- const char *filename,
- void *initial_data,
- unsigned int initial_data_length,
- unsigned int entire_length)
-{
- ACE_Filecache_Handle handle (filename,
- (int) entire_length);
-
- int result = handle.error ();
-
- if (result == ACE_Filecache_Handle::ACE_SUCCESS)
- {
- ACE_SOCK_Stream stream;
- stream.set_handle (ioh->handle ());
-
- int bytes_to_memcpy = ACE_MIN (entire_length, initial_data_length);
- ACE_OS::memcpy (handle.address (), initial_data, bytes_to_memcpy);
-
- int bytes_to_read = entire_length - bytes_to_memcpy;
-
- int bytes = stream.recv_n ((char *)
- handle.address () + initial_data_length,
- bytes_to_read);
- if (bytes == bytes_to_read)
- ioh->receive_file_complete ();
- else
- result = -1;
- }
-
- if (result != ACE_Filecache_Handle::ACE_SUCCESS)
- ioh->receive_file_error (result);
-}
-
-void
-JAWS_Synch_IO::transmit_file (JAWS_IO_Handler *ioh,
- ACE_HANDLE handle,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size)
-{
- int result = 0;
-
- if (handle != ACE_INVALID_HANDLE)
- {
- ACE_SOCK_Stream stream;
- stream.set_handle (ioh->handle ());
-
- if ((unsigned long) stream.send_n (header, header_size) < header_size)
- result = -1;
- else
- {
- int count;
- char buf[BUFSIZ];
-
- do
- {
- count = ACE::recv (handle, buf, sizeof (buf));
- if (count <= 0)
- break;
-
- if (stream.send_n (buf, count) < count)
- result = -1;
- }
- while (result == 0);
-
- if ((unsigned long) stream.send_n (trailer, trailer_size)
- < trailer_size)
- result = -1;
- }
- }
-
- if (result == 0)
- ioh->transmit_file_complete ();
- else
- ioh->transmit_file_error (result);
-}
-
-void
-JAWS_Synch_IO::transmit_file (JAWS_IO_Handler *ioh,
- const char *filename,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size)
-{
- int result = 0;
-
- if (filename == 0)
- {
- ioh->transmit_file_error (-1);
- return;
- }
-
- JAWS_Cached_FILE cf (filename);
-
- if (cf.file ()->get_handle () != ACE_INVALID_HANDLE)
- {
-#if defined (ACE_JAWS_BASELINE) || defined (ACE_WIN32)
- ACE_SOCK_Stream stream;
- stream.set_handle (ioh->handle ());
-
- if ((stream.send_n (header, header_size) == header_size)
- && ((u_long) stream.send_n (handle.address (), handle.size ())
- == handle.size ())
- && (stream.send_n (trailer, trailer_size) == trailer_size))
- this->handler_->transmit_file_complete ();
- else
- result = -1;
-#else
- // Attempting to use writev
- // Is this faster?
- iovec iov[3];
- int iovcnt = 0;
- if (header_size > 0)
- {
- iov[iovcnt].iov_base = ACE_const_cast(char*,header);
- iov[iovcnt].iov_len = header_size;
- iovcnt++;
- }
-
- ACE_FILE_Info info;
- cf.file ()->get_info (info);
- if (cf.file ()->get_info (info) == 0 && info.size_ > 0)
- {
- iov[iovcnt].iov_base = (char *) cf.mmap ()->addr ();
- iov[iovcnt].iov_len = info.size_;
- iovcnt++;
- }
- if (trailer_size > 0)
- {
- iov[iovcnt].iov_base = ACE_const_cast(char*,trailer);
- iov[iovcnt].iov_len = trailer_size;
- iovcnt++;
- }
- if (ACE_OS::writev (ioh->handle (), iov, iovcnt) < 0)
- result = -1;
- else
- ioh->transmit_file_complete ();
-#endif /* ACE_JAWS_BASELINE */
- }
-
- if (result != 0)
- ioh->transmit_file_error (result);
-}
-
-void
-JAWS_Synch_IO::send_confirmation_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length)
-{
- this->send_message (ioh, buffer, length);
- ioh->confirmation_message_complete ();
-}
-
-void
-JAWS_Synch_IO::send_error_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length)
-{
- this->send_message (ioh, buffer, length);
- ioh->error_message_complete ();
-}
-
-void
-JAWS_Synch_IO::send_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length)
-{
- ACE_SOCK_Stream stream;
- stream.set_handle (ioh->handle ());
- stream.send_n (buffer, length);
-}
-
-// This only works on Win32
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
-
-JAWS_Asynch_IO::JAWS_Asynch_IO (void)
-{
-}
-
-JAWS_Asynch_IO::~JAWS_Asynch_IO (void)
-{
- if (this->handle_ != ACE_INVALID_HANDLE)
- ACE_OS::closesocket (this->handle_);
-}
-
-void
-JAWS_Asynch_IO::accept (JAWS_IO_Handler *ioh,
- ACE_Message_Block *,
- unsigned int)
-{
- JAWS_TRACE ("JAWS_Asynch_IO::accept");
-
- ioh->idle ();
-
- JAWS_Data_Block *db = ioh->message_block ();
- //ACE_HANDLE listen_handle = db->policy ()->acceptor ()->get_handle ();
-
- //JAWS_Asynch_IO_Handler *aioh =
- // ACE_dynamic_cast (JAWS_Asynch_IO_Handler *, ioh);
-
- size_t bytes_to_read = JAWS_Data_Block::JAWS_DATA_BLOCK_SIZE;
-
- if (db->policy ()->acceptor ()->accept (bytes_to_read, ioh) == -1)
- ioh->accept_error ();
-}
-
-void
-JAWS_Asynch_IO::read (JAWS_IO_Handler *ioh,
- ACE_Message_Block* mb,
- unsigned int size)
-{
- JAWS_TRACE ("JAWS_Asynch_IO::read");
-
- ioh->idle ();
-
- JAWS_Asynch_IO_Handler *aioh =
- ACE_dynamic_cast (JAWS_Asynch_IO_Handler *, ioh);
-
- ACE_Asynch_Read_Stream ar;
-
- if (ar.open (*(aioh->handler ()), aioh->handle ()) == -1
- || ar.read (*mb, size) == -1)
- aioh->read_error ();
-}
-
-void
-JAWS_Asynch_IO::receive_file (JAWS_IO_Handler *ioh,
- const char *filename,
- void *initial_data,
- unsigned int initial_data_length,
- unsigned int entire_length)
-{
- JAWS_TRACE ("JAWS_Asynch_IO::receive_file");
-
- ioh->idle ();
-
- JAWS_Asynch_IO_Handler *aioh =
- ACE_dynamic_cast (JAWS_Asynch_IO_Handler *, ioh);
-
- ACE_Message_Block *mb = 0;
- ACE_Filecache_Handle *handle;
-
- ACE_NEW (handle, ACE_Filecache_Handle (filename, entire_length, ACE_NOMAP));
-
- int result = handle->error ();
-
- if (result == ACE_Filecache_Handle::ACE_SUCCESS)
- {
- ACE_OS::memcpy (handle->address (),
- initial_data,
- initial_data_length);
-
- int bytes_to_read = entire_length - initial_data_length;
-
- ACE_NEW (mb, ACE_Message_Block ((char *)handle->address ()
- + initial_data_length, bytes_to_read));
-
- if (mb == 0)
- {
- errno = ENOMEM;
- result = -1;
- }
- else
- {
- ACE_Asynch_Read_Stream ar;
-
- if (ar.open (*(aioh->handler ()), aioh->handle ()) == -1
- || ar.read (*mb, mb->size () - mb->length (), handle) == -1)
- result = -1;
- }
- }
-
- if (result != ACE_Filecache_Handle::ACE_SUCCESS)
- {
- this->handler_->receive_file_error (result);
- delete mb;
- delete handle;
- }
-}
-
-void
-JAWS_Asynch_IO::transmit_file (JAWS_IO_Handler *ioh,
- ACE_HANDLE handle,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size)
-{
- JAWS_TRACE ("JAWS_Asynch_IO::transmit_file");
-
- ioh->idle ();
-
- JAWS_Asynch_IO_Handler *aioh =
- ACE_dynamic_cast (JAWS_Asynch_IO_Handler *, ioh);
-
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer = 0;
-
- int result = 0;
-
- if (handle != ACE_INVALID_HANDLE)
- {
- ACE_Message_Block hdr_mb (header, header_size);
- ACE_Message_Block trl_mb (trailer, trailer_size);
-
- header_and_trailer =
- new ACE_Asynch_Transmit_File::Header_And_Trailer (hdr_mb.duplicate (),
- header_size,
- trl_mb.duplicate (),
- trailer_size);
-
- ACE_Asynch_Transmit_File tf;
-
- if (tf.open (*(aioh->handler ()), aioh->handle ()) == -1
- || tf.transmit_file (handle, // file handle
- header_and_trailer, // header and trailer data
- 0, // bytes_to_write
- 0, // offset
- 0, // offset_high
- 0, // bytes_per_send
- 0, // flags
- 0 // act
- ) == -1)
- result = -1;
- }
-
- if (result != 0)
- {
- ioh->transmit_file_error (result);
- delete header_and_trailer;
- }
-}
-
-void
-JAWS_Asynch_IO::transmit_file (JAWS_IO_Handler *ioh,
- const char *filename,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size)
-{
- int result = 0;
-
- JAWS_TRACE ("JAWS_Asynch_IO::transmit_file");
-
- ioh->idle ();
-
- JAWS_Asynch_IO_Handler *aioh =
- ACE_dynamic_cast (JAWS_Asynch_IO_Handler *, ioh);
-
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer = 0;
- JAWS_Cached_FILE *cf = new JAWS_Cached_FILE (filename);
-
- if (cf->file ()->get_handle () != ACE_INVALID_HANDLE)
- {
- ACE_Message_Block hdr_mb (header, header_size);
- ACE_Message_Block trl_mb (trailer, trailer_size);
-
- header_and_trailer = new ACE_Asynch_Transmit_File::Header_And_Trailer
- (hdr_mb.duplicate (), header_size, trl_mb.duplicate (), trailer_size);
-
- ACE_Asynch_Transmit_File tf;
-
- if (tf.open (*(aioh->handler ()), aioh->handle ()) == -1
- || tf.transmit_file (cf->file ()->get_handle (), // file handle
- header_and_trailer, // header and trailer data
- 0, // bytes_to_write
- 0, // offset
- 0, // offset_high
- 0, // bytes_per_send
- 0, // flags
- cf // act
- ) == -1)
- result = -1;
- }
-
- if (result != 0)
- {
- ioh->transmit_file_error (result);
- delete header_and_trailer;
- delete cf;
- }
-}
-
-void
-JAWS_Asynch_IO::send_confirmation_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length)
-{
- this->send_message (ioh, buffer, length, CONFIRMATION);
-}
-
-void
-JAWS_Asynch_IO::send_error_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length)
-{
- this->send_message (ioh, buffer, length, ERROR_MESSAGE);
-}
-
-void
-JAWS_Asynch_IO::send_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length,
- int act)
-{
- ioh->idle ();
-
- JAWS_Asynch_IO_Handler *aioh =
- ACE_dynamic_cast (JAWS_Asynch_IO_Handler *, ioh);
-
- ACE_Message_Block *mb;
- ACE_NEW (mb, ACE_Message_Block (buffer, length));
-
- if (mb == 0)
- {
- this->handler_->error_message_complete ();
- return;
- }
-
- ACE_Asynch_Write_Stream aw;
- if (aw.open (*(aioh->handler ()), aioh->handle ()) == -1
- || aw.write (*mb, length, (void *) act) == -1)
- {
- mb->release ();
-
- if (act == CONFORMATION)
- ioh->confirmation_message_complete ();
- else
- ioh->error_message_complete ();
- }
-}
-
-void
-JAWS_Asynch2_IO::accept (JAWS_IO_Handler *,
- ACE_Message_Block *,
- unsigned int)
-{
-}
-
-#endif /* ACE_WIN32 */
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton<JAWS_Synch_IO, ACE_SYNCH_MUTEX>;
- #if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- template class ACE_Singleton<JAWS_Asynch_IO, ACE_SYNCH_MUTEX>;
- template class ACE_Singleton<JAWS_Asynch2_IO, ACE_SYNCH_MUTEX>;
- #endif /* defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)*/
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton<JAWS_Synch_IO, ACE_SYNCH_MUTEX>
- #if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- #pragma instantiate ACE_Singleton<JAWS_Asynch_IO, ACE_SYNCH_MUTEX>
- #pragma instantiate ACE_Singleton<JAWS_Asynch2_IO, ACE_SYNCH_MUTEX>
- #endif /* defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)*/
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/IO.h b/apps/JAWS/PROTOTYPE/JAWS/IO.h
deleted file mode 100644
index 8aadd9b4de9..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/IO.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// IO.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#ifndef JAWS_IO_H
-#define JAWS_IO_H
-
-class ACE_Message_Block;
-class JAWS_IO_Handler;
-class JAWS_IO_Acceptor;
-
-#include "ace/ACE.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Asynch_IO.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/Singleton.h"
-
-#include "JAWS/Export.h"
-
-class JAWS_Export JAWS_IO
- // = TITLE
- //
- // This class defines the abstract interface for an I/O class in
- // the context of Web-likes servers
- //
- // = DESCRIPTION
- //
- // An I/O class should have the following interface. Derived
- // classes will define the exactly how the I/O will take place
- // (Asynchronous, Synchronous, Reactive)
-{
-public:
- JAWS_IO (void);
- virtual ~JAWS_IO (void);
-
- // void acceptor (JAWS_IO_Acceptor *acceptor);
- // void handler (JAWS_IO_Handler *handler);
- // void handle (ACE_HANDLE h);
- // ACE_HANDLE handle (void);
-
- // James, please add documentation here.
-
- virtual void accept (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb = 0,
- unsigned int size = 0) = 0;
- // accept a passive connection
-
- virtual void read (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb,
- unsigned int size) = 0;
- // read from the handle size bytes into the message block.
-
- virtual void transmit_file (JAWS_IO_Handler *ioh,
- ACE_HANDLE file,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size) = 0;
- // send header, filename, trailer to the handle.
-
- virtual void transmit_file (JAWS_IO_Handler *ioh,
- const char *filename,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size) = 0;
- // send header, filename, trailer to the handle.
-
- virtual void receive_file (JAWS_IO_Handler *ioh,
- const char *filename,
- void *initial_data,
- unsigned int initial_data_length,
- unsigned int entire_length) = 0;
- // read data from the handle and store in filename.
-
- virtual void send_confirmation_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length) = 0;
- // send a confirmation message to the handle.
-
- virtual void send_error_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length) = 0;
- // send an error message to the handle.
-
-protected:
- ACE_HANDLE handle_;
- JAWS_IO_Handler *handler_;
- ACE_INET_Addr *inet_addr_;
- JAWS_IO_Acceptor *acceptor_;
-};
-
-class JAWS_Export JAWS_Synch_IO : public JAWS_IO
- // = TITLE
- //
- // This class defines the interface for a Synchronous I/O class.
- //
- // = DESCRIPTION
-{
-public:
- JAWS_Synch_IO (void);
-
- virtual ~JAWS_Synch_IO (void);
-
- virtual void accept (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb = 0,
- unsigned int size = 0);
-
- virtual void read (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb,
- unsigned int size);
-
- virtual void transmit_file (JAWS_IO_Handler *ioh,
- ACE_HANDLE handle,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size);
-
- virtual void transmit_file (JAWS_IO_Handler *ioh,
- const char *filename,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size);
-
- virtual void receive_file (JAWS_IO_Handler *ioh,
- const char *filename,
- void *initial_data,
- unsigned int initial_data_length,
- unsigned int entire_length);
-
- virtual void send_confirmation_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length);
-
- virtual void send_error_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length);
-
-protected:
- virtual void send_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length);
-};
-
-typedef ACE_Singleton<JAWS_Synch_IO, ACE_SYNCH_MUTEX>
- JAWS_Synch_IO_Singleton;
-
-// This only works on Win32
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
-
-class JAWS_Export JAWS_Asynch_IO : public JAWS_IO
- // = TITLE
- //
- // This class defines the interface for a Asynchronous I/O class.
- //
- // = DESCRIPTION
-{
-public:
- JAWS_Asynch_IO (void);
-
- virtual ~JAWS_Asynch_IO (void);
-
- virtual void accept (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb = 0,
- unsigned int size = 0);
-
- virtual void read (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb,
- unsigned int size);
-
- virtual void transmit_file (JAWS_IO_Handler *ioh,
- ACE_HANDLE handle,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size);
-
- virtual void transmit_file (JAWS_IO_Handler *ioh,
- const char *filename,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size);
-
- virtual void receive_file (JAWS_IO_Handler *ioh,
- const char *filename,
- void *initial_data,
- unsigned int initial_data_length,
- unsigned int entire_length);
-
- virtual void send_confirmation_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length);
-
- virtual void send_error_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length);
-
- enum Message_Types
- {
- CONFORMATION,
- CONFIRMATION = CONFORMATION,
- ERROR_MESSAGE
- };
-
-protected:
-
- virtual void send_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length,
- int act);
-};
-
-typedef ACE_Singleton<JAWS_Asynch_IO, ACE_SYNCH_MUTEX>
- JAWS_Asynch_IO_Singleton;
-
-class JAWS_Export JAWS_Asynch2_IO : public JAWS_Asynch_IO
-{
- // This version of Asynch_IO has a do nothing accept() implementation.
-public:
- virtual void accept (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb = 0,
- unsigned int size = 0);
- // does nothing
-
-};
-
-typedef ACE_Singleton<JAWS_Asynch2_IO, ACE_SYNCH_MUTEX>
- JAWS_Asynch2_IO_Singleton;
-
-#endif /* ACE_WIN32 */
-
-#endif /* JAWS_IO_H */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.cpp b/apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.cpp
deleted file mode 100644
index adb42fe16e0..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.cpp
+++ /dev/null
@@ -1,210 +0,0 @@
-// $Id$
-
-#include "JAWS/Data_Block.h"
-#include "JAWS/IO_Acceptor.h"
-
-ACE_RCSID(JAWS, IO_Acceptor, "$Id$")
-
-JAWS_IO_Acceptor::JAWS_IO_Acceptor (void)
-{
-}
-
-JAWS_IO_Acceptor::~JAWS_IO_Acceptor (void)
-{
-}
-
-int
-JAWS_IO_Acceptor::open (const ACE_INET_Addr &, int)
-{
- return -1;
-}
-
-int
-JAWS_IO_Acceptor::open (const ACE_HANDLE &)
-{
- return -1;
-}
-
-void
-JAWS_IO_Acceptor::close (void)
-{
-}
-
-int
-JAWS_IO_Acceptor::accept (ACE_SOCK_Stream &, ACE_Addr *, ACE_Time_Value *,
- int, int) const
-{
- return -1;
-}
-
-int
-JAWS_IO_Acceptor::accept (size_t, const void *)
-{
- return -1;
-}
-
-ACE_HANDLE
-JAWS_IO_Acceptor::get_handle (void)
-{
- return ACE_INVALID_HANDLE;
-}
-
-int
-JAWS_IO_Synch_Acceptor::open (const ACE_INET_Addr &local_sap, int backlog)
-{
- return this->acceptor_.open (local_sap, 1, PF_INET, backlog);
-}
-
-int
-JAWS_IO_Synch_Acceptor::open (const ACE_HANDLE &socket)
-{
- ACE_HANDLE handle = this->acceptor_.get_handle ();
- if (handle == socket)
- return 0;
-
- if (handle != ACE_INVALID_HANDLE)
- ACE_OS::closesocket (this->acceptor_.get_handle ());
- this->acceptor_.set_handle (socket);
-
- return 0;
-}
-
-int
-JAWS_IO_Synch_Acceptor::accept (ACE_SOCK_Stream &new_stream,
- ACE_Addr *remote_addr,
- ACE_Time_Value *timeout,
- int restart,
- int reset_new_handle) const
-{
- return this->acceptor_.accept (new_stream, remote_addr, timeout,
- restart, reset_new_handle);
-}
-
-int
-JAWS_IO_Synch_Acceptor::accept (size_t, const void *)
-{
- return -1;
-}
-
-ACE_HANDLE
-JAWS_IO_Synch_Acceptor::get_handle (void)
-{
- return this->acceptor_.get_handle ();
-}
-
-
-
-JAWS_IO_Asynch_Acceptor::JAWS_IO_Asynch_Acceptor (void)
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- : acceptor_ (*(new ACE_Asynch_Acceptor<JAWS_Asynch_Handler>)),
- acceptor_ptr_ (&acceptor_)
-#endif
-{
-}
-
-JAWS_IO_Asynch_Acceptor::~JAWS_IO_Asynch_Acceptor (void)
-{
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- delete this->acceptor_ptr_;
- this->acceptor_ptr_ = 0;
-#endif
-}
-
-int
-JAWS_IO_Asynch_Acceptor::open (const ACE_INET_Addr &address, int backlog)
-{
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- // Tell the acceptor to listen on this->port_, which sets up an
- // asynchronous I/O request to the OS.
-
- return this->acceptor_.open (address,
- JAWS_Data_Block::JAWS_DATA_BLOCK_SIZE,
- 1,
- backlog,
- 1,
- 0,
- 0,
- 0,
- 0);
-
-#else
- ACE_UNUSED_ARG (address);
- return -1;
-#endif /* defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS) */
-}
-
-int
-JAWS_IO_Asynch_Acceptor::open (const ACE_HANDLE &socket)
-{
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- ACE_HANDLE handle = this->handle_;
- if (handle == socket)
- return 0;
-
- if (handle != ACE_INVALID_HANDLE)
- ACE_OS::closesocket (handle);
- this->handle_ = socket;
-
- return 0;
-#else
- ACE_UNUSED_ARG (socket);
- return -1;
-#endif /* defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS) */
-}
-
-int
-JAWS_IO_Asynch_Acceptor::accept (size_t bytes_to_read, const void *act)
-{
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- return this->acceptor_.accept (bytes_to_read, act);
-#else
- ACE_UNUSED_ARG (bytes_to_read);
- return -1;
-#endif /* defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS) */
-}
-
-int
-JAWS_IO_Asynch_Acceptor::accept (ACE_SOCK_Stream &, ACE_Addr *,
- ACE_Time_Value *, int, int) const
-{
- return -1;
-}
-
-ACE_HANDLE
-JAWS_IO_Asynch_Acceptor::get_handle (void)
-{
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- return this->acceptor_.get_handle ();
-#else
- return ACE_INVALID_HANDLE;
-#endif /* defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS) */
-}
-
-
-void
-JAWS_IO_Asynch_Acceptor::close (void)
-{
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- delete this->acceptor_ptr_;
- this->acceptor_ptr_ = 0;
-#endif /* defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS) */
-}
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
-template class ACE_Asynch_Acceptor<JAWS_Asynch_Handler>;
-#endif /* defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS) */
-template class ACE_Singleton<JAWS_IO_Asynch_Acceptor, ACE_SYNCH_MUTEX>;
-template class ACE_Singleton<JAWS_IO_Synch_Acceptor, ACE_SYNCH_MUTEX>;
-template class ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_MUTEX>;
-template class ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_NULL_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
-#pragma instantiate ACE_Asynch_Acceptor<JAWS_Asynch_Handler>
-#pragma instantiate ACE_Singleton<JAWS_IO_Asynch_Acceptor, ACE_SYNCH_MUTEX>
-#endif /* defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS) */
-#pragma instantiate ACE_Singleton<JAWS_IO_Synch_Acceptor, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_NULL_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.h b/apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.h
deleted file mode 100644
index 78e861ec12e..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_IO_ACCEPTOR_H
-#define JAWS_IO_ACCEPTOR_H
-
-// Use the Adapter pattern to encapsulate either a LOCK_SOCK_Acceptor or
-// an ACE_Asynch_Acceptor
-
-#include "ace/Asynch_Acceptor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/LOCK_SOCK_Acceptor.h"
-#include "ace/Singleton.h"
-
-#include "JAWS/Export.h"
-#include "JAWS/IO.h"
-#include "JAWS/IO_Handler.h"
-
-// Forward declaration.
-class ACE_Proactor;
-class ACE_Reactor;
-
-#if defined (JAWS_HAS_THREAD_SAFE_ACCEPT)
-typedef ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_NULL_MUTEX> JAWS_IO_SOCK_Acceptor;
-#else
-typedef ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_MUTEX> JAWS_IO_SOCK_Acceptor;
-#endif /* JAWS_HAS_THREAD_SAFE_ACCEPT */
-
-class JAWS_Export JAWS_IO_Acceptor
-{
-public:
-
- JAWS_IO_Acceptor (void);
- virtual ~JAWS_IO_Acceptor (void);
-
- virtual int open (const ACE_INET_Addr &address, int backlog = 20);
- // Initiate a passive mode socket.
-
- virtual int open (const ACE_HANDLE &socket);
- // Initiate a passive mode socket.
-
- virtual int accept (ACE_SOCK_Stream &new_stream,
- ACE_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0) const;
- // Synchronously accept the connection
-
- virtual int accept (size_t bytes_to_read = 0, const void *act = 0);
- // This initiates a new asynchronous accept through the AcceptEx call.
-
- virtual ACE_HANDLE get_handle (void);
- // Get the listener's handle
-
- virtual void close (void);
- // Close the acceptor.
-
- enum { ASYNC = 0, SYNCH = 1 };
- // identify if this is being used for asynchronous or synchronous
- // accept calls
-
-};
-
-class JAWS_Export JAWS_IO_Synch_Acceptor : public JAWS_IO_Acceptor
-{
-public:
-
- virtual int open (const ACE_INET_Addr &local_sap, int backlog = 20);
- // Initiate a passive mode socket.
-
- virtual int open (const ACE_HANDLE &socket);
- // Initiate a passive mode socket.
-
- virtual int accept (ACE_SOCK_Stream &new_stream,
- ACE_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0) const;
- // Accept the connection
-
- virtual ACE_HANDLE get_handle (void);
- // Get the listener's handle
-
-private:
- virtual int accept (size_t bytes_to_read = 0, const void *act = 0);
-
-private:
- JAWS_IO_SOCK_Acceptor acceptor_;
-};
-
-
-class JAWS_Export JAWS_IO_Asynch_Acceptor : public JAWS_IO_Acceptor
-{
-public:
-
- JAWS_IO_Asynch_Acceptor (void);
- virtual ~JAWS_IO_Asynch_Acceptor (void);
-
- virtual int open (const ACE_INET_Addr &address, int backlog = 20);
- // Initiate an asynchronous passive connection
-
- virtual int open (const ACE_HANDLE &socket);
- // Initiate an asynchronous passive connection
-
- virtual int accept (size_t bytes_to_read = 0, const void *act = 0);
- // This initiates a new asynchronous accept through the AcceptEx call.
-
- virtual ACE_HANDLE get_handle (void);
- // Get the listener's handle
-
- virtual void close (void);
-
-private:
-
- virtual int accept (ACE_SOCK_Stream &new_stream,
- ACE_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0) const;
-
-private:
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- ACE_Asynch_Acceptor<JAWS_Asynch_Handler> &acceptor_;
- ACE_Asynch_Acceptor<JAWS_Asynch_Handler> *acceptor_ptr_;
- ACE_HANDLE handle_;
-#endif /* defined (ACE_WIN32) */
-};
-
-typedef ACE_Singleton<JAWS_IO_Synch_Acceptor, ACE_SYNCH_MUTEX>
- JAWS_IO_Synch_Acceptor_Singleton;
-
-typedef ACE_Singleton<JAWS_IO_Asynch_Acceptor, ACE_SYNCH_MUTEX>
- JAWS_IO_Asynch_Acceptor_Singleton;
-
-#endif /* !defined (JAWS_IO_ACCEPTOR_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/IO_Handler.cpp b/apps/JAWS/PROTOTYPE/JAWS/IO_Handler.cpp
deleted file mode 100644
index 67710d0f543..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/IO_Handler.cpp
+++ /dev/null
@@ -1,509 +0,0 @@
-// $Id$
-
-#include "ace/Proactor.h"
-#include "ace/Filecache.h"
-
-#include "JAWS/JAWS.h"
-#include "JAWS/IO.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/IO_Acceptor.h"
-#include "JAWS/Data_Block.h"
-#include "JAWS/Policy.h"
-#include "JAWS/Waiter.h"
-
-ACE_RCSID(JAWS, IO_Handler, "$Id$")
-
-JAWS_Abstract_IO_Handler::~JAWS_Abstract_IO_Handler (void)
-{
-}
-
-JAWS_IO_Handler_Factory::~JAWS_IO_Handler_Factory (void)
-{
-}
-
-JAWS_IO_Handler *
-JAWS_IO_Handler_Factory::create_io_handler (void)
-{
- JAWS_TRACE ("JAWS_IO_Handler_Factory::create");
-
- JAWS_IO_Handler *handler;
- handler = new JAWS_IO_Handler (this);
-
- return handler;
-}
-
-void
-JAWS_IO_Handler_Factory::destroy_io_handler (JAWS_IO_Handler *handler)
-{
- JAWS_TRACE ("JAWS_IO_Handler_Factory::destroy");
- if (handler != 0)
- {
- delete handler->message_block ();
- delete handler;
- }
-}
-
-JAWS_IO_Handler::JAWS_IO_Handler (JAWS_IO_Handler_Factory *factory)
- : status_ (0),
- mb_ (0),
- handle_ (ACE_INVALID_HANDLE),
- task_ (0),
- factory_ (factory)
-{
-}
-
-JAWS_IO_Handler::~JAWS_IO_Handler (void)
-{
- this->mb_ = 0;
- this->status_ = 0;
- this->task_ = 0;
- this->factory_ = 0;
-
- ACE_OS::close (this->handle_);
- this->handle_ = ACE_INVALID_HANDLE;
-}
-
-void
-JAWS_IO_Handler::accept_complete (ACE_HANDLE handle)
-{
- // callback into pipeline task, notify that the accept has completed
- this->handle_ = handle;
- this->status_ |= ACCEPT_OK;
- this->status_ &= (ACCEPT_OK+1);
-
- JAWS_Dispatch_Policy *policy = this->mb_->policy ();
-
- // Do this so that Thread Per Request can spawn a new thread
- policy->concurrency ()->activate_hook ();
-}
-
-void
-JAWS_IO_Handler::accept_error (void)
-{
- // callback into pipeline task, notify that the accept has failed
- this->status_ |= ACCEPT_ERROR;
- this->status_ &= (ACCEPT_ERROR+1);
-}
-
-void
-JAWS_IO_Handler::read_complete (ACE_Message_Block *data)
-{
- ACE_UNUSED_ARG (data);
- // We can call back into the pipeline task at this point
- // this->pipeline_->read_complete (data);
- this->status_ |= READ_OK;
- this->status_ &= (READ_OK+1);
-}
-
-void
-JAWS_IO_Handler::read_error (void)
-{
- // this->pipeline_->read_error ();
- this->status_ |= READ_ERROR;
- this->status_ &= (READ_ERROR+1);
-}
-
-void
-JAWS_IO_Handler::transmit_file_complete (void)
-{
- JAWS_TRACE ("JAWS_IO_Handler::transmit_file_complete");
- // this->pipeline_->transmit_file_complete ();
- this->status_ |= TRANSMIT_OK;
- this->status_ &= (TRANSMIT_OK+1);
-}
-
-void
-JAWS_IO_Handler::transmit_file_error (int result)
-{
- JAWS_TRACE ("JAWS_IO_Handler::transmit_file_error");
- ACE_UNUSED_ARG (result);
- // this->pipeline_->transmit_file_complete (result);
- this->status_ |= TRANSMIT_ERROR;
- this->status_ &= (TRANSMIT_ERROR+1);
-}
-
-void
-JAWS_IO_Handler::receive_file_complete (void)
-{
- this->status_ |= RECEIVE_OK;
- this->status_ &= (RECEIVE_OK+1);
-}
-
-void
-JAWS_IO_Handler::receive_file_error (int result)
-{
- ACE_UNUSED_ARG(result);
- this->status_ |= RECEIVE_ERROR;
- this->status_ &= (RECEIVE_ERROR+1);
-}
-
-void
-JAWS_IO_Handler::write_error (void)
-{
- ACE_DEBUG ((LM_DEBUG, " (%t) error in writing response\n"));
-
- this->status_ |= WRITE_ERROR;
- this->status_ &= (WRITE_ERROR+1);
- this->done ();
-}
-
-void
-JAWS_IO_Handler::confirmation_message_complete (void)
-{
- this->status_ |= WRITE_OK;
- this->status_ &= (WRITE_OK+1);
-}
-
-void
-JAWS_IO_Handler::error_message_complete (void)
-{
- this->status_ |= WRITE_OK;
- this->status_ &= (WRITE_OK+1);
-}
-
-JAWS_IO_Handler_Factory *
-JAWS_IO_Handler::factory (void)
-{
- return this->factory_;
-}
-
-ACE_HANDLE
-JAWS_IO_Handler::handle (void) const
-{
- return this->handle_;
-}
-
-void
-JAWS_IO_Handler::task (JAWS_Pipeline_Handler *ph)
-{
- this->task_ = ph;
-}
-
-JAWS_Pipeline_Handler *
-JAWS_IO_Handler::task (void)
-{
- return this->task_;
-}
-
-void
-JAWS_IO_Handler::message_block (JAWS_Data_Block *mb)
-{
- this->mb_ = mb;
-}
-
-JAWS_Data_Block *
-JAWS_IO_Handler::message_block (void)
-{
- return this->mb_;
-}
-
-void
-JAWS_IO_Handler::done (void)
-{
- this->factory ()->destroy_io_handler (this);
-}
-
-int
-JAWS_IO_Handler::status (void)
-{
- return this->status_;
-}
-
-void
-JAWS_IO_Handler::idle (void)
-{
- this->status_ &= (IDLE+1);
-}
-
-void
-JAWS_IO_Handler::acquire (void)
-{
-}
-
-void
-JAWS_IO_Handler::lock (void)
-{
-}
-
-void
-JAWS_IO_Handler::release (void)
-{
-}
-
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
-
-JAWS_Asynch_IO_Handler_Factory::~JAWS_Asynch_IO_Handler_Factory (void)
-{
-}
-
-JAWS_IO_Handler *
-JAWS_Asynch_IO_Handler_Factory::create_io_handler (void)
-{
- JAWS_TRACE ("JAWS_Asynch_IO_Handler_Factory::create");
-
- JAWS_Asynch_IO_Handler *handler;
- handler = new JAWS_Asynch_IO_Handler (this);
-
- return handler;
-}
-
-void
-JAWS_Asynch_IO_Handler_Factory::destroy_io_handler (JAWS_IO_Handler *handler)
-{
- JAWS_TRACE ("JAWS_IO_Handler_Factory::destroy");
-
- if (handler != 0)
- {
- //cerr << "(" << thr_self () << ") locking for destruction: " << handler << endl;
- handler->lock ();
- delete handler->message_block ();
- handler->message_block (0);
- delete handler;
- }
-}
-
-
-JAWS_Asynch_IO_Handler::JAWS_Asynch_IO_Handler (JAWS_Asynch_IO_Handler_Factory *factory)
- : JAWS_IO_Handler (factory),
- handler_ (0)
-{
- this->status_ = 1;
-}
-
-JAWS_Asynch_IO_Handler::~JAWS_Asynch_IO_Handler (void)
-{
- delete this->handler_;
- this->handler_ = 0;
-}
-
-ACE_Handler *
-JAWS_Asynch_IO_Handler::handler (void)
-{
- return this->handler_;
-}
-
-void
-JAWS_Asynch_IO_Handler::acquire (void)
-{
- //cerr << "(" << thr_self () << ") acquire handler: " << this << endl;
- this->count_.acquire_read ();
-}
-
-void
-JAWS_Asynch_IO_Handler::lock (void)
-{
- //cerr << "(" << thr_self () << ") locking handler: " << this << endl;
- this->count_.acquire_write ();
-}
-
-void
-JAWS_Asynch_IO_Handler::release (void)
-{
- //cerr << "(" << thr_self () << ") release handler: " << this << endl;
- this->count_.release ();
-}
-
-JAWS_Asynch_Handler::JAWS_Asynch_Handler (void)
- : ioh_ (0)
-{
- this->proactor (ACE_Proactor::instance ());
-}
-
-JAWS_Asynch_Handler::~JAWS_Asynch_Handler (void)
-{
-}
-
-void
-JAWS_Asynch_Handler::open (ACE_HANDLE h,
- ACE_Message_Block &mb)
-{
- JAWS_TRACE ("JAWS_Asynch_Handler::open");
-
- // This currently does nothing, but just in case.
- ACE_Service_Handler::open (h, mb);
-
- // ioh_ set from the ACT hopefully
- //this->dispatch_handler ();
-
-#if !defined (ACE_WIN32)
- // Assume at this point there is no data.
- mb.rd_ptr (mb.wr_ptr ());
- mb.crunch ();
-#else
- // AcceptEx reads some initial data from the socket.
- this->handler ()->message_block ()->copy (mb.rd_ptr (), mb.length ());
-#endif
-
- ACE_Asynch_Accept_Result_Impl *fake_result
- = ACE_Proactor::instance ()->create_asynch_accept_result
- (*this, JAWS_IO_Asynch_Acceptor_Singleton::instance ()->get_handle (),
- h, mb, JAWS_Data_Block::JAWS_DATA_BLOCK_SIZE,
- this->ioh_, ACE_INVALID_HANDLE, 0);
-
- this->handler ()->handler_ = this;
-
- fake_result->complete (0, 1, 0);
-}
-
-void
-JAWS_Asynch_Handler::act (const void *act_ref)
-{
- JAWS_TRACE ("JAWS_Asynch_Handler::act");
-
- // Set the ioh from the act
- this->ioh_ = (JAWS_Asynch_IO_Handler *) act_ref;
-}
-
-#if 0
-ACE_HANDLE
-JAWS_Asynch_Handler::handle (void) const
-{
- return this->ioh_->handle ();
-}
-#endif
-
-void
-JAWS_Asynch_Handler::dispatch_handler (void)
-{
-#if 0
- // A future version of ACE will support this.
- ACE_Thread_ID tid = ACE_OS::thr_self ();
-#else
- // Do it this way for now
- ACE_thread_t thr_name;
- thr_name = ACE_OS::thr_self ();
-
- JAWS_Thread_ID tid (thr_name);
-#endif /* 0 */
-
- JAWS_IO_Handler **iohref = JAWS_Waiter_Singleton::instance ()->find (tid);
-
- *iohref = this->handler ();
-}
-
-void
-JAWS_Asynch_Handler::handle_read_stream (const ACE_Asynch_Read_Stream::Result
- &result)
-{
- JAWS_TRACE ("JAWS_Asynch_Handler::handle_read_stream");
-
- this->dispatch_handler ();
-
- if (result.act () != 0)
- {
- // This callback is for io->receive_file()
- JAWS_TRACE ("JAWS_Asynch_Handler::handle_read_stream (recv_file)");
-
- int code = 0;
- if (result.success () && result.bytes_transferred () != 0)
- {
- if (result.message_block ().length ()
- == result.message_block ().size ())
- code = ACE_Filecache_Handle::ACE_SUCCESS;
- else
- {
- ACE_Asynch_Read_Stream ar;
- if (ar.open (*this, this->handler ()->handle ()) == -1
- || ar.read (result.message_block (),
- result.message_block ().size ()
- - result.message_block ().length (),
- result.act ()) == -1)
- code = -1;
- else
- return;
- }
- }
- else
- code = -1;
-
- if (code == ACE_Filecache_Handle::ACE_SUCCESS)
- this->handler ()->receive_file_complete ();
- else
- this->handler ()->receive_file_error (code);
-
- result.message_block ().release ();
- delete (ACE_Filecache_Handle *) result.act ();
- }
- else
- {
- // This callback is for this->read()
- JAWS_TRACE ("JAWS_Asynch_Handler::handle_read_stream (read)");
-
- if (result.success ()
- && result.bytes_transferred () != 0)
- this->handler ()->read_complete (&result.message_block ());
- else
- this->handler ()->read_error ();
- }
-}
-
-void
-JAWS_Asynch_Handler::handle_write_stream (const ACE_Asynch_Write_Stream::Result
- &result)
-{
- this->dispatch_handler ();
-
- result.message_block ().release ();
-
- if (result.act () == (void *) JAWS_Asynch_IO::CONFIRMATION)
- this->handler ()->confirmation_message_complete ();
- else
- this->handler ()->error_message_complete ();
-}
-
-void
-JAWS_Asynch_Handler::handle_transmit_file (const
- ACE_Asynch_Transmit_File::Result
- &result)
-{
- this->dispatch_handler ();
-
- if (result.success ())
- this->handler ()->transmit_file_complete ();
- else
- this->handler ()->transmit_file_error (-1);
-
- result.header_and_trailer ()->header ()->release ();
- result.header_and_trailer ()->trailer ()->release ();
- delete result.header_and_trailer ();
- delete (ACE_Filecache_Handle *) result.act ();
-}
-
-void
-JAWS_Asynch_Handler::handle_accept (const ACE_Asynch_Accept::Result &result)
-{
- JAWS_TRACE ("JAWS_Asynch_Handler::handle_accept");
- this->dispatch_handler ();
-
- if (result.success ())
- {
- JAWS_TRACE ("JAWS_Asynch_Handler::handle_accept, success");
- this->handler ()->accept_complete (result.accept_handle ());
- }
- else
- this->handler ()->accept_error ();
-
-}
-
-void
-JAWS_Asynch_Handler::handler (JAWS_Asynch_IO_Handler *ioh)
-{
- this->ioh_ = ioh;
-}
-
-JAWS_Asynch_IO_Handler *
-JAWS_Asynch_Handler::handler (void)
-{
- return this->ioh_;
-}
-
-#endif /* ACE_WIN32 */
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton<JAWS_Synch_IO_Handler_Factory, ACE_SYNCH_MUTEX>;
-template class ACE_Singleton<JAWS_Asynch_IO_Handler_Factory, ACE_SYNCH_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton<JAWS_Synch_IO_Handler_Factory, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Singleton<JAWS_Asynch_IO_Handler_Factory, ACE_SYNCH_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/IO_Handler.h b/apps/JAWS/PROTOTYPE/JAWS/IO_Handler.h
deleted file mode 100644
index 7d49dbe3f06..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/IO_Handler.h
+++ /dev/null
@@ -1,313 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// IO.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#ifndef JAWS_IO_HANDLER_H
-#define JAWS_IO_HANDLER_H
-
-#include "ace/Asynch_IO.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Singleton.h"
-
-#include "JAWS/Export.h"
-
-// #include "JAWS/IO.h"
-class JAWS_IO;
-class JAWS_Synch_IO;
-class JAWS_Asynch_IO;
-class JAWS_IO_Handler;
-class JAWS_IO_Handler_Factory;
-class JAWS_Data_Block;
-class JAWS_Pipeline_Handler;
-class JAWS_Waiter;
-
-class JAWS_Export JAWS_Abstract_IO_Handler
- // = TITLE
- //
- // This class defines the abstract interface for an I/O handler
- // class in the context of Web-likes servers
- //
- // = DESCRIPTION
-{
-public:
- virtual ~JAWS_Abstract_IO_Handler (void);
-
- virtual void task (JAWS_Pipeline_Handler *ph) = 0;
- virtual JAWS_Pipeline_Handler *task (void) = 0;
-
- virtual void message_block (JAWS_Data_Block *mb) = 0;
- virtual JAWS_Data_Block *message_block (void) = 0;
-
- virtual void accept_complete (ACE_HANDLE handle) = 0;
- // This method is called by the IO class when new passive connection has
- // been established.
-
- virtual void accept_error (void) = 0;
- // This method is called by the IO class when new passive connection has
- // been established.
-
-#if 0
- virtual void connect_complete (ACE_Message_Block *) = 0;
- // This method is called by the IO class when new active connection has
- // been established.
-
- virtual void connect_error (ACE_Message_Block *) = 0;
- // This method is called by the IO class when new active connection has
- // been established.
-#endif
-
- virtual void read_complete (ACE_Message_Block *data) = 0;
- // This method is called by the IO class when new client data shows
- // up.
-
- virtual void read_error (void) = 0;
- // This method is called by the IO class when there was an error in
- // reading new data from the client.
-
- virtual void transmit_file_complete (void) = 0;
- // This method is called by the IO class when the requested file has
- // been successfully transmitted to the client.
-
- virtual void transmit_file_error (int result) = 0;
- // This method is called by the IO class when there was an error in
- // transmitting the requested file to the client.
-
- virtual void receive_file_complete (void) = 0;
- // This method is called by the IO class when the requested file has
- // been successfully received from the client.
-
- virtual void receive_file_error (int result) = 0;
- // This method is called by the IO class when there was an error in
- // receiving the requested file from the client.
-
- virtual void write_error (void) = 0;
- // This method is called by the IO class when there was an error in
- // writing data to the client.
-
- virtual void confirmation_message_complete (void) = 0;
- // This method is called by the IO class when the confirmation
- // message has been delivered to the client.
-
- virtual void error_message_complete (void) = 0;
- // This method is called by the IO class when the error message has
- // been delivered to the client.
-
- virtual JAWS_IO_Handler_Factory *factory (void) = 0;
- // Returns the factory for this IO handler
-
- virtual ACE_HANDLE handle (void) const = 0;
- // Returns the socket handle for this handler
-
- virtual void done (void) = 0;
- // Cleans up the handler.
-
- virtual int status (void) = 0;
- // Returns the status of the handler
-
- virtual void idle (void) = 0;
- // puts handler in an idle state
-
- enum { IDLE = 0, IDLE_A = 1,
- ACCEPT_OK = 2, ACCEPT_OK_A = 3,
- ACCEPT_ERROR = 4, ACCEPT_ERROR_A = 5,
- READ_OK = 6, READ_OK_A = 7,
- READ_ERROR = 8, READ_ERROR_A = 9,
- WRITE_OK = 10, WRITE_OK_A = 11,
- WRITE_ERROR = 12, WRITE_ERROR_A = 13,
- TRANSMIT_OK = 14, TRANSMIT_OK_A = 15,
- TRANSMIT_ERROR = 16, TRANSMIT_ERROR_A = 17,
- RECEIVE_OK = 18, RECEIVE_OK_A = 19,
- RECEIVE_ERROR = 20, RECEIVE_ERROR_A = 21 };
- // The different states of the handler
-
-};
-
-#if defined(ACE_WIN32) || defined(ACE_HAS_AIO_CALLS)
-
-// Forward reference.
-class JAWS_Asynch_IO_Handler;
-
-class JAWS_Export JAWS_Asynch_Handler : public ACE_Service_Handler
-{
-public:
- JAWS_Asynch_Handler (void);
- virtual ~JAWS_Asynch_Handler (void);
-
- virtual void handle_read_stream (const ACE_Asynch_Read_Stream::Result
- &result);
- // This method will be called when an asynchronous read completes on
- // a stream.
-
- virtual void handle_write_stream (const ACE_Asynch_Write_Stream::Result
- &result);
- // This method will be called when an asynchronous write completes
- // on a stream.
-
- virtual void handle_transmit_file (const ACE_Asynch_Transmit_File::Result
- &result);
- // This method will be called when an asynchronous transmit file
- // completes.
-
- virtual void handle_accept (const ACE_Asynch_Accept::Result &result);
- // This method will be called when an asynchronous accept completes.
-
- virtual void handler (JAWS_Asynch_IO_Handler *ioh);
- virtual JAWS_Asynch_IO_Handler * handler (void);
-
- virtual void dispatch_handler (void);
-
- virtual void open (ACE_HANDLE h, ACE_Message_Block &mb);
- // Call back entry point for ACE_Asynch_Acceptor
-
- virtual void act (const void *act_ref);
- // Receives the ACT.
-
- //virtual ACE_HANDLE handle (void) const;
-
-private:
- JAWS_Asynch_IO_Handler *ioh_;
-};
-#endif /* defined(ACE_WIN32) || defined(ACE_HAS_AIO_CALLS) */
-
-
-class JAWS_Export JAWS_IO_Handler : public JAWS_Abstract_IO_Handler
-{
-public:
- JAWS_IO_Handler (JAWS_IO_Handler_Factory *factory);
- virtual ~JAWS_IO_Handler (void);
-
- // Inherited from JAWS_IO_Handler
-
- virtual void accept_complete (ACE_HANDLE handle);
- virtual void accept_error (void);
- virtual void read_complete (ACE_Message_Block *data);
- virtual void read_error (void);
- virtual void transmit_file_complete (void);
- virtual void transmit_file_error (int result);
- virtual void receive_file_complete (void);
- virtual void receive_file_error (int result);
- virtual void write_error (void);
- virtual void confirmation_message_complete (void);
- virtual void error_message_complete (void);
-
- virtual JAWS_IO_Handler_Factory *factory (void);
- virtual ACE_HANDLE handle (void) const;
-
- virtual void done (void);
- virtual int status (void);
- virtual void idle (void);
-
- virtual void acquire (void);
- virtual void lock (void);
- virtual void release (void);
-
- virtual void task (JAWS_Pipeline_Handler *ph);
- virtual JAWS_Pipeline_Handler *task (void);
-
- virtual void message_block (JAWS_Data_Block *mb);
- virtual JAWS_Data_Block *message_block (void);
-
-protected:
- int status_;
- // The state of the handler.
-
- JAWS_Data_Block *mb_;
- // This maintains the state of the request.
-
- ACE_HANDLE handle_;
- // The socket handle returned from accept.
-
- JAWS_Pipeline_Handler *task_;
- // This is a reference to the next stage of the pipeline when the IO
- // request completes.
-
- JAWS_IO_Handler_Factory *factory_;
- // The reference to the handler's factory.
-};
-
-class JAWS_Export JAWS_IO_Handler_Factory
-{
-public:
- virtual ~JAWS_IO_Handler_Factory (void);
- // Destructor
-
- virtual JAWS_IO_Handler *create_io_handler (void);
- // This creates a new JAWS_IO_Handler
-
- virtual void destroy_io_handler (JAWS_IO_Handler *handler);
- // This deletes a JAWS_IO_Handler
-};
-
-typedef JAWS_IO_Handler JAWS_Synch_IO_Handler;
-typedef JAWS_IO_Handler_Factory JAWS_Synch_IO_Handler_Factory;
-
-typedef ACE_Singleton<JAWS_Synch_IO_Handler_Factory, ACE_SYNCH_MUTEX>
- JAWS_Synch_IO_Handler_Factory_Singleton;
-
-#if defined(ACE_WIN32) || defined(ACE_HAS_AIO_CALLS)
-
-class JAWS_Export JAWS_Asynch_IO_Handler : public JAWS_IO_Handler
-{
-friend class JAWS_Asynch_Handler;
-friend class JAWS_Asynch_IO_Handler_Factory;
-friend class JAWS_Waiter;
-
- // Provide implementations for the common functions.
-public:
- JAWS_Asynch_IO_Handler (JAWS_Asynch_IO_Handler_Factory *factory);
- virtual ~JAWS_Asynch_IO_Handler (void);
-
- virtual ACE_Handler *handler (void);
-
- virtual void acquire (void);
- virtual void lock (void);
- virtual void release (void);
-
-protected:
-
- JAWS_Asynch_Handler *handler_;
- ACE_SYNCH_RW_MUTEX count_;
-};
-
-
-class JAWS_Export JAWS_Asynch_IO_Handler_Factory : public JAWS_IO_Handler_Factory
-{
-public:
- virtual ~JAWS_Asynch_IO_Handler_Factory (void);
- // Destructor
-
- virtual JAWS_IO_Handler *create_io_handler (void);
- // This creates a new JAWS_IO_Handler
-
- virtual void destroy_io_handler (JAWS_IO_Handler *handler);
- // This deletes a JAWS_IO_Handler
-};
-
-#else
-
-typedef JAWS_IO_Handler JAWS_Asynch_IO_Handler;
-typedef JAWS_IO_Handler_Factory JAWS_Asynch_IO_Handler_Factory;
-
-#endif /* defined(ACE_WIN32) || defined(ACE_HAS_AIO_CALLS) */
-
-typedef ACE_Singleton<JAWS_Asynch_IO_Handler_Factory, ACE_SYNCH_MUTEX>
- JAWS_Asynch_IO_Handler_Factory_Singleton;
-
-#endif /* JAWS_IO_HANDLER_H */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/JAWS.h b/apps/JAWS/PROTOTYPE/JAWS/JAWS.h
deleted file mode 100644
index 27572fc3b07..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/JAWS.h
+++ /dev/null
@@ -1,14 +0,0 @@
-// $Id$
-
-#if (JAWS_NTRACE == 1)
-# define JAWS_TRACE(X)
-#else
-# define JAWS_TRACE(X) ACE_Trace ____ (ASYS_TEXT (X), \
- __LINE__, \
- ASYS_TEXT (__FILE__))
-#endif /* JAWS_NTRACE */
-
-#ifndef JAWS_JAWS_H
-#define JAWS_JAWS_H
-
-#endif /* JAWS_JAWS_H */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Makefile b/apps/JAWS/PROTOTYPE/JAWS/Makefile
deleted file mode 100644
index 87e4b68e737..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Makefile
+++ /dev/null
@@ -1,2296 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE Adapter Web Server (JAWS)
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-#BIN = main
-
-LIB = libJAWS.a
-SHLIB = libJAWS.$(SOEXT)
-
-MYFILES = \
- Cache_Hash_T \
- Cache_Heap_T \
- Cache_List_T \
- Cache_Manager \
- Cache_Manager_T \
- Cache_Object \
- Hash_Bucket_T \
- Pipeline_Handler_T \
- Pipeline \
- Pipeline_Tasks \
- Headers \
- Parse_Headers \
- Waiter \
- Reaper \
- Data_Block \
- Policy \
- Concurrency \
- Server \
- Filecache \
- FILE \
- IO_Acceptor \
- IO_Handler \
- IO
-
-LSRC = $(addsuffix .cpp,$(MYFILES))
-LOBJ = $(addsuffix .o,$(MYFILES))
-
-CPPFLAGS += -I.. -DJAWS_NTRACE=0 -DACE_NLOGGING #-DJAWS_HAS_THREAD_SAFE_ACCEPT
-
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-#LDLIBS = -lJAWS
-
-#BUILD = $(VOBJS) $(VLIB) #$(VBIN)
-BUILD = $(VSHLIB) $(SHLIBA) $(VLIB)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-# The contents of rules.bin.GNU are expanded in Local targets, below.
-# include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-# include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-# Expand rules.bin.GNU, but without the $(VOBJS) dependencies.
-VBIN = $(BIN:%=%$(VAR))
-
-$(BIN): %: $(VDIR)%.o
- $(LINK.cc) -o $@ $^ $(LDFLAGS) $(VLDLIBS) $(POSTLINK)
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/Cache_Hash_T.o .obj/Cache_Hash_T.so .shobj/Cache_Hash_T.o .shobj/Cache_Hash_T.so: Cache_Hash_T.cpp ../JAWS/Cache_Hash_T.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- ../JAWS/Cache_Object.h $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- ../JAWS/Cache_Hash_T.cpp ../JAWS/Hash_Bucket_T.h \
- ../JAWS/Hash_Bucket_T.cpp
-.obj/Cache_Heap_T.o .obj/Cache_Heap_T.so .shobj/Cache_Heap_T.o .shobj/Cache_Heap_T.so: Cache_Heap_T.cpp ../JAWS/Cache_Heap_T.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- ../JAWS/Cache_Object.h ../JAWS/Cache_Heap_T.cpp \
- ../JAWS/Cache_Manager_T.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- ../JAWS/Cache_Manager_T.cpp ../JAWS/Cache_Hash_T.h \
- ../JAWS/Cache_Hash_T.cpp ../JAWS/Hash_Bucket_T.h \
- ../JAWS/Hash_Bucket_T.cpp
-.obj/Cache_List_T.o .obj/Cache_List_T.so .shobj/Cache_List_T.o .shobj/Cache_List_T.so: Cache_List_T.cpp ../JAWS/Cache_List_T.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- ../JAWS/Cache_Object.h ../JAWS/Cache_List_T.cpp \
- ../JAWS/Cache_Manager_T.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- ../JAWS/Cache_Manager_T.cpp ../JAWS/Cache_Hash_T.h \
- ../JAWS/Cache_Hash_T.cpp ../JAWS/Hash_Bucket_T.h \
- ../JAWS/Hash_Bucket_T.cpp
-.obj/Cache_Manager.o .obj/Cache_Manager.so .shobj/Cache_Manager.o .shobj/Cache_Manager.so: Cache_Manager.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- ../JAWS/Cache_Manager.h ../JAWS/Cache_Manager_T.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- ../JAWS/Cache_Object.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- ../JAWS/Cache_Manager_T.cpp ../JAWS/Cache_Hash_T.h \
- ../JAWS/Cache_Hash_T.cpp ../JAWS/Hash_Bucket_T.h \
- ../JAWS/Hash_Bucket_T.cpp ../JAWS/Cache_List_T.h \
- ../JAWS/Cache_List_T.cpp
-.obj/Cache_Manager_T.o .obj/Cache_Manager_T.so .shobj/Cache_Manager_T.o .shobj/Cache_Manager_T.so: Cache_Manager_T.cpp ../JAWS/Cache_Manager_T.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- ../JAWS/Cache_Object.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- ../JAWS/Cache_Manager_T.cpp ../JAWS/Cache_Hash_T.h \
- ../JAWS/Cache_Hash_T.cpp ../JAWS/Hash_Bucket_T.h \
- ../JAWS/Hash_Bucket_T.cpp
-.obj/Cache_Object.o .obj/Cache_Object.so .shobj/Cache_Object.o .shobj/Cache_Object.so: Cache_Object.cpp ../JAWS/Cache_Object.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i
-.obj/Hash_Bucket_T.o .obj/Hash_Bucket_T.so .shobj/Hash_Bucket_T.o .shobj/Hash_Bucket_T.so: Hash_Bucket_T.cpp ../JAWS/Hash_Bucket_T.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- ../JAWS/Hash_Bucket_T.cpp
-.obj/Pipeline_Handler_T.o .obj/Pipeline_Handler_T.so .shobj/Pipeline_Handler_T.o .shobj/Pipeline_Handler_T.so: Pipeline_Handler_T.cpp \
- ../JAWS/Pipeline_Handler_T.h ../JAWS/Export.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- ../JAWS/Pipeline.h $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp \
- ../JAWS/Pipeline_Handler_T.cpp
-.obj/Pipeline.o .obj/Pipeline.so .shobj/Pipeline.o .shobj/Pipeline.so: Pipeline.cpp ../JAWS/Pipeline.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp ../JAWS/Export.h
-.obj/Pipeline_Tasks.o .obj/Pipeline_Tasks.so .shobj/Pipeline_Tasks.o .shobj/Pipeline_Tasks.so: Pipeline_Tasks.cpp ../JAWS/JAWS.h ../JAWS/IO.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- ../JAWS/Export.h ../JAWS/Pipeline_Tasks.h ../JAWS/Pipeline.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp \
- ../JAWS/Pipeline_Handler_T.h ../JAWS/Pipeline_Handler_T.cpp \
- ../JAWS/Data_Block.h ../JAWS/IO_Handler.h ../JAWS/Policy.h \
- ../JAWS/Concurrency.h
-.obj/Headers.o .obj/Headers.so .shobj/Headers.o .shobj/Headers.so: Headers.cpp ../JAWS/Headers.h ../JAWS/Export.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i
-.obj/Parse_Headers.o .obj/Parse_Headers.so .shobj/Parse_Headers.o .shobj/Parse_Headers.so: Parse_Headers.cpp ../JAWS/Parse_Headers.h \
- ../JAWS/Export.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- ../JAWS/Headers.h
-.obj/Waiter.o .obj/Waiter.so .shobj/Waiter.o .shobj/Waiter.so: Waiter.cpp $(ACE_ROOT)/ace/Proactor.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i ../JAWS/Waiter.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- ../JAWS/Assoc_Array.h ../JAWS/Assoc_Array.cpp ../JAWS/Export.h \
- ../JAWS/IO_Handler.h \
- $(ACE_ROOT)/ace/Asynch_IO.h
-.obj/Reaper.o .obj/Reaper.so .shobj/Reaper.o .shobj/Reaper.so: Reaper.cpp ../JAWS/Reaper.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- ../JAWS/Export.h ../JAWS/Concurrency.h ../JAWS/IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- ../JAWS/IO_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.h \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.cpp \
- ../JAWS/IO_Handler.h
-.obj/Data_Block.o .obj/Data_Block.so .shobj/Data_Block.o .shobj/Data_Block.so: Data_Block.cpp ../JAWS/Data_Block.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- ../JAWS/Export.h ../JAWS/Pipeline.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp ../JAWS/Policy.h \
- ../JAWS/Concurrency.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp ../JAWS/IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i
-.obj/Policy.o .obj/Policy.so .shobj/Policy.o .shobj/Policy.so: Policy.cpp ../JAWS/Policy.h ../JAWS/Export.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- ../JAWS/Concurrency.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- ../JAWS/IO.h $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- ../JAWS/IO_Handler.h ../JAWS/IO_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.h \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.cpp
-.obj/Concurrency.o .obj/Concurrency.so .shobj/Concurrency.o .shobj/Concurrency.so: Concurrency.cpp ../JAWS/JAWS.h ../JAWS/Concurrency.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- ../JAWS/Export.h ../JAWS/IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- ../JAWS/IO_Handler.h ../JAWS/Pipeline.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp \
- ../JAWS/Pipeline_Tasks.h ../JAWS/Pipeline_Handler_T.h \
- ../JAWS/Pipeline_Handler_T.cpp ../JAWS/Data_Block.h ../JAWS/Policy.h \
- ../JAWS/Waiter.h ../JAWS/Assoc_Array.h ../JAWS/Assoc_Array.cpp \
- ../JAWS/Reaper.h
-.obj/Server.o .obj/Server.so .shobj/Server.o .shobj/Server.so: Server.cpp $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Get_Opt.i ../JAWS/Server.h \
- ../JAWS/Export.h ../JAWS/Data_Block.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- ../JAWS/Pipeline.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp ../JAWS/Policy.h \
- ../JAWS/Concurrency.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp ../JAWS/IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- ../JAWS/IO_Handler.h ../JAWS/IO_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.h \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.cpp \
- ../JAWS/Pipeline_Tasks.h ../JAWS/Pipeline_Handler_T.h \
- ../JAWS/Pipeline_Handler_T.cpp
-.obj/Filecache.o .obj/Filecache.so .shobj/Filecache.o .shobj/Filecache.so: Filecache.cpp ../JAWS/Filecache.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/FILE_IO.h \
- $(ACE_ROOT)/ace/FILE.h \
- $(ACE_ROOT)/ace/IO_SAP.h \
- $(ACE_ROOT)/ace/IO_SAP.i \
- $(ACE_ROOT)/ace/FILE_Addr.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/FILE_Addr.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/FILE.i \
- $(ACE_ROOT)/ace/FILE_IO.i \
- ../JAWS/Cache_Manager.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- ../JAWS/Cache_Manager_T.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- ../JAWS/Cache_Object.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- ../JAWS/Cache_Manager_T.cpp ../JAWS/Cache_Hash_T.h \
- ../JAWS/Cache_Hash_T.cpp ../JAWS/Hash_Bucket_T.h \
- ../JAWS/Hash_Bucket_T.cpp ../JAWS/Export.h
-.obj/FILE.o .obj/FILE.so .shobj/FILE.o .shobj/FILE.so: FILE.cpp ../JAWS/FILE.h \
- $(ACE_ROOT)/ace/FILE_IO.h \
- $(ACE_ROOT)/ace/FILE.h \
- $(ACE_ROOT)/ace/IO_SAP.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/IO_SAP.i \
- $(ACE_ROOT)/ace/FILE_Addr.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/FILE_Addr.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/FILE.i \
- $(ACE_ROOT)/ace/FILE_IO.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i
-.obj/IO_Acceptor.o .obj/IO_Acceptor.so .shobj/IO_Acceptor.o .shobj/IO_Acceptor.so: IO_Acceptor.cpp ../JAWS/Data_Block.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- ../JAWS/Export.h ../JAWS/Pipeline.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp \
- ../JAWS/IO_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.h \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp ../JAWS/IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- ../JAWS/IO_Handler.h
-.obj/IO_Handler.o .obj/IO_Handler.so .shobj/IO_Handler.o .shobj/IO_Handler.so: IO_Handler.cpp \
- $(ACE_ROOT)/ace/Proactor.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Filecache.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- ../JAWS/JAWS.h ../JAWS/IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp ../JAWS/Export.h \
- ../JAWS/IO_Handler.h ../JAWS/IO_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.h \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.cpp \
- ../JAWS/Data_Block.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- ../JAWS/Pipeline.h $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp ../JAWS/Policy.h \
- ../JAWS/Concurrency.h ../JAWS/Waiter.h ../JAWS/Assoc_Array.h \
- ../JAWS/Assoc_Array.cpp
-.obj/IO.o .obj/IO.so .shobj/IO.o .shobj/IO.so: IO.cpp $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Filecache.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- ../JAWS/JAWS.h ../JAWS/Data_Block.h ../JAWS/Export.h \
- ../JAWS/Pipeline.h $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp ../JAWS/Policy.h \
- ../JAWS/Concurrency.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp ../JAWS/IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- ../JAWS/IO_Handler.h ../JAWS/IO_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.h \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.cpp
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Makefile.bor b/apps/JAWS/PROTOTYPE/JAWS/Makefile.bor
deleted file mode 100644
index af27229cef2..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Makefile.bor
+++ /dev/null
@@ -1,31 +0,0 @@
-
-NAME = JAWS
-OBJFILES = \
- $(OBJDIR)\Cache_Manager.obj \
- $(OBJDIR)\Cache_Object.obj \
- $(OBJDIR)\Pipeline.obj \
- $(OBJDIR)\Pipeline_Tasks.obj \
- $(OBJDIR)\Headers.obj \
- $(OBJDIR)\Parse_Headers.obj \
- $(OBJDIR)\Waiter.obj \
- $(OBJDIR)\Reaper.obj \
- $(OBJDIR)\Data_Block.obj \
- $(OBJDIR)\Policy.obj \
- $(OBJDIR)\Concurrency.obj \
- $(OBJDIR)\Server.obj \
- $(OBJDIR)\IO_Acceptor.obj \
- $(OBJDIR)\IO_Handler.obj \
- $(OBJDIR)\IO.obj \
- $(OBJDIR)\Cache_Hash_T.obj \
- $(OBJDIR)\Cache_Heap_T.obj \
- $(OBJDIR)\Cache_List_T.obj \
- $(OBJDIR)\Cache_Manager_T.obj \
- $(OBJDIR)\Hash_Bucket_T.obj \
- $(OBJDIR)\Pipeline_Handler_T.obj
-
-CFLAGS = -I$(ACE_ROOT) -I.. -DJAWS_NTRACE=0 -DACE_NLOGGING
-CPPDIR = .
-BINDIR =..\.
-LIBFILES = $(ACE_LIB)
-!include <$(ACE_ROOT)\include\makeinclude\build_library.bor>
-
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Parse_Headers.cpp b/apps/JAWS/PROTOTYPE/JAWS/Parse_Headers.cpp
deleted file mode 100644
index b0bdfb0d2c8..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Parse_Headers.cpp
+++ /dev/null
@@ -1,441 +0,0 @@
-// $Id$
-
-#include "JAWS/Parse_Headers.h"
-
-#define ACCESSOR(T,C,x) \
-T C##::##x (void) const { return this->##x##_; }\
-void C##::##x (T t) { this->##x##_ = t; }
-
-int
-JAWS_Parse_Headers::parse_headers (JAWS_Header_Info *info,
- ACE_Message_Block &mb)
-{
- for (;;)
- {
- if (mb.rd_ptr () == mb.wr_ptr ())
- break;
-
- char *p = mb.rd_ptr ();
-
- if (info->end_of_line ()
- && (*p != ' ' && *p != '\t'))
- {
- int r = this->parse_header_name (info, mb);
- if (r == 1)
- return info->end_of_headers ();
- continue;
- }
- else
- {
- int r = this->parse_header_value (info, mb);
- if (r == 1)
- {
- if (info->end_of_headers ())
- return 1;
- break;
- }
- continue;
- }
- }
-
- // If we arrive here, it means either there is nothing more to read,
- // or parse_header_value ran into difficulties (like maybe the
- // header value was too long).
-
- if (mb.rd_ptr () != mb.base ())
- {
- mb.crunch ();
- return 0;
- }
- else if (mb.length () < mb.size ())
- {
- return 0;
- }
- else if (mb.length () == mb.size ())
- {
- // This is one of those cases that should rarely ever happen.
- // If we get here, the header type name is over 8K long. We
- // flag this as a bad thing.
-
- // In HTTP/1.1, I have to remember that a bad request means the
- // connection needs to be closed and the client has to
- // reinitiate the connection.
-
- info->status (JAWS_Header_Info::TOO_LONG);
- return 1;
- }
- else if (mb.length () > mb.size ())
- {
- ACE_DEBUG ((LM_DEBUG, "JAWS_Parse_Headers: buffer overrun!!\n"));
- info->status (JAWS_Header_Info::TOO_LONG);
- return 1;
- }
-
- ACE_DEBUG ((LM_DEBUG, "JAWS_Parse_Headers -- shouldn't be here!\n"));
- return 1;
-}
-
-char *
-JAWS_Parse_Headers::skipset (const char *set, char *start, char *end)
-{
- char *p = start;
- while (p < end)
- {
- if (ACE_OS::strchr (set, *p) != NULL)
- break;
- p++;
- }
- return p;
-}
-
-char *
-JAWS_Parse_Headers::skipcset (const char *set, char *start, char *end)
-{
- char *p = start;
- while (p < end)
- {
- if (ACE_OS::strchr (set, *p) == NULL)
- break;
- p++;
- }
- return p;
-}
-
-int
-JAWS_Parse_Headers::parse_header_name (JAWS_Header_Info *info,
- ACE_Message_Block &mb)
-{
- char *p = mb.rd_ptr ();
- char *q;
-
- q = this->skipset (":\n", p, mb.wr_ptr ());
- if (q == mb.wr_ptr ())
- {
- // no more progress can be made until we find a ':'
- return 1;
- }
- if (*q != '\n' && q == p)
- {
- // Ignore empty header type names
- info->finish_last_header_value ();
- info->create_next_header_value (0);
- info->end_of_line (0);
- mb.rd_ptr (q+1);
- return 0;
- }
- if (*q == '\n')
- {
- // ignore this line
- mb.rd_ptr (q+1);
- if (q == p || ((q-1) == p && q[-1] == '\r'))
- {
- // blank line means end of headers
- info->finish_last_header_value ();
- info->create_next_header_value (0);
- info->end_of_headers (1);
- if (mb.rd_ptr () == mb.wr_ptr ())
- mb.crunch ();
- return 1;
- }
-
- // not a blank line, but no ':', so ignore it
- info->finish_last_header_value ();
- info->create_next_header_value (0);
- return 0;
- }
-
- // otherwise, we have a header type name!
- *q = '\0';
- info->create_next_header_value (p);
- info->end_of_line (0);
-
- mb.rd_ptr (q+1);
- return 0;
-}
-
-int
-JAWS_Parse_Headers::parse_header_value (JAWS_Header_Info *info,
- ACE_Message_Block &mb)
-{
- // break --> return 1;
- // continue --> return 0;
-
- char *q = mb.rd_ptr ();
-
- if (info->last_header_data () == 0)
- {
- // Ignoring this header (it is too long or something).
-
- q = this->skipset ("\n", mb.rd_ptr (), mb.wr_ptr ());
- if (q == mb.wr_ptr ())
- {
- info->end_of_line (0);
- mb.rd_ptr (q);
-
- // Move the rd_ptr back one character if the last thing we
- // see is a carriage return. Assert: wr_ptr > rd_ptr.
- if (q[-1] == '\r')
- mb.rd_ptr (q-1);
-
- return 1;
- }
-
- if (*q == '\0')
- {
- // We are in the middle of binary data. Get out!
- mb.rd_ptr (q);
- info->end_of_line (1);
- info->end_of_headers (1);
- return 1;
- }
-
- // Move past the newline, set the end of line flag
- if (*q == '\n')
- {
- info->end_of_line (1);
- q++;
- }
- mb.rd_ptr (q);
-
- return 0;
- }
- else
- {
- if (info->end_of_line ())
- {
- // Skip over leading linear white space
- q = this->skipcset (" \t", mb.rd_ptr (), mb.wr_ptr ());
- if (q == mb.wr_ptr ())
- {
- // need more input
- info->end_of_line (1);
- mb.rd_ptr (q-1);
- return 1;
- }
-
- if (*q != '\n')
- info->append_last_header_value (' ');
- }
-
- // Append to last header value character by character
- while (q < mb.wr_ptr ())
- {
- if (*q == '\n')
- break;
- info->append_last_header_value (*q);
- q++;
- }
-
- // Need more input
- if (q == mb.wr_ptr ())
- {
- mb.rd_ptr (q);
- info->end_of_line (0);
- return 1;
- }
-
- // Reached a newline
- if (*q == '\n')
- {
- // Reduce by one character if line discipline is "\r\n"
- if (info->append_last_header_value () == '\r')
- info->reduce_last_header_value ();
-
- // Move past newline, set end of line flag
- mb.rd_ptr (q+1);
- info->end_of_line (1);
-
- return 0;
- }
- }
-
- // NOT REACHED
- return 1;
-}
-
-
-JAWS_Header_Info::JAWS_Header_Info (void)
- : end_of_headers_ (0),
- end_of_line_ (1),
- last_header_data_ (0),
- last_header_length_ (0),
- status_ (0)
-{
-}
-
-JAWS_Header_Info::~JAWS_Header_Info (void)
-{
- JAWS_Header_Table_Iterator iter (this->table_);
- JAWS_Header_Data *data_ptr;
-
- for (iter.first (); !iter.done (); iter.advance ())
- {
- data_ptr = iter.next ();
- if (data_ptr)
- delete data_ptr;
- }
-}
-
-void
-JAWS_Header_Info::dump (void)
-{
- JAWS_Header_Table_Iterator iter (this->table_);
-
- ACE_DEBUG ((LM_DEBUG, "== BEGIN HEADER INFO DUMP ==\n"));
- for (iter.first (); ! iter.done (); iter.advance ())
- {
- JAWS_Header_Data *data;
- data = iter.next ();
- if (data != 0)
- ACE_DEBUG ((LM_DEBUG,
- "%s -- %s\n",
- data->header_name (), data->header_value ()));
- else
- ACE_DEBUG ((LM_DEBUG, "NULL ENTRY\n"));
- }
- ACE_DEBUG ((LM_DEBUG, "== END HEADER INFO DUMP ==\n"));
-}
-
-JAWS_Headers *
-JAWS_Header_Info::table (void)
-{
- return &(this->table_);
-}
-
-void
-JAWS_Header_Info::append_last_header_value (char c)
-{
- if (this->last_header_data_ == 0)
- return;
-
- if (this->last_header_length_ == 0 && (c == ' ' || c == '\t'))
- return;
-
- if (this->last_header_length_ < MAX_HEADER_LENGTH-1)
- {
- this->header_buf_[this->last_header_length_] = c;
- this->last_header_length_++;
- this->header_buf_[this->last_header_length_] = '\0';
- }
-
-}
-
-int
-JAWS_Header_Info::append_last_header_value (void)
-{
- if (this->last_header_data_ == 0 || this->last_header_length_ == 0)
- return -1;
-
- return this->header_buf_[this->last_header_length_-1];
-}
-
-void
-JAWS_Header_Info::append_last_header_value (const char *begin, const char *end)
-{
- if (this->last_header_data_ == 0)
- return;
-
- while (this->last_header_length_ < MAX_HEADER_LENGTH-1)
- {
- if (begin == end)
- break;
-
- this->header_buf_[this->last_header_length_] = *begin;
- this->last_header_length_++;
- begin++;
- }
-
- this->header_buf_[this->last_header_length_] = '\0';
-}
-
-void
-JAWS_Header_Info::reduce_last_header_value (void)
-{
- if (this->last_header_data_ == 0) return;
-
- if (this->last_header_length_ > 0)
- {
- this->last_header_length_--;
- this->header_buf_[this->last_header_length_] = '\0';
- }
-}
-
-void
-JAWS_Header_Info::create_next_header_value (char *ht)
-{
- if (ht == 0)
- {
- // discard last header data
-
- delete this->last_header_data_;
- this->last_header_data_ = 0;
- this->last_header_length (0);
- return;
- }
-
- this->finish_last_header_value ();
-
- if (this->status () == JAWS_Header_Info::OK)
- {
- // create a new last_header_data_ node
-
- this->last_header_data_ = new JAWS_Header_Data (ht, 0);
- // The above performs a strdup.
-
- if (this->last_header_data_ == 0 || this->last_header_name () == 0)
- {
- this->status (JAWS_Header_Info::NO_MEMORY);
- delete this->last_header_data_;
- this->last_header_data_ = 0;
- }
- this->last_header_length (0);
- this->header_buf_[0] = '\0';
- }
-}
-
-void
-JAWS_Header_Info::finish_last_header_value (void)
-{
- if (this->last_header_data_ != 0)
- {
- // prepare to insert last header data into the table.
-
- this->last_header_data_->header_value (this->header_buf ());
- // The above performs a strdup.
-
- if (this->status () == JAWS_Header_Info::OK)
- this->table_.insert (this->last_header_data_);
- else
- delete this->last_header_data_;
- this->last_header_data_ = 0;
- }
-}
-
-char *
-JAWS_Header_Info::header_buf (void)
-{
- return this->header_buf_;
-}
-
-const char *
-JAWS_Header_Info::last_header_name (void) const
-{
- return this->last_header_data_ ? this->last_header_data_->header_name () : 0;
-}
-
-const JAWS_Header_Data *
-JAWS_Header_Info::last_header_data (void) const
-{
- return this->last_header_data_;
-}
-
-ACCESSOR(int,JAWS_Header_Info,last_header_length)
-ACCESSOR(int,JAWS_Header_Info,end_of_line)
-ACCESSOR(int,JAWS_Header_Info,end_of_headers)
-ACCESSOR(int,JAWS_Header_Info,status)
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
- template class ACE_Singleton<JAWS_Parse_Headers, ACE_SYNCH_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-# pragma instantiate ACE_Singleton<JAWS_Parse_Headers, ACE_SYNCH_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Parse_Headers.h b/apps/JAWS/PROTOTYPE/JAWS/Parse_Headers.h
deleted file mode 100644
index 24bdc0d2462..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Parse_Headers.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_PARSE_HEADERS_H
-#define JAWS_PARSE_HEADERS_H
-
-#include "JAWS/Export.h"
-#include "ace/Singleton.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Message_Block.h"
-
-#include "Headers.h"
-
-class JAWS_Export JAWS_Header_Info
-{
-public:
- JAWS_Header_Info (void);
- ~JAWS_Header_Info (void);
-
- int end_of_line (void) const;
- void end_of_line (int flag);
-
- const char *last_header_name (void) const;
-
- int last_header_length (void) const;
- void last_header_length (int len);
-
- const JAWS_Header_Data * last_header_data (void) const;
-
- char *header_buf (void);
-
- void append_last_header_value (char c);
- int append_last_header_value (void);
- void append_last_header_value (const char *begin, const char *end);
- void reduce_last_header_value (void);
-
- void create_next_header_value (char *ht);
- // This will insert last_header_data into the table if it is not
- // null. Then, it will create a new header_data node and populate
- // it. If ht is null, last_header_data is not inserted.
-
- void finish_last_header_value (void);
- // This will insert last_header_data into the table if it is not
- // null.
-
- int end_of_headers (void) const;
- void end_of_headers (int flag);
-
- int status (void) const;
- void status (int s);
-
- JAWS_Headers *table (void);
-
- enum STATUS_CODE
- {
- OK = 0,
- NO_MEMORY,
- TOO_LONG
- };
-
- enum
- {
- MAX_HEADER_LENGTH = 8192
- };
- // Note that RFC 822 does not mention the maximum length of a header
- // line. So in theory, there is no maximum length.
- // In Apache, they assume that each header line should not exceed
- // 8K. Who am I to disagree?
-
- void dump (void);
-
-private:
- int end_of_headers_;
- int end_of_line_;
-
- JAWS_Header_Data *last_header_data_;
-
- int last_header_length_;
- int status_;
-
- char header_buf_[MAX_HEADER_LENGTH];
- JAWS_Headers table_;
-};
-
-class JAWS_Export JAWS_Parse_Headers
-{
-public:
-
- int parse_headers (JAWS_Header_Info *info, ACE_Message_Block &mb);
- // Return 0 means need more data, and call it again.
- // Return 1 means all done or error.
-
- int parse_header_name (JAWS_Header_Info *info, ACE_Message_Block &mb);
- // Return 0 means reiterate on remaining input.
- // Return 1 means input has ended (either because it ended
- // prematurely, or that there are no more headers).
-
- int parse_header_value (JAWS_Header_Info *info, ACE_Message_Block &mb);
- // Return 0 means reiterate on remaining input.
- // Return 1 means input has ended or that an error has occurred.
-
- char * skipset (const char *set, char *start, char *end);
- // Scans from start to end for characters that match skip set.
- // Returns pointer to first location between start and end of a
- // character that is in the skip set.
-
- char * skipcset (const char *set, char *start, char *end);
- // Scans from start to end for characters that match skip set.
- // Returns pointer to first location between start and end of a
- // character that is *not* in the skip set.
-
-};
-
-typedef ACE_Singleton<JAWS_Parse_Headers, ACE_SYNCH_MUTEX>
- JAWS_Parse_Headers_Singleton;
-
-
-#endif /* !defined (JAWS_PARSE_HEADERS_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Pipeline.cpp b/apps/JAWS/PROTOTYPE/JAWS/Pipeline.cpp
deleted file mode 100644
index e0f298a48ea..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Pipeline.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// $Id$
-
-#include "JAWS/Pipeline.h"
-
-ACE_RCSID(JAWS, Pipeline, "$Id$")
-
-JAWS_Pipeline::JAWS_Pipeline (void)
-{
-}
-
-int
-JAWS_Pipeline::open (void *)
-{
- // Simply call into the virtual svc() method.
- if (this->svc () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "JAWS_Pipeline::svc"),
- -1);
- return 0;
-}
-
-int
-JAWS_Pipeline::close (u_long)
-{
- return 0;
-}
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Pipeline.h b/apps/JAWS/PROTOTYPE/JAWS/Pipeline.h
deleted file mode 100644
index 03c3c66d104..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Pipeline.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_PIPELINE_H
-#define JAWS_PIPELINE_H
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Service_Config.h"
-#include "ace/Stream.h"
-#include "ace/Module.h"
-#include "ace/Task.h"
-
-#include "JAWS/Export.h"
-
-typedef ACE_Stream<ACE_NULL_SYNCH> JAWS_Pipeline_Stream;
-typedef ACE_Module<ACE_NULL_SYNCH> JAWS_Pipeline_Module;
-typedef ACE_Task<ACE_NULL_SYNCH> JAWS_Pipeline_Task;
-
-class JAWS_IO_Handler;
-class JAWS_Dispatch_Policy;
-
-class JAWS_Export JAWS_Pipeline : public JAWS_Pipeline_Task
- // = TITLE
- // Methods that are common to pipeline components
-{
-public:
- JAWS_Pipeline (void);
- // ACE_Task hooks
-
- virtual int open (void * = 0);
- virtual int close (u_long = 0);
-};
-
-#endif /* !defined (JAWS_PIPELINE_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler_T.cpp b/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler_T.cpp
deleted file mode 100644
index ca2e26b3177..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler_T.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-// $Id$
-
-#ifndef JAWS_PIPELINE_HANDLER_T_CPP
-#define JAWS_PIPELINE_HANDLER_T_CPP
-
-#include "JAWS/Pipeline_Handler_T.h"
-
-ACE_RCSID(JAWS, Pipeline_Handler_T, "$Id$")
-
-template <class TYPE>
-JAWS_Pipeline_Abstract_Handler<TYPE>::JAWS_Pipeline_Abstract_Handler (void)
-{
-}
-
-template <class TYPE>
-JAWS_Pipeline_Abstract_Handler<TYPE>::~JAWS_Pipeline_Abstract_Handler (void)
-{
-}
-
-template <class TYPE> int
-JAWS_Pipeline_Abstract_Handler<TYPE>::put (ACE_Message_Block *mb,
- ACE_Time_Value *tv)
-{
- TYPE *data = (TYPE *) mb->data_block ();
-
- int status = this->handle_put (data, tv);
-
- return status;
-}
-
-#endif /* !defined (JAWS_PIPELINE_HANDLER_T_CPP) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler_T.h b/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler_T.h
deleted file mode 100644
index 4d4d808fee2..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler_T.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_PIPELINE_HANDLER_T_H
-#define JAWS_PIPELINE_HANDLER_T_H
-
-#include "JAWS/Export.h"
-#include "JAWS/Pipeline.h"
-
-template <class TYPE>
-class JAWS_Pipeline_Abstract_Handler : public JAWS_Pipeline_Task
- // = TITLE
- // Methods that are common to pipeline components
-{
-public:
- JAWS_Pipeline_Abstract_Handler (void);
- virtual ~JAWS_Pipeline_Abstract_Handler (void);
- // ACE_Task hooks
-
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
- // inherited from ACE_Task
-
- virtual int handle_put (TYPE *data, ACE_Time_Value *tv) = 0;
- // Callback hook for specialized data processing
-
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "JAWS/Pipeline_Handler_T.cpp"
-#endif
-
-#endif /* !defined (JAWS_PIPELINE_HANDLER_T_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.cpp b/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.cpp
deleted file mode 100644
index 8af617d8979..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.cpp
+++ /dev/null
@@ -1,213 +0,0 @@
-// $Id$
-
-#include "JAWS/JAWS.h"
-
-#include "JAWS/IO.h"
-#include "JAWS/Pipeline_Tasks.h"
-#include "JAWS/Pipeline_Handler_T.h"
-#include "JAWS/Data_Block.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/Policy.h"
-
-ACE_RCSID(JAWS, Pipeline_Tasks, "$Id$")
-
-JAWS_Pipeline_Handler::JAWS_Pipeline_Handler (void)
- : policy_ (0)
-{
-}
-
-JAWS_Pipeline_Handler::~JAWS_Pipeline_Handler (void)
-{
-}
-
-int
-JAWS_Pipeline_Handler::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
-{
- JAWS_Data_Block *db = ACE_dynamic_cast (JAWS_Data_Block *, mb);
- JAWS_IO_Handler *ioh = db->io_handler ();
-
- // guarantee the handler remains for the duration of this call
- ioh->acquire ();
-
- int status = this->handle_put (db, tv);
-
- if (status != -1 && status != 2)
- {
- JAWS_Pipeline_Handler *task = ioh->task ();
- JAWS_Pipeline_Handler *next
- = ACE_dynamic_cast (JAWS_Pipeline_Handler *, task->next ());
-
- ioh->task (next);
- }
-
- ioh->release ();
-
- return status;
-}
-
-JAWS_Dispatch_Policy *
-JAWS_Pipeline_Handler::policy (void)
-{
- return this->policy_;
-}
-
-void
-JAWS_Pipeline_Handler::policy (JAWS_Dispatch_Policy *policy)
-{
- this->policy_ = policy;
-}
-
-int
-JAWS_Pipeline_Accept_Task::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
-{
- JAWS_Data_Block *db = ACE_dynamic_cast (JAWS_Data_Block *, mb);
-
- JAWS_Pipeline_Handler *task = db->task ();
- JAWS_Pipeline_Handler *next
- = ACE_dynamic_cast (JAWS_Pipeline_Handler *, task->next ());
-
- JAWS_IO_Handler *ioh = this->new_handler (db);
- if (ioh == 0)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "JAWS_Pipeline_Accept_Task::put"));
- return -1;
- }
-
- ioh->acquire ();
-
- ioh->task (next);
- db->io_handler (ioh);
-
- int result = this->handle_put (ioh->message_block (), tv);
-
- ioh->release ();
-
- return result;
-}
-
-int
-JAWS_Pipeline_Accept_Task::handle_put (JAWS_Data_Block *data,
- ACE_Time_Value *)
-{
- int result = -1;
-
- // JAWS_Data_Block should contain an INET_Addr and an IO
- JAWS_IO_Handler *handler = data->io_handler ();
- JAWS_Dispatch_Policy *policy = this->policy ();
-
- if (policy == 0) policy = data->policy ();
-
- // data->policy ()->update (handler);
-
- JAWS_IO *io = policy->io ();
- io->accept (handler);
-
- // When accept returns, the resulting handle should be stored into
- // the JAWS_DATA_BLOCK somewhere.
-
- // Check the handler for status of the io call
- switch (handler->status ())
- {
- case JAWS_IO_Handler::ACCEPT_OK:
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) ACCEPT_OK\n"));
- result = 0;
- JAWS_TRACE ("JAWS_Pipeline_Accept_Task::handle_put ACCEPT_OK");
- // Move on to next stage in pipeline
- break;
- }
- case JAWS_IO_Handler::ACCEPT_ERROR:
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) ACCEPT_ERROR\n"));
- result = -1;
- JAWS_TRACE ("JAWS_Pipeline_Accept_Task::handle_put ACCEPT_ERROR");
- // Should recycle the thread
- break;
- }
- default:
- {
- result = 1;
- JAWS_TRACE ("JAWS_Pipeline_Accept_Task::handle_put ACCEPT_IDLE");
- // Should mean that the IO is asynchronous, and the word isn't out
- // yet.
- break;
- }
- }
-
- // In asynchronous and synchronous models, we can --
- // have the io_handler set the new task in the data_block
-
- // In asynchronous model, we can --
- // insert a wait task into the task queue
-
- ACE_DEBUG ((LM_DEBUG, "(%t) Returning %d\n", result));
- return result;
-}
-
-JAWS_IO_Handler *
-JAWS_Pipeline_Accept_Task::new_handler (JAWS_Data_Block *data)
-{
- // Create a new handler and message block
- JAWS_Data_Block *ndb = new JAWS_Data_Block (*data);
- if (ndb == 0)
- {
- JAWS_TRACE ("JAWS_Pipeline_Accept_Task::new_handler, failed DB");
- return 0;
- }
-
- JAWS_Dispatch_Policy *policy =
- (this->policy () == 0) ? data->policy () : this->policy ();
- JAWS_IO_Handler_Factory *ioh_factory = policy->ioh_factory ();
-
- JAWS_IO_Handler *nioh = ioh_factory->create_io_handler ();
- if (nioh == 0)
- {
- delete ndb;
- return 0;
- }
-
- ndb->io_handler (nioh);
- nioh->task (data->task ());
- nioh->message_block (ndb);
-
- return nioh;
-}
-
-int
-JAWS_Pipeline_Done_Task::put (ACE_Message_Block *mb, ACE_Time_Value *)
-{
- JAWS_TRACE ("JAWS_Pipeline_Done_Task::put");
-
- JAWS_Data_Block *data = ACE_dynamic_cast (JAWS_Data_Block *, mb);
-
- JAWS_IO_Handler *handler = data->io_handler ();
- JAWS_Dispatch_Policy *policy = this->policy ();
- if (policy == 0) policy = data->policy ();
-
- // JAWS_IO *io = policy->io ();
-
- data->task (0);
- data->io_handler (0);
-
- if (handler)
- handler->done ();
-
- // hack, let Concurrency know we are done.
- return -2;
-}
-
-int
-JAWS_Pipeline_Done_Task::handle_put (JAWS_Data_Block *, ACE_Time_Value *)
-{
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class JAWS_Pipeline_Abstract_Handler<JAWS_Data_Block>;
-template class ACE_Singleton<JAWS_Pipeline_Accept_Task, ACE_SYNCH_MUTEX>;
-template class ACE_Singleton<JAWS_Pipeline_Done_Task, ACE_SYNCH_NULL_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate JAWS_Pipeline_Abstract_Handler<JAWS_Data_Block>
-#pragma instantiate ACE_Singleton<JAWS_Pipeline_Accept_Task, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Singleton<JAWS_Pipeline_Done_Task, ACE_SYNCH_NULL_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.h b/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.h
deleted file mode 100644
index 3bbb5080593..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_PIPELINE_TASKS_H
-#define JAWS_PIPELINE_TASKS_H
-
-#include "ace/Singleton.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "JAWS/Export.h"
-#include "JAWS/Pipeline.h"
-#include "JAWS/Pipeline_Handler_T.h"
-#include "JAWS/Data_Block.h"
-
-class JAWS_Export JAWS_Pipeline_Handler
- : public JAWS_Pipeline_Abstract_Handler<JAWS_Data_Block>
-{
-public:
- JAWS_Pipeline_Handler (void);
- virtual ~JAWS_Pipeline_Handler (void);
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
- virtual int handle_put (JAWS_Data_Block *data, ACE_Time_Value *tv) = 0;
-
- virtual JAWS_Dispatch_Policy * policy (void);
- virtual void policy (JAWS_Dispatch_Policy *);
-
-private:
- JAWS_Dispatch_Policy *policy_;
-};
-
-class JAWS_Pipeline_Accept_Task : public JAWS_Pipeline_Handler
-{
-public:
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
- virtual int handle_put (JAWS_Data_Block *data, ACE_Time_Value *tv);
-
- virtual JAWS_IO_Handler * new_handler (JAWS_Data_Block *data);
-};
-
-class JAWS_Pipeline_Done_Task : public JAWS_Pipeline_Handler
-{
-public:
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
- virtual int handle_put (JAWS_Data_Block *data, ACE_Time_Value *tv);
-};
-
-typedef ACE_Singleton<JAWS_Pipeline_Accept_Task, ACE_SYNCH_MUTEX>
- JAWS_Pipeline_Accept_Task_Singleton;
-
-typedef ACE_Singleton<JAWS_Pipeline_Done_Task, ACE_SYNCH_NULL_MUTEX>
- JAWS_Pipeline_Done_Task_Singleton;
-
-#endif /* !defined (JAWS_PIPELINE_TASKS_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Policy.cpp b/apps/JAWS/PROTOTYPE/JAWS/Policy.cpp
deleted file mode 100644
index 9eac271416a..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Policy.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-// $Id$
-
-#include "JAWS/Policy.h"
-#include "JAWS/Concurrency.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/IO_Acceptor.h"
-
-ACE_RCSID(JAWS, Policy, "$Id$")
-
-JAWS_Dispatch_Policy::JAWS_Dispatch_Policy (void)
-{
-}
-
-JAWS_Dispatch_Policy::~JAWS_Dispatch_Policy (void)
-{
-}
-
-JAWS_Default_Dispatch_Policy::JAWS_Default_Dispatch_Policy (void)
- : ratio_ (1),
- concurrency_ (JAWS_Thread_Pool_Singleton::instance ()),
- ioh_factory_ (JAWS_Synch_IO_Handler_Factory_Singleton::instance ()),
- acceptor_ (JAWS_IO_Synch_Acceptor_Singleton::instance ()),
- io_ (JAWS_Synch_IO_Singleton::instance ())
-{
-}
-
-JAWS_Default_Dispatch_Policy::~JAWS_Default_Dispatch_Policy (void)
-{
-}
-
-int
-JAWS_Default_Dispatch_Policy::ratio (void)
-{
- return this->ratio_;
-}
-
-JAWS_IO *
-JAWS_Default_Dispatch_Policy::io (void)
-{
- return this->io_;
-}
-
-JAWS_IO_Handler_Factory *
-JAWS_Default_Dispatch_Policy::ioh_factory (void)
-{
- return this->ioh_factory_;
-}
-
-JAWS_IO_Acceptor *
-JAWS_Default_Dispatch_Policy::acceptor (void)
-{
- return this->acceptor_;
-}
-
-JAWS_Concurrency_Base *
-JAWS_Default_Dispatch_Policy::concurrency (void)
-{
- return this->concurrency_;
-}
-
-void
-JAWS_Default_Dispatch_Policy::ratio (int r)
-{
- this->ratio_ = r;
-}
-
-void
-JAWS_Default_Dispatch_Policy::io (JAWS_IO *io)
-{
- this->io_ = io;
-}
-
-void
-JAWS_Default_Dispatch_Policy::ioh_factory (JAWS_IO_Handler_Factory *iohf)
-{
- this->ioh_factory_ = iohf;
-}
-
-void
-JAWS_Default_Dispatch_Policy::acceptor (JAWS_IO_Acceptor *acceptor)
-{
- this->acceptor_ = acceptor;
-}
-
-void
-JAWS_Default_Dispatch_Policy::concurrency (JAWS_Concurrency_Base *concp)
-{
- this->concurrency_ = concp;
-}
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Policy.h b/apps/JAWS/PROTOTYPE/JAWS/Policy.h
deleted file mode 100644
index 9255594c056..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Policy.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_POLICY_H
-#define JAWS_POLICY_H
-
-#include "JAWS/Export.h"
-#include "JAWS/Concurrency.h"
-
-class JAWS_IO;
-class JAWS_IO_Handler;
-class JAWS_IO_Handler_Factory;
-
-class JAWS_Export JAWS_Dispatch_Policy
- // = TITLE
- // Policy mechanism for choosing different concurrency models.
- //
- // = DESCRIPTION
- // Given some (unspecified) state, decides what the concurrency
- // model should be. (For now, we always return the same model.)
-{
-public:
- JAWS_Dispatch_Policy (void);
- virtual ~JAWS_Dispatch_Policy (void);
-
- virtual int ratio (void) = 0;
- virtual JAWS_IO * io (void) = 0;
- virtual JAWS_IO_Handler_Factory *ioh_factory (void) = 0;
- virtual JAWS_IO_Acceptor *acceptor (void) = 0;
- virtual JAWS_Concurrency_Base * concurrency (void) = 0;
-
- virtual void ratio (int r) = 0;
- virtual void io (JAWS_IO *iop) = 0;
- virtual void ioh_factory (JAWS_IO_Handler_Factory *factoryp) = 0;
- virtual void acceptor (JAWS_IO_Acceptor *acceptorp) = 0;
- virtual void concurrency (JAWS_Concurrency_Base *concp) = 0;
-};
-
-class JAWS_Export JAWS_Default_Dispatch_Policy : public JAWS_Dispatch_Policy
-{
-public:
- JAWS_Default_Dispatch_Policy (void);
- virtual ~JAWS_Default_Dispatch_Policy (void);
-
- virtual int ratio (void);
- virtual JAWS_IO *io (void);
- virtual JAWS_IO_Handler_Factory *ioh_factory (void);
- virtual JAWS_IO_Acceptor *acceptor (void);
- virtual JAWS_Concurrency_Base *concurrency (void);
-
- virtual void ratio (int r);
- virtual void io (JAWS_IO *iop);
- virtual void ioh_factory (JAWS_IO_Handler_Factory *factoryp);
- virtual void acceptor (JAWS_IO_Acceptor *acceptorp);
- virtual void concurrency (JAWS_Concurrency_Base *concp);
-
-private:
- int ratio_;
- JAWS_Concurrency_Base *concurrency_;
- JAWS_IO_Handler_Factory *ioh_factory_;
- JAWS_IO_Acceptor *acceptor_;
- JAWS_IO *io_;
-};
-
-#endif /* !defined (JAWS_POLICY_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Reaper.cpp b/apps/JAWS/PROTOTYPE/JAWS/Reaper.cpp
deleted file mode 100644
index 6d1d5845cba..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Reaper.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-// $Id$
-
-#include "JAWS/Reaper.h"
-#include "JAWS/Concurrency.h"
-#include "JAWS/IO_Acceptor.h"
-
-ACE_RCSID(JAWS, Reaper, "$Id$")
-
-JAWS_Reaper::JAWS_Reaper (JAWS_Concurrency_Base *concurrency)
- : concurrency_ (concurrency),
- waiting_ (0)
-{
-}
-
-JAWS_Reaper::~JAWS_Reaper (void)
-{
-}
-
-int
-JAWS_Reaper::open (void *)
-{
- if (this->waiting_ == 0)
- {
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
- if (this->waiting_ == 0)
- {
- if (this->activate () == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "JAWS_Reaper::activate"),
- -1);
- this->waiting_ = 1;
- }
- }
- return 0;
-}
-
-int
-JAWS_Reaper::svc (void)
-{
- ACE_TRACE ("JAWS_Reaper::svc");
- int result = this->concurrency_->thr_mgr ()->wait ();
- JAWS_IO_Synch_Acceptor_Singleton::instance ()->close ();
- JAWS_IO_Asynch_Acceptor_Singleton::instance ()->close ();
- ACE_DEBUG ((LM_DEBUG, "(%t) Leaving REAPER\n"));
- return result;
-}
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Reaper.h b/apps/JAWS/PROTOTYPE/JAWS/Reaper.h
deleted file mode 100644
index e23193441c7..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Reaper.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_REAPER_H
-#define JAWS_REAPER_H
-
-#include "ace/Singleton.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-#include "ace/Task.h"
-
-#include "JAWS/Export.h"
-
-// A reaper class to reap the threads.
-
-class JAWS_Concurrency_Base;
-
-class JAWS_Export JAWS_Reaper : public ACE_Task<ACE_MT_SYNCH>
-{
- // = TITLE
- // Reap threads for the concurrency strategies
- //
- // = DESCRIPTION
- // The JAWS_Reaper uses the default Thread Manager (while each
- // concurrency strategy uses their own). The idea is that the
- // reaper will spawn a thread to reap the threads of a concurrency
- // strategy. This allows the main thread to reap the threads of
- // the reaper before exiting.
-
-public:
- JAWS_Reaper (JAWS_Concurrency_Base *concurrency);
- virtual ~JAWS_Reaper (void);
-
- virtual int open (void * = 0);
- virtual int svc (void);
-
-private:
- JAWS_Concurrency_Base *concurrency_;
- int waiting_;
- ACE_SYNCH_MUTEX lock_;
-
-};
-
-#endif /* JAWS_REAPER_H */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Server.cpp b/apps/JAWS/PROTOTYPE/JAWS/Server.cpp
deleted file mode 100644
index 629bd00d1f4..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Server.cpp
+++ /dev/null
@@ -1,190 +0,0 @@
-// $Id$
-
-#include "ace/Get_Opt.h"
-
-#if (ACE_NTRACE != 1)
-#include "ace/Trace.h"
-#endif /* (ACE_NTRACE != 1) */
-
-#include "JAWS/Server.h"
-#include "JAWS/Data_Block.h"
-#include "JAWS/Concurrency.h"
-#include "JAWS/IO.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/IO_Acceptor.h"
-#include "JAWS/Pipeline_Tasks.h"
-
-ACE_RCSID(JAWS, Server, "$Id$")
-
-JAWS_Server::JAWS_Server (void)
- : port_ (5432),
- concurrency_ (0),
- dispatch_ (0),
- nthreads_ (5),
- maxthreads_ (20),
- flags_ (THR_NEW_LWP)
-{
-}
-
-JAWS_Server::JAWS_Server (int argc, char *argv[])
- : ratio_ (1),
- port_ (5432),
- concurrency_ (0),
- dispatch_ (0),
- nthreads_ (5),
- maxthreads_ (20),
- flags_ (THR_NEW_LWP)
-{
- this->init (argc, argv);
-}
-
-void
-JAWS_Server::init (int argc, char *argv[])
-{
- this->parse_args (argc, argv);
-
- this->policy_.ratio (this->ratio_);
-
- if (this->concurrency_ == 1)
- {
- JAWS_Thread_Per_Singleton::instance ()->make (this->flags_,
- this->maxthreads_);
- this->policy_.concurrency (JAWS_Thread_Per_Singleton::instance ());
- }
- else
- {
- JAWS_Thread_Pool_Singleton::instance ()->make (this->flags_,
- this->nthreads_,
- this->maxthreads_);
- this->policy_.concurrency (JAWS_Thread_Pool_Singleton::instance ());
- }
-
-#if !(defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS))
- this->dispatch_ = 0;
-#endif /* !defined (ACE_WIN32) */
-
- if (this->dispatch_ == 1)
- {
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- this->policy_.io (JAWS_Asynch_IO_Singleton::instance ());
- this->policy_.ioh_factory
- (JAWS_Asynch_IO_Handler_Factory_Singleton::instance ());
- this->policy_.acceptor (JAWS_IO_Asynch_Acceptor_Singleton::instance ());
-#endif /* defined (ACE_WIN32) */
- }
- else
- {
- this->policy_.io (JAWS_Synch_IO_Singleton::instance ());
- this->policy_.ioh_factory
- (JAWS_Synch_IO_Handler_Factory_Singleton::instance ());
- this->policy_.acceptor (JAWS_IO_Synch_Acceptor_Singleton::instance ());
- }
-
- ACE_INET_Addr inet_addr (this->port_);
- this->policy_.acceptor ()->open (inet_addr);
-}
-
-int
-JAWS_Server::open (JAWS_Pipeline_Handler *protocol,
- JAWS_Dispatch_Policy *policy)
-{
- if (policy == 0)
- policy = &this->policy_;
-
- JAWS_Data_Block *db = new JAWS_Data_Block;
- if (db == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) JAWS_Server::open, could not create Data_Block\n"));
- return -1;
- }
-
- // initialize data block
-
- db->task (JAWS_Pipeline_Accept_Task_Singleton::instance ());
- db->policy (policy);
- db->io_handler (0);
-
- db->task ()->next (protocol);
-
- // prime the acceptor if appropriate
- if (this->dispatch_ == 1)
- {
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
-
- int n = this->nthreads_;
- if (this->concurrency_ == 1)
- n = 1;
-
- for (int i = 0; i < n * this->ratio_ - n; i++)
- db->task ()->put (db);
-
-#endif /* defined (ACE_WIN32) */
- }
-
- // The message block should contain an INET_Addr, and call the
- // io->accept (INET_Addr) method!
-
- policy->concurrency ()->put (db);
-
- ACE_Thread_Manager::instance ()->wait ();
-
- db->release ();
-
- return 0;
-}
-
-void
-JAWS_Server::parse_args (int argc, char *argv[])
-{
- int c;
- int t = 0;
-
- ACE_Get_Opt getopt (argc, argv, "t" "p:c:d:n:m:f:r:");
- while ((c = getopt ()) != -1)
- switch (c)
- {
- case 't':
- t = !t;
- break;
- case 'p':
- this->port_ = ACE_OS::atoi (getopt.optarg);
- break;
- case 'c':
- if (ACE_OS::strcmp (getopt.optarg, "PER_REQUEST") == 0)
- this->concurrency_ = 1;
- else this->concurrency_ = 0;
- break;
- case 'd':
- if (ACE_OS::strcmp (getopt.optarg, "ASYNCH") == 0)
- this->dispatch_ = 1;
- else this->dispatch_ = 0;
- break;
- case 'n':
- this->nthreads_ = ACE_OS::atoi (getopt.optarg);
- break;
- case 'm':
- this->maxthreads_ = ACE_OS::atoi (getopt.optarg);
- break;
- case 'f':
- if (ACE_OS::strcmp (getopt.optarg, "THR_BOUND") == 0)
- this->flags_ |= THR_BOUND;
- else if (ACE_OS::strcmp (getopt.optarg, "THR_DAEMON") == 0)
- this->flags_ |= THR_DAEMON;
- else if (ACE_OS::strcmp (getopt.optarg, "THR_DETACHED") == 0)
- this->flags_ |= THR_DETACHED;
- break;
- case 'r':
- this->ratio_ = ACE_OS::atoi (getopt.optarg);
- break;
- }
-
- if (t)
- ACE_Trace::start_tracing ();
- else
- ACE_Trace::stop_tracing ();
-
- if (this->port_ == 0) this->port_ = 5432;
- if (this->nthreads_ == 0) this->nthreads_ = 5;
- if (this->maxthreads_ == 0) this->maxthreads_ = 20;
-}
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Server.h b/apps/JAWS/PROTOTYPE/JAWS/Server.h
deleted file mode 100644
index 0cac8f17ae0..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Server.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_SERVER_H
-#define JAWS_SERVER_H
-
-#include "JAWS/Export.h"
-#include "JAWS/Data_Block.h"
-#include "JAWS/Policy.h"
-
-class JAWS_IO_Handler_Factory;
-
-class JAWS_Export JAWS_Server
-{
-public:
- JAWS_Server (void);
- JAWS_Server (int argc, char *argv[]);
-
- void init (int argc, char *argv[]);
- int open (JAWS_Pipeline_Handler *ph, JAWS_Dispatch_Policy *dp = 0);
-
-private:
- void parse_args (int argc, char *argv[]);
- // Parse arguments
-
-private:
- int ratio_; // ratio of asynch ops to threads
- int port_; // port to listen on
- int concurrency_; // 0 => pool, 1 => per request
- int dispatch_; // 0 => synch, 1 => asynch
- int nthreads_; // number of threads
- int maxthreads_; // maximum number of threads
- long flags_; // thread creation flags
-
- JAWS_Default_Dispatch_Policy policy_;
-};
-
-
-#endif /* !defined (JAWS_SERVER_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Waiter.cpp b/apps/JAWS/PROTOTYPE/JAWS/Waiter.cpp
deleted file mode 100644
index 8b47274ac8f..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Waiter.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-// $Id$
-
-#include "ace/Proactor.h"
-
-#include "JAWS/Waiter.h"
-#include "JAWS/IO_Handler.h"
-
-ACE_RCSID(JAWS, Waiter, "$Id$")
-
-JAWS_Waiter::JAWS_Waiter (void)
- : iter_ (*this)
-{
-}
-
-JAWS_Waiter::~JAWS_Waiter (void)
-{
-}
-
-JAWS_Waiter_Base_Iterator &
-JAWS_Waiter::iter (void)
-{
- return this->iter_;
-}
-
-int
-JAWS_Waiter::index (void)
-{
-#if 0
- // A future version of ACE will support this.
- ACE_Thread_ID tid = ACE_OS::thr_self ();
-#else
- // Do it this way for now
- ACE_thread_t thr_name;
- thr_name = ACE_OS::thr_self ();
-
- JAWS_Thread_ID tid (thr_name);
-#endif /* 0 */
-
- return JAWS_Waiter_Base::index (tid);
-}
-
-JAWS_IO_Handler *
-JAWS_Waiter::wait_for_completion (int i)
-{
- JAWS_IO_Handler *ioh;
- JAWS_IO_Handler **iohptr;
-
- iohptr = (i >= 0) ? this->find (i) : this->find (this->index ());
-
- while (*iohptr == 0)
- if (ACE_Proactor::instance ()->handle_events () == -1)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "JAWS_Waiter::wait_for_completion"));
- return 0;
- }
-
- ioh = *iohptr;
- *iohptr = 0;
-
- ioh->lock ();
- ioh->release ();
- return ioh;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class JAWS_Assoc_Array<JAWS_Thread_ID, JAWS_IO_Handler *>;
-template class JAWS_Assoc_Array_Iterator<JAWS_Thread_ID, JAWS_IO_Handler *>;
-template class ACE_Singleton<JAWS_Waiter, ACE_SYNCH_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate JAWS_Assoc_Array<JAWS_Thread_ID, JAWS_IO_Handler *>
-#pragma instantiate JAWS_Assoc_Array_Iterator<JAWS_Thread_ID, JAWS_IO_Handler *>
-#pragme instantiate ACE_Singleton<JAWS_Waiter, ACE_SYNCH_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Waiter.h b/apps/JAWS/PROTOTYPE/JAWS/Waiter.h
deleted file mode 100644
index 57bd35086b0..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Waiter.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_WAITER_H
-#define JAWS_WAITER_H
-
-#include "ace/Singleton.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "JAWS/Assoc_Array.h"
-#include "JAWS/Export.h"
-
-class JAWS_IO_Handler;
-
-typedef ACE_thread_t JAWS_Thread_ID;
-
-typedef JAWS_Assoc_Array<JAWS_Thread_ID, JAWS_IO_Handler *> JAWS_Waiter_Base;
-typedef JAWS_Assoc_Array_Iterator<JAWS_Thread_ID, JAWS_IO_Handler *>
- JAWS_Waiter_Base_Iterator;
-
-class JAWS_Export JAWS_Waiter : public JAWS_Waiter_Base
-{
-public:
- JAWS_Waiter (void);
- ~JAWS_Waiter (void);
-
- JAWS_Waiter_Base_Iterator &iter (void);
- // Returns an iterator to the headers container.
-
- int index (void);
- // Returns the index into the table associated with calling thread.
-
- JAWS_IO_Handler * wait_for_completion (int i = -1);
- // The entry point for this class, handles outstanding asynchronous
- // events. Can optionally accept a parameter that points to which
- // table entry to return.
-
-private:
- JAWS_Waiter_Base_Iterator iter_;
-
-};
-
-typedef ACE_Singleton<JAWS_Waiter, ACE_SYNCH_MUTEX> JAWS_Waiter_Singleton;
-
-#endif /* JAWS_WAITER_H */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/jaws.dsp b/apps/JAWS/PROTOTYPE/JAWS/jaws.dsp
deleted file mode 100644
index dfaa8ce7dba..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/jaws.dsp
+++ /dev/null
@@ -1,224 +0,0 @@
-# Microsoft Developer Studio Project File - Name="JAWS" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=JAWS - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "JAWS.MAK".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "JAWS.MAK" CFG="JAWS - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "JAWS - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "JAWS - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "JAWS - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\.." /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D JAWS_HAS_DLL=1 /D "JAWS_BUILD_DLL" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 ace.lib /nologo /subsystem:windows /dll /machine:I386 /out:"..\..\..\..\bin\JAWS.dll" /libpath:"..\..\..\..\ace"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "JAWS - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\.." /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D JAWS_HAS_DLL=1 /D "JAWS_BUILD_DLL" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"..\..\..\..\bin\JAWSd.dll" /pdbtype:sept /libpath:"..\..\..\..\ace"
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "JAWS - Win32 Release"
-# Name "JAWS - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\Concurrency.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Data_Block.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Headers.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Parse_Headers.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pipeline.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pipeline_Tasks.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Policy.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reaper.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Server.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Waiter.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h"
-# Begin Source File
-
-SOURCE=.\Assoc_Array.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Concurrency.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Data_Block.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Export.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_State.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\JAWS.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pipeline.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pipeline_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pipeline_Tasks.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Policy.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Server.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Waiter.h
-# End Source File
-# End Group
-# Begin Group "Template Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\Assoc_Array.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pipeline_Handler.cpp
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/apps/JAWS/PROTOTYPE/JAWS/jaws.dsw b/apps/JAWS/PROTOTYPE/JAWS/jaws.dsw
deleted file mode 100644
index 6a2a6b671bc..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/jaws.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "JAWS"=.\JAWS.DSP - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/apps/JAWS/PROTOTYPE/Makefile b/apps/JAWS/PROTOTYPE/Makefile
deleted file mode 100644
index cb6bd8a8cd5..00000000000
--- a/apps/JAWS/PROTOTYPE/Makefile
+++ /dev/null
@@ -1,661 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the Event Server test
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = main
-
-FILES = HTTP_10 \
- HTTP_10_Request \
- HTTP_10_Read \
- HTTP_10_Parse \
- HTTP_10_Write
-
-SRC = $(addsuffix .cpp,$(FILES))
-OBJ = $(addsuffix .o,$(FILES))
-
-LDFLAGS += -L./JAWS
-LDLIBS = -lHTTPU -lJAWS
-CFLAGS += -DJAWS_HAS_THREAD_SAFE_ACCEPT
-
-BUILD = $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/HTTP_10.o .obj/HTTP_10.so .shobj/HTTP_10.o .shobj/HTTP_10.so: HTTP_10.cpp HTTP_10.h $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/ACE.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config-sunos5.6.h \
- $(ACE_ROOT)/ace/config-sunos5.5.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp JAWS/Pipeline_Tasks.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp JAWS/Export.h \
- JAWS/Pipeline.h $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task.h $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp JAWS/Pipeline_Handler.h \
- JAWS/Pipeline_Handler.cpp JAWS/Data_Block.h JAWS/JAWS.h
-.obj/HTTP_10_Request.o .obj/HTTP_10_Request.so .shobj/HTTP_10_Request.o .shobj/HTTP_10_Request.so: HTTP_10_Request.cpp JAWS/JAWS.h HTTP_10_Request.h \
- HTTPU/http_request.h $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config-sunos5.6.h \
- $(ACE_ROOT)/ace/config-sunos5.5.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Malloc.h $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp JAWS/Parse_Headers.h \
- JAWS/Export.h $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp JAWS/Headers.h \
- HTTPU/http_export.h HTTPU/http_base.h HTTPU/http_status.h \
- HTTPU/http_status.i HTTPU/http_headers.h \
- $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp HTTPU/http_headers.i \
- HTTPU/http_base.i HTTPU/parse_http_request.h \
- HTTPU/parse_http_request.i HTTPU/parse_url.h HTTPU/http_request.i
-.obj/HTTP_10_Read.o .obj/HTTP_10_Read.so .shobj/HTTP_10_Read.o .shobj/HTTP_10_Read.so: HTTP_10_Read.cpp HTTP_10.h \
- $(ACE_ROOT)/ace/RB_Tree.h $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config-sunos5.6.h \
- $(ACE_ROOT)/ace/config-sunos5.5.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp JAWS/Pipeline_Tasks.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp JAWS/Export.h \
- JAWS/Pipeline.h $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task.h $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp JAWS/Pipeline_Handler.h \
- JAWS/Pipeline_Handler.cpp JAWS/Data_Block.h JAWS/JAWS.h JAWS/IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.i \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i JAWS/IO_Handler.h \
- JAWS/Policy.h JAWS/Concurrency.h
-.obj/HTTP_10_Parse.o .obj/HTTP_10_Parse.so .shobj/HTTP_10_Parse.o .shobj/HTTP_10_Parse.so: HTTP_10_Parse.cpp $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config-sunos5.6.h \
- $(ACE_ROOT)/ace/config-sunos5.5.h \
- $(ACE_ROOT)/ace/RB_Tree.h $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp JAWS/Pipeline_Tasks.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp JAWS/Export.h \
- JAWS/Pipeline.h $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task.h $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp JAWS/Pipeline_Handler.h \
- JAWS/Pipeline_Handler.cpp JAWS/Data_Block.h JAWS/JAWS.h JAWS/IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.i \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i JAWS/IO_Handler.h \
- JAWS/Policy.h JAWS/Concurrency.h HTTP_10_Request.h \
- HTTPU/http_request.h JAWS/Parse_Headers.h JAWS/Headers.h \
- HTTPU/http_export.h HTTPU/http_base.h HTTPU/http_status.h \
- HTTPU/http_status.i HTTPU/http_headers.h HTTPU/http_headers.i \
- HTTPU/http_base.i HTTPU/parse_http_request.h \
- HTTPU/parse_http_request.i HTTPU/parse_url.h HTTPU/http_request.i
-.obj/HTTP_10_Write.o .obj/HTTP_10_Write.so .shobj/HTTP_10_Write.o .shobj/HTTP_10_Write.so: HTTP_10_Write.cpp $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config-sunos5.6.h \
- $(ACE_ROOT)/ace/config-sunos5.5.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Log_Record.i JAWS/JAWS.h JAWS/IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.i \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp JAWS/Export.h \
- JAWS/IO_Handler.h JAWS/Policy.h JAWS/Concurrency.h \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp HTTP_10.h \
- $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp JAWS/Pipeline_Tasks.h \
- JAWS/Pipeline.h $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp JAWS/Pipeline_Handler.h \
- JAWS/Pipeline_Handler.cpp JAWS/Data_Block.h HTTP_10_Request.h \
- HTTPU/http_request.h JAWS/Parse_Headers.h JAWS/Headers.h \
- HTTPU/http_export.h HTTPU/http_base.h HTTPU/http_status.h \
- HTTPU/http_status.i HTTPU/http_headers.h HTTPU/http_headers.i \
- HTTPU/http_base.i HTTPU/parse_http_request.h \
- HTTPU/parse_http_request.i HTTPU/parse_url.h HTTPU/http_request.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/JAWS/PROTOTYPE/Makefile.bor b/apps/JAWS/PROTOTYPE/Makefile.bor
deleted file mode 100644
index 77f0476e68d..00000000000
--- a/apps/JAWS/PROTOTYPE/Makefile.bor
+++ /dev/null
@@ -1,18 +0,0 @@
-
-NAME = main
-OBJFILES = \
- $(OBJDIR)\main.obj \
- $(OBJDIR)\HTTP_10.obj \
- $(OBJDIR)\HTTP_10_Request.obj \
- $(OBJDIR)\HTTP_10_Read.obj \
- $(OBJDIR)\HTTP_10_Parse.obj \
- $(OBJDIR)\HTTP_10_Write.obj
-
-CFLAGS=-I. -DJAWS_HAS_THREAD_SAFE_ACCEPT
-LIBFILES= \
- .\HTTPU$(LIB_DECORATOR).lib \
- .\JAWS$(LIB_DECORATOR).lib \
- $(ACE_LIB)
-
-!include <$(ACE_ROOT)\apps\build.bor>
-
diff --git a/apps/JAWS/PROTOTYPE/README b/apps/JAWS/PROTOTYPE/README
deleted file mode 100644
index dae52514354..00000000000
--- a/apps/JAWS/PROTOTYPE/README
+++ /dev/null
@@ -1,32 +0,0 @@
-This directory contains the source code to the JAWS framework as
-described in Object-Oriented Application Frameworks, Volume 3.
-
-The subdirectories are as follows
-
- ./JAWS the core JAWS framework source
- ./HTTPU utility classes for HTTP handling
-
-The top level directory contains source to a simple HTTP/0.9 web
-server written using the JAWS framework.
-
-The Makefile uses the ACE Makefile system, so a correctly configured
-ACE should require no changes to get JAWS to compile.
-
-Users of Windows NT can start with the supplied project files, but they
-may require some fiddling with to get it all to compile.
-
-Server command line options:
-
- -t : enable/disable tracing (disabled by default)
- -p PORT : set listen port to PORT (5432 default)
- -c CONCURRENCY : set concurrency strategy, one of PER_REQUEST,
- or POOL (the default).
- -d DISPATCH : set dispatch strategy, one of ASYNCH, or SYNCH (default)
- -n NTHREADS : set number of threads for POOL (5 default)
- -m MAXTHREADS : set maximum number of threads for PER_REQUEST,
- (20 default)
- -f THREADFLAGS : set thread creation flags, recognizes THR_BOUND,
- THR_DAEMON, and THR_DETACHED
- -r RATIO : set asynch tasks per thread ratio (1 default)
-
--- James
diff --git a/apps/JAWS/PROTOTYPE/main.cpp b/apps/JAWS/PROTOTYPE/main.cpp
deleted file mode 100644
index d1bd6f46dcb..00000000000
--- a/apps/JAWS/PROTOTYPE/main.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-// $Id$
-
-#include "JAWS/Server.h"
-#include "HTTP_10.h"
-
-ACE_RCSID(PROTOTYPE, main, "$Id$")
-
-#ifdef ACE_HAS_SIG_C_FUNC
-extern "C"
-{
-#endif /* ACE_HAS_SIG_C_FUNC */
-
-static void
-handler (int)
-{
- ACE_OS::exit (0);
- // call exit() so that static destructors get called
-}
-
-#ifdef ACE_HAS_SIG_C_FUNC
-}
-#endif /* ACE_HAS_SIG_C_FUNC */
-
-static JAWS_HTTP_10_Read_Task HTTP_Read;
-static JAWS_HTTP_10_Parse_Task HTTP_Parse;
-static JAWS_HTTP_10_Write_Task HTTP_Write;
-
-int
-main (int argc, char *argv[])
-{
- ACE_OS::signal (SIGCHLD, SIG_IGN);
-
- // SigAction not needed since the handler will shutdown the server.
- ACE_OS::signal (SIGINT, (ACE_SignalHandler) handler);
- ACE_OS::signal (SIGUSR2, (ACE_SignalHandler) handler);
-
- JAWS_Server server (argc, argv);
-
- HTTP_Read.next (&HTTP_Parse);
- HTTP_Parse.next (&HTTP_Write);
- // HTTP_Write.next (JAWS_Pipeline_Done_Task_Singleton::instance ());
-
- if (server.open (&HTTP_Read) == -1)
- ACE_DEBUG ((LM_DEBUG, "JAWS: Error openning server\n"));
-
- return 0;
-}
diff --git a/apps/JAWS/PROTOTYPE/server.dsp b/apps/JAWS/PROTOTYPE/server.dsp
deleted file mode 100644
index bd12a0205a0..00000000000
--- a/apps/JAWS/PROTOTYPE/server.dsp
+++ /dev/null
@@ -1,118 +0,0 @@
-# Microsoft Developer Studio Project File - Name="server" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=server - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "server.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "server.mak" CFG="server - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "server - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "server - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "server - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D HTTPU_HAS_DLL=1 /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 ace.lib JAWS.lib HTTPU.lib /nologo /subsystem:console /machine:I386 /libpath:"JAWS" /libpath:"HTTPU" /libpath:"..\..\..\ace"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "server - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D HTTPU_HAS_DLL=1 /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib JAWSd.lib HTTPUd.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"JAWS" /libpath:"HTTPU" /libpath:"..\..\..\ace"
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "server - Win32 Release"
-# Name "server - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\HTTP_10.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_10_Parse.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_10_Read.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_10_Request.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_10_Write.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\main.cpp
-
-!IF "$(CFG)" == "server - Win32 Release"
-
-!ELSEIF "$(CFG)" == "server - Win32 Debug"
-
-!ENDIF
-
-# End Source File
-# End Target
-# End Project
diff --git a/apps/JAWS/PROTOTYPE/server.dsw b/apps/JAWS/PROTOTYPE/server.dsw
deleted file mode 100644
index f121fae15c3..00000000000
--- a/apps/JAWS/PROTOTYPE/server.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "server"=.\server.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/apps/JAWS/README b/apps/JAWS/README
deleted file mode 100644
index e67da72afd1..00000000000
--- a/apps/JAWS/README
+++ /dev/null
@@ -1,15 +0,0 @@
-This directory contains the source code and test examples for JAWS,
-which is a high-performance HTTP Web server written with ACE. For
-more information on JAWS, please see
-
-http://www.cs.wustl.edu/~jxh/research/
-
-The subdirectories in this directory contain the following components
-
- . clients -- This contains the source code for various
- client applications that exercise the file uploading and
- downloading features of JAWS
-
- . server -- This contains the source code for the JAWS
- HTTP Web server. It illustrates a number of sophisticated
- ACE concurrency and event demultiplexing strategies.
diff --git a/apps/JAWS/clients/Blobby/Blob.cpp b/apps/JAWS/clients/Blobby/Blob.cpp
deleted file mode 100644
index 067be9c61cb..00000000000
--- a/apps/JAWS/clients/Blobby/Blob.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-// $Id$
-
-#include "Blob.h"
-#include "Blob_Handler.h"
-
-ACE_RCSID(Blobby, Blob, "$Id$")
-
-ACE_Blob::ACE_Blob (void)
-{
-}
-
-ACE_Blob::~ACE_Blob (void)
-{
- this->close ();
-}
-
-// initialize address and filename. No network i/o in open
-
-int
-ACE_Blob::open (char *filename, char *hostname , u_short port)
-{
- filename_ = ACE_OS::strdup(filename);
- inet_addr_.set (port, hostname);
- return 0;
-}
-
-
-// read from connection length bytes from offset, into Message block
-
-int
-ACE_Blob::read (ACE_Message_Block *mb, size_t length, size_t offset)
-{
-
- // Create a Blob Reader
- ACE_Blob_Reader blob_reader (mb, length, offset, filename_);
- ACE_Blob_Handler *brp = &blob_reader;
-
- // Connect to the server
- if (connector_.connect (brp, inet_addr_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Blob::read():Connector error"), -1);
-
- return blob_reader.byte_count ();
-
-}
-
-// write to connection length bytes from offset, into Message block
-
-int
-ACE_Blob::write (ACE_Message_Block *mb, size_t length, size_t offset)
-{
-
- // Create a Blob Writer
- ACE_Blob_Writer blob_writer (mb, length, offset, filename_);
- ACE_Blob_Handler *bwp = &blob_writer;
-
- // Connect to the server
- if (connector_.connect (bwp, inet_addr_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Blob::write():Connector error"), -1);
-
- return blob_writer.byte_count ();
-}
-
-// close down the blob
-
-int
-ACE_Blob::close (void)
-{
-
- if (filename_)
- {
- ACE_OS::free ((void *) filename_);
- filename_ = 0;
- }
- return 0;
-
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Connector<ACE_Blob_Handler, ACE_SOCK_CONNECTOR>;
-template class ACE_Svc_Tuple <ACE_Blob_Handler>;
-template class ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *>;
-template class ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *, ACE_SYNCH_RW_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Connector<ACE_Blob_Handler, ACE_SOCK_CONNECTOR>
-#pragma instantiate ACE_Svc_Tuple <ACE_Blob_Handler>
-#pragma instantiate ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *>
-#pragma instantiate ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *, ACE_SYNCH_RW_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/clients/Blobby/Blob.h b/apps/JAWS/clients/Blobby/Blob.h
deleted file mode 100644
index 293e530e696..00000000000
--- a/apps/JAWS/clients/Blobby/Blob.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-//============================================================================
-//
-// = LIBRARY
-// JAWS
-//
-// = FILENAME
-// Blob.h
-//
-// = DESCRIPTION
-// This is the ACE_Blob class, which is the API for doing file
-// uploads/downloads.
-//
-// = AUTHOR
-// Prashant Jain and Sumedh Mungee
-//
-//============================================================================
-
-#ifndef ACE_BLOB_H
-#define ACE_BLOB_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Connector.h"
-#include "ace/INET_Addr.h"
-#include "ace/Svc_Handler.h"
-#include "ace/SOCK_Connector.h"
-#include "ace/Message_Block.h"
-#include "Blob_Handler.h"
-
-class ACE_Blob
- // = TITLE
- // Blob is intended to provide application API to
- // classes that wish to do network i/o at a very
- // high level of abstraction.
- //
- // = This class provides the ability to retrieve data from
- // the network, of specified length and offset, and potentially
- // use any protocol "under the hood" to do so. It currently
- // uses HTTP. See Blob_Handler also.
-{
-public:
- ACE_Blob (void);
- ~ACE_Blob (void);
-
- int open (char *filename,
- char *hostname = ACE_DEFAULT_SERVER_HOST ,
- u_short port = 80);
- // initializes the class with the given filename, hostname and port.
- // it should be called with the filename, before any read/write calls
-
-
- int read (ACE_Message_Block *mb, size_t length, size_t offset);
- // starts a connection, and reads a file from the server,
- // of length and offset as specified, into Message_Block mb
- // The message block should have capacity to hold length number
- // of bytes
-
- int write (ACE_Message_Block *mb, size_t length, size_t offset);
- // starts a connection, and writes a file to the server,
- // of length and offset as specified, from Message_Block mb
- // thus the message block should contain atleast length + offset
- // bytes of data
-
-
- int close ();
- // Frees memory allocated for filename.
-
-private:
- ACE_INET_Addr inet_addr_;
- // store the internet address of the server
-
- char *filename_;
- // The filename
-
- ACE_Connector<ACE_Blob_Handler, ACE_SOCK_CONNECTOR> connector_;
- // The connector endpoint to initiate the client connection
-
-};
-
-#endif /* ACE_BLOB_H */
diff --git a/apps/JAWS/clients/Blobby/Blob_Handler.cpp b/apps/JAWS/clients/Blobby/Blob_Handler.cpp
deleted file mode 100644
index eb7d81fd0ca..00000000000
--- a/apps/JAWS/clients/Blobby/Blob_Handler.cpp
+++ /dev/null
@@ -1,343 +0,0 @@
-// $Id$
-
-#include "Blob_Handler.h"
-
-ACE_RCSID(Blobby, Blob_Handler, "$Id$")
-
-// Empty constructor for compliance with new Connector behavior.
-ACE_Blob_Handler::ACE_Blob_Handler (void)
-{
-}
-
-// Always use this constructor
-ACE_Blob_Handler::ACE_Blob_Handler (ACE_Message_Block * mb,
- size_t length,
- size_t offset,
- char *filename) :
- mb_ (mb),
- length_ (length),
- offset_ (offset),
- filename_ (ACE_OS::strdup (filename)),
- bytecount_ (0)
-{
-}
-
-ACE_Blob_Handler::~ACE_Blob_Handler (void)
-{
- if (filename_)
- {
- ACE_OS::free ((void *) filename_);
- filename_ = 0;
- }
-}
-
-// Called by Connector after connection is established
-int
-ACE_Blob_Handler::open (void *)
-{
- if (this->send_request () != 0)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Blob_Handler::open():send_request failed"), -1);
-
- if (this->receive_reply () != 0)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Blob_Handler::open():receive_reply failed"), -1);
- return 0;
-
-}
-
-// No-op
-int
-ACE_Blob_Handler::close (u_long flags)
-{
- ACE_UNUSED_ARG (flags);
- return 0;
-}
-
-
-// Always overridden by the derived classes
-int
-ACE_Blob_Handler::send_request (void)
-{
- return -1;
-}
-
-// Always overridden by the derived classes
-int
-ACE_Blob_Handler::receive_reply (void)
-{
- return -1;
-}
-
-// used to retrieve the number of bytes read/written by the
-// last operation on the Blob
-int
-ACE_Blob_Handler::byte_count (void)
-{
- return bytecount_;
-}
-
-// Reader **************************************************
-
-ACE_Blob_Reader::ACE_Blob_Reader (ACE_Message_Block * mb,
- size_t length,
- size_t offset,
- char *filename,
- char *request_prefix,
- char *request_suffix) :
- ACE_Blob_Handler (mb, length, offset, filename),
- request_prefix_ (request_prefix),
- request_suffix_ (request_suffix)
-{
-}
-
-// Send the HTTP request
-int
-ACE_Blob_Reader::send_request (void)
-{
- char mesg [MAX_HEADER_SIZE];
-
- // Check to see if the request is too big
- if ( MAX_HEADER_SIZE < (strlen (request_prefix_) + strlen (filename_) + strlen (request_suffix_) + 4))
- ACE_ERROR_RETURN((LM_ERROR,"Request too large!"), -1);
-
- // Create a message to send to the server requesting retrieval of the file
- int len = ACE_OS::sprintf (mesg, "%s %s %s", request_prefix_, filename_, request_suffix_);
-
- // Send the message to server
- if (peer ().send_n (mesg, len) != len)
- ACE_ERROR_RETURN((LM_ERROR,"Error sending request"), -1);
-
-
- return 0;
-}
-
-// Recieve the HTTP Reply
-int
-ACE_Blob_Reader::receive_reply (void)
-{
- ssize_t len;
- char buf [MAX_HEADER_SIZE + 1];
- char *buf_ptr;
- int bytes_read = 0;
- int bytes_left = length_;
- int offset_left = offset_;
-
- // Receive the first MAX_HEADER_SIZE bytes to be able to strip off the
- // header. Note that we assume that the header will fit into the
- // first MAX_HEADER_SIZE bytes of the transmitted data.
- if ((len = peer ().recv_n (buf, MAX_HEADER_SIZE)) >= 0)
- {
- buf[len] = '\0';
-
- // Search for the header termination string "\r\n\r\n", or "\n\n". If
- // found, move past it to get to the data portion.
- if ((buf_ptr = ACE_OS::strstr (buf,"\r\n\r\n")) != 0)
- buf_ptr += 4;
- else if ((buf_ptr = ACE_OS::strstr (buf, "\n\n")) != 0)
- buf_ptr += 2;
- else
- buf_ptr = buf;
-
- // Determine number of data bytes read. This is equal to the
- // total butes read minus number of header bytes.
- bytes_read = (buf + len) - buf_ptr;
- }
- else
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Blob_Reader::receiveReply():Error while reading header"), -1);
-
- // ***************************************************************
- // At this point, we have stripped off the header and are ready to
- // process data. buf_ptr points to the data
-
- // First adjust for offset. There are two cases:
- // (1) The first block of data encountered the offset. In this case
- // we simply increment the buf_ptr by offset.
- // (2) The first block of data did not encounter the offset. That
- // is, the offset needs to go past the number of data bytes already read.
- if (bytes_read > offset_left)
- {
- // The first case is true -- that is offset is less than the
- // data bytes we just read.
- buf_ptr += offset_left;
-
- // Determine how many data bytes are actually there. This is
- // basically the total number of data bytes we read minus any
- // offset we have.
- int data_bytes = bytes_read - offset_left;
-
- // Check for the case where the bytes read are enough to fulfill
- // our request (for length bytes). If this is the case, then we
- // don't need to do any extra recvs and can simply return with
- // the data.
- if (data_bytes >= bytes_left)
- {
- // The first block contains enough data to satisfy the
- // length. So copy the data into the message buffer.
- if (mb_->copy (buf_ptr, bytes_left) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n",
- "ACE Blob_Reader::receiveReply():Error copying data into Message_Block"), -1);
- bytecount_ = length_;
- return 0;
- }
-
- // Copy over all the data bytes into our message buffer.
- if (mb_->copy (buf_ptr, data_bytes) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n",
- "ACE_Blob_Reader::receiveReply():Error copying data into Message_Block" ), -1);
-
- // Adjust bytes left
- bytes_left -= data_bytes;
-
- // No more offset left. So set it to zero.
- offset_left = 0;
- }
- else
- {
- // The second case is true -- that is offset is greater than
- // the data bytes we just read.
- offset_left -= bytes_read;
- }
-
- // If we had any offset left, take care of that.
- while (offset_left > 0)
- {
- // MAX_HEADER_SIZE in which case we should do a receive of
- // offset bytes into a temporary buffer. Otherwise, we should
- // receive MAX_HEADER_SIZE bytes into temporary buffer and
- // decrement offset_left.
- if (offset_left < (int) (sizeof buf))
- len = offset_left;
- else
- len = sizeof buf;
- if (peer().recv_n (buf, len) != len)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n",
- "ACE_Blob_Reader::receiveReply():Read error" ),
- -1);
- offset_left -= len;
- }
-
- // *****************************************************************
- // At this point we are all set to receive the actual data which the
- // user wants. We have made adjustments for offset and are ready to
- // receive the actual data. Receive the data directly into the
- // message buffer.
-
- len = peer().recv_n (mb_->wr_ptr (), bytes_left);
-
- if (len != bytes_left)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n",
- "ACE_Blob_Reader::receiveReply():Read error" ), -1);
-
- // Adjust the message buffer write pointer by number of bytes we
- // received.
- mb_->wr_ptr (len);
-
- // Set the byte count to number of bytes received
- this->bytecount_ = length_;
-
- return 0;
-}
-
-// Writer **************************************************
-
-ACE_Blob_Writer::ACE_Blob_Writer (ACE_Message_Block * mb,
- size_t length,
- size_t offset,
- char *filename,
- char *request_prefix,
- char *request_suffix) :
- ACE_Blob_Handler (mb, length, offset, filename),
- request_prefix_ (request_prefix),
- request_suffix_ (request_suffix)
-{
-}
-
-int
-ACE_Blob_Writer::send_request (void)
-{
- // Check for sanity -- check if we have any data to send.
- if (offset_+ length_ > mb_->length ())
- ACE_ERROR_RETURN((LM_ERROR, "%p\n",
- "ACE_Blob_Writer::sendRequest():Invalid offset/length"), -1);
-
- // Determine the length of the header message we will be sending to
- // the server. Note that we add 32 for safety -- this corresponds to
- // the number of bytes needed for the length field.
- u_short mesglen =
- ACE_OS::strlen (request_prefix_)
- + ACE_OS::strlen (filename_)
- + ACE_OS::strlen (request_suffix_)
- + 32; // safety
-
- // Allocate a buffer to hold the header
- char *mesg;
- ACE_NEW_RETURN (mesg, char [mesglen], -1);
-
- // Create the header, store the actual length in mesglen
- mesglen = ACE_OS::sprintf (mesg, "%s /%s %s %d\n\n",
- request_prefix_, filename_, request_suffix_, length_);
-
- // Send the header followed by the data
-
- // First send the header
- if (peer ().send_n (mesg, mesglen) == -1)
- ACE_ERROR_RETURN((LM_ERROR, "%p\n", "Error sending request"), -1);
-
- // "Consume" the offset by moving the read pointer of the message
- // buffer
- mb_->rd_ptr (offset_);
-
- // Now send the data
- if (peer ().send_n (mb_->rd_ptr (), length_) != (int)length_)
- ACE_ERROR_RETURN((LM_ERROR, "%p\n", "Error sending file"), -1);
-
- // Adjust the read pointer of the mesage buffer
- mb_->rd_ptr (length_);
-
- return 0;
-}
-
-int
-ACE_Blob_Writer::receive_reply (void)
-{
- // Allocate a buffer big enough to hold the header
- char buf[MAX_HEADER_SIZE];
-
- // Receive the reply from the server
- ssize_t len = peer ().recv_n (buf, sizeof buf - 1); // reserve one byte to store the \0
- if (len ==-1)
- ACE_ERROR_RETURN((LM_ERROR, "%p\n", "Error reading header"), -1);
-
- buf [len] = 0;
-
- // Parse the header
- char *lasts;
-
- // First check if this was a valid header -- HTTP/1.0
- char *token = ACE_OS::strtok_r (buf, " \t", &lasts);
-
- if ( (token == 0) || (ACE_OS::strcasecmp (token, "HTTP/1.0") != 0))
- ACE_ERROR_RETURN((LM_ERROR, "%p\n", "Did not receive a HTTP/1.0 response"), -1);
-
- // Get the return code.
- int return_code = ACE_OS::atoi (ACE_OS::strtok_r (0, " \t", &lasts));
-
- // Check if the transaction succeeded. The only success codes are in
- // the range of 200-299 (HTTP specification).
- if (return_code >= 200 && return_code < 300)
- return 0;
- else
- {
- // Something went wrong!
- // Get the description from the header message of what went wrong.
- char *description = ACE_OS::strtok_r (0, "\n\r", &lasts);
- ACE_ERROR_RETURN((LM_ERROR, "%p\n", description), -1);
- }
- ACE_NOTREACHED(return 0);
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
diff --git a/apps/JAWS/clients/Blobby/Blob_Handler.h b/apps/JAWS/clients/Blobby/Blob_Handler.h
deleted file mode 100644
index a55e0b68ee2..00000000000
--- a/apps/JAWS/clients/Blobby/Blob_Handler.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-//============================================================================
-//
-// = LIBRARY
-// JAWS
-//
-// = FILENAME
-// Blob.h
-//
-// = DESCRIPTION
-// ACE_Blob_Handler is a base class for ACE_Blob_Reader and
-// ACE_Blob_Writer which are created in response to calls to
-// read/write, as appropriate
-//
-// = AUTHOR
-// Prashant Jain and Sumedh Mungee
-//
-//============================================================================
-
-#ifndef ACE_BLOB_HANDLER_H
-#define ACE_BLOB_HANDLER_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Stream.h"
-#include "ace/Svc_Handler.h"
-#include "ace/Message_Block.h"
-
-class ACE_Blob_Handler : public ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH>
- // = TITLE
- // Blob is intended to provide application API to
- // classes that wish to do network i/o at a very
- // high level of abstraction.
- //
- // = This class provides the ability to retrieve data from
- // the network, of specified length and offset, and potentially
- // use any protocol "under the hood" to do so. It currently
- // uses HTTP. See Blob_Handler also.
-{
-public:
- ACE_Blob_Handler (void);
- // Null constructor, insures that it works properly with Connector
-
- ACE_Blob_Handler (ACE_Message_Block *mb, size_t length, size_t offset, char *filename);
- // Always use this constructor to make Blob_Handlers
-
- int byte_count (void);
- // returns the number of bytes read/written in the last operation.
-
- virtual int open (void * = 0);
- // Activate this instance of the <ACE_Blob_Handler>
-
- virtual int close (u_long flags = 0);
- // Close down the Blob
-
- ~ACE_Blob_Handler (void);
-
-protected:
- virtual int send_request (void);
- virtual int receive_reply (void);
-
- ACE_Message_Block *mb_;
- size_t length_;
- size_t offset_;
- char *filename_;
- int bytecount_;
- enum
- {
- MAX_HEADER_SIZE = 2048
- // The handler assumes that the first 2048 bytes of a server response
- // contains the header
- };
-};
-
-class ACE_Blob_Reader : public ACE_Blob_Handler
-{
-public:
- ACE_Blob_Reader (ACE_Message_Block *mb,
- size_t length,
- size_t offset,
- char *filename,
- char *request_prefix = "GET",
- char *request_suffix = "HTTP/1.0\r\n\r\n");
-
-private:
- int send_request (void);
- int receive_reply (void);
- const char *request_prefix_;
- const char *request_suffix_;
-};
-
-class ACE_Blob_Writer : public ACE_Blob_Handler
-{
-public:
- ACE_Blob_Writer (ACE_Message_Block *mb,
- size_t length,
- size_t offset,
- char *filename,
- char *request_prefix = "PUT",
- char *request_suffix = "HTTP/1.0\nContent-length:");
-
-private:
- int send_request (void);
- int receive_reply (void);
- const char *request_prefix_;
- const char *request_suffix_;
-};
-
-#endif /* ACE_BLOB_HANDLER_H */
diff --git a/apps/JAWS/clients/Blobby/Makefile b/apps/JAWS/clients/Blobby/Makefile
deleted file mode 100644
index 0263b3c115e..00000000000
--- a/apps/JAWS/clients/Blobby/Makefile
+++ /dev/null
@@ -1,483 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE Adapter Web Server (JAWS) client
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = blobby
-
-FILES = Blob \
- Blob_Handler \
- Options
-
-SRC = $(addsuffix .cpp,$(FILES))
-OBJ = $(addsuffix .o,$(FILES))
-
-BUILD = $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/Blob.o .obj/Blob.so .shobj/Blob.o .shobj/Blob.so: Blob.cpp Blob.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/Connector.cpp \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- Blob_Handler.h
-.obj/Blob_Handler.o .obj/Blob_Handler.so .shobj/Blob_Handler.o .shobj/Blob_Handler.so: Blob_Handler.cpp Blob_Handler.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Dynamic.i
-.obj/Options.o .obj/Options.so .shobj/Options.o .shobj/Options.so: Options.cpp \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Get_Opt.i \
- $(ACE_ROOT)/ace/ARGV.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/ARGV.i \
- Blob.h \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/Connector.cpp \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- Blob_Handler.h Options.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/JAWS/clients/Blobby/Makefile.bor b/apps/JAWS/clients/Blobby/Makefile.bor
deleted file mode 100644
index 881de0e493e..00000000000
--- a/apps/JAWS/clients/Blobby/Makefile.bor
+++ /dev/null
@@ -1,10 +0,0 @@
-
-NAME = blobby
-OBJFILES = \
- $(OBJDIR)\Blob.obj \
- $(OBJDIR)\Blob_Handler.obj \
- $(OBJDIR)\Options.obj \
- $(OBJDIR)\blobby.obj
-
-!include <$(ACE_ROOT)\apps\build.bor>
-
diff --git a/apps/JAWS/clients/Blobby/Options.cpp b/apps/JAWS/clients/Blobby/Options.cpp
deleted file mode 100644
index 801441ed52a..00000000000
--- a/apps/JAWS/clients/Blobby/Options.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-// $Id$
-
-#include "ace/Get_Opt.h"
-#include "ace/ARGV.h"
-#include "Blob.h"
-#include "Blob_Handler.h"
-#include "Options.h"
-
-ACE_RCSID(Blobby, Options, "$Id$")
-
-Options *Options::instance_ = 0;
-
-Options *
-Options::instance (void)
-{
-
- if (Options::instance_ == 0)
- Options::instance_ = new Options;
-
- return Options::instance_;
-}
-
-void
-Options::parse_args (int argc, char *argv[])
-{
- ACE_Get_Opt get_opt (argc, argv, "rwh:p:f:l:o:d");
-
- int c;
-
- while ((c = get_opt ()) != -1)
- switch (c)
- {
- case 'd':
- this->debug_ = 1;
- break;
- case 'r':
- this->operation_ = 'r';
- break;
- case 'w':
- this->operation_ = 'w';
- break;
- case 'h':
- this->hostname_ = get_opt.optarg;
- break;
- case 'p':
- this->port_ = ACE_OS::atoi (get_opt.optarg);
- break;
- case 'f':
- this->filename_ = get_opt.optarg;
- break;
- case 'l':
- this->length_ = ACE_OS::atoi (get_opt.optarg);
- break;
- case 'o':
- this->offset_ = ACE_OS::atoi (get_opt.optarg);
- break;
- // Usage fallthrough.
- default:
- ACE_DEBUG ((LM_DEBUG, "%s -h hostname -f filename -[r/w] [-p port] [-l length] [-o offset] [-d]\n", argv[0]));
- ACE_OS::exit (1);
- }
- if (this->hostname_ == 0 || this->filename_ == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "%s -h hostname -f filename -[r/w] [-p port] [-l length] [-o offset] [-d]\n",
- argv[0]));
- ACE_OS::exit (1);
- }
-
-}
-
-Options::Options (void)
- : hostname_ (0),
- port_ (ACE_DEFAULT_HTTP_SERVER_PORT),
- filename_ (0),
- length_ (0),
- offset_ (0),
- operation_ ('r'),
- debug_ (0)
-{
-}
diff --git a/apps/JAWS/clients/Blobby/Options.h b/apps/JAWS/clients/Blobby/Options.h
deleted file mode 100644
index 5fe61c55cfa..00000000000
--- a/apps/JAWS/clients/Blobby/Options.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-//============================================================================
-//
-// = LIBRARY
-// JAWS
-//
-// = FILENAME
-// Options.h
-//
-// = DESCRIPTION
-// Options is an Singleton for blobby
-//
-// = AUTHOR
-// Prashant Jain and Sumedh Mungee
-//
-//============================================================================
-
-#ifndef ACE_BLOBBY_OPTIONS_H
-#define ACE_BLOBBY_OPTIONS_H
-
-#include "Blob.h"
-#include "Blob_Handler.h"
-#include "ace/Get_Opt.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/ARGV.h"
-
-class Options
-{
-public:
- static Options *instance (void);
- // Returns the singleton instance
-
- void parse_args (int argc, char *argv[]);
- // parses commandline arguments
-
- char *hostname_;
- // Hostname to connect to
-
- u_short port_;
- // Port number to use
-
- char *filename_;
- // Filename to upload/download
-
- int length_;
- // number of bytes to read/write
-
- int offset_;
- // offset to read/write
-
- char operation_;
- // "r" means download (read), and "w" means upload (write).
-
- int debug_;
- // turns on verbosity
-
-protected:
- Options (void);
- // protected constructor, singleton
-
- static Options *instance_;
- // the singleton
-};
-
-#endif /* ACE_BLOBBY_OPTIONS_H */
diff --git a/apps/JAWS/clients/Blobby/README b/apps/JAWS/clients/Blobby/README
deleted file mode 100644
index 1a1cadf91ca..00000000000
--- a/apps/JAWS/clients/Blobby/README
+++ /dev/null
@@ -1,33 +0,0 @@
-README for blobby, the example application for JAWS
----------------------------------------------------
-
-Blobby is a simple application written using the ACE_Blob class, which
-is capable of doing both file uploads and downloads from the JAWS
-server.
-
-If a file is downloaded, the downloaded data is sent to standard
-output, so that it can be piped as necessary.
-
-It is an ACE application, and should be compiled exactly like any
-other ACE application.
-
-It accepts the following command line arguments:
-
-
- -r Read (download) the file from the server
- -w Write (upload) the file to the server
- (Default is Read file)
-
- -h hostname Use the server running on hostname
- (Default is localhost)
-
- -p port Port number of the server
- (Default is 80)
-
- -f filename The file to upload/download from the server
-
- -l length The number of bytes to read/write from the server
- -o offset The offset into the file to be read/written
-
- -d Puts blobby into debug mode, where it echoes
- its command line arguments
diff --git a/apps/JAWS/clients/Blobby/blobby.cpp b/apps/JAWS/clients/Blobby/blobby.cpp
deleted file mode 100644
index 21ea46780b6..00000000000
--- a/apps/JAWS/clients/Blobby/blobby.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-// $Id$
-
-//============================================================================
-//
-// = LIBRARY
-// JAWS
-//
-// = FILENAME
-// blobby.c
-//
-// = DESCRIPTION
-// Simple client application to illustrate the use of the ACE_Blob class
-//
-// It reads "length" number of bytes, after skipping offset "offset"
-// from hostname, port and filename as specified. (if -r specified)
-//
-// It writes "length" number of bytes, after skipping offset "offset"
-// to hostname, port and filename as specified (if -w specified)
-//
-// = AUTHOR
-// Prashant Jain and Sumedh Mungee
-//
-//============================================================================
-
-#include "Options.h"
-
-ACE_RCSID(Blobby, blobby, "$Id$")
-
-int
-main (int argc, char *argv[])
-{
- // Options is a singleton
- Options *options = Options::instance ();
- options->parse_args (argc, argv);
-
- // Explain what is going to happen
- if (options->debug_)
- ACE_DEBUG ((LM_DEBUG,
- "hostname = %s, port = %d, filename = %s, length = %d, offset = %d, operation = %c\n",
- options->hostname_,
- options->port_,
- options->filename_,
- options->length_,
- options->offset_,
- options->operation_));
-
- // Create a blob
- ACE_Blob blob;
-
- // User requested a read
- if (options->operation_ == 'r')
- {
- ACE_Message_Block mb (0, options->length_);
-
- // Open the blob
- if (blob.open (options->filename_, options->hostname_, options->port_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open error"), -1);
-
- // Read from it
- if (blob.read (&mb, options->length_, options->offset_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "read error"), -1);
-
- // Write to STDOUT
- if (ACE_OS::write (ACE_STDOUT, mb.rd_ptr(), mb.length()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "write error"), -1);
- }
- else
- {
- int total = options->length_ + options->offset_;
- ACE_Message_Block mb (total);
-
- // Open the file to be sent
- ACE_HANDLE h = ACE_OS::open (options->filename_, O_RDONLY);
- if (h == ACE_INVALID_HANDLE)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "file open error"), -1);
-
- // Open the blob
- if (blob.open (options->filename_, options->hostname_, options->port_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "connection open error"), -1);
-
- // Read from the file
- if (ACE_OS::read (h, mb.wr_ptr (), total) != total)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "file read error"), -1);
-
- // Close the file
- ACE_OS::close (h);
-
- // Adjust the offset
- mb.wr_ptr (mb.size ());
-
- // Write to the blob
- if (blob.write (&mb, options->length_, options->offset_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "network write error"), -1);
- }
-
- blob.close ();
- return 0;
-}
diff --git a/apps/JAWS/clients/Caching/Caching.dsp b/apps/JAWS/clients/Caching/Caching.dsp
deleted file mode 100644
index 3bbc59cca79..00000000000
--- a/apps/JAWS/clients/Caching/Caching.dsp
+++ /dev/null
@@ -1,111 +0,0 @@
-# Microsoft Developer Studio Project File - Name="http_client" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=http_client - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "Caching.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Caching.mak" CFG="http_client - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "http_client - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "http_client - Win32 Debug" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "http_client - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\http_client\Release"
-# PROP BASE Intermediate_Dir ".\http_client\Release"
-# PROP BASE Target_Dir ".\http_client"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ".\http_client"
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "http_client - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\http_client\Debug"
-# PROP BASE Intermediate_Dir ".\http_client\Debug"
-# PROP BASE Target_Dir ".\http_client"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ".\http_client"
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "http_client - Win32 Release"
-# Name "http_client - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\http_client.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\http_handler.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# Begin Source File
-
-SOURCE=.\http_handler.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/apps/JAWS/clients/Caching/Caching.dsw b/apps/JAWS/clients/Caching/Caching.dsw
deleted file mode 100644
index b1fb6547d22..00000000000
--- a/apps/JAWS/clients/Caching/Caching.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "http_client"=.\Caching.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/apps/JAWS/clients/Caching/ID_Generator.cpp b/apps/JAWS/clients/Caching/ID_Generator.cpp
deleted file mode 100644
index 6e868611835..00000000000
--- a/apps/JAWS/clients/Caching/ID_Generator.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-// $Id$
-
-#if !defined (ACE_ID_GENERATOR_C)
-#define ACE_ID_GENERATOR_C
-
-#include "ace/Object_Manager.h"
-#include "ID_Generator.h"
-
-ACE_RCSID(Caching, ID_Generator, "$Id$")
-
-time_t ACE_ID_Generator::last_time_ = 0;
-
-size_t ACE_ID_Generator::last_number_ = 0;
-
-ACE_SYNCH_MUTEX *ACE_ID_Generator::lock_ = 0;
-
-char *
-ACE_ID_Generator::get_new_id (char *id)
-{
- time_t t;
- size_t sn;
-
- ACE_ID_Generator::get_serial_id (t, sn);
- ACE_NEW_RETURN (id, char [ACE_OFFER_ID_LENGTH], 0);
-
- ACE_OS::sprintf (id, "%014d%06d", t, sn);
- return id;
-}
-
-void
-ACE_ID_Generator::get_serial_id (time_t &t, size_t &s)
-{
- ACE_MT (ACE_GUARD (ACE_SYNCH_MUTEX, ace_mon, *ACE_ID_Generator::get_lock ()));
- ACE_OS::time (&t);
-
- if (t != ACE_ID_Generator::last_time_)
- {
- ACE_ID_Generator::last_time_ = t;
- s = ACE_ID_Generator::last_number_ = 0;
- }
- else
- s = ACE_ID_Generator::last_number_++;
-}
-
-ACE_SYNCH_MUTEX *
-ACE_ID_Generator::get_lock (void)
-{
-#if defined (ACE_HAS_THREADS)
- if (ACE_ID_Generator::lock_ == 0)
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, *ACE_Static_Object_Lock::instance (), 0));
-
- // Double-checked Locking Optimization.
- if (ACE_ID_Generator::lock_ == 0)
- ACE_NEW_RETURN (ACE_ID_Generator::lock_, ACE_SYNCH_MUTEX, 0);
- }
-#endif /* ACE_HAS_THREADS */
- return ACE_ID_Generator::lock_;
-}
-
-#endif /* ACE_ID_GENERATOR_C */
diff --git a/apps/JAWS/clients/Caching/ID_Generator.h b/apps/JAWS/clients/Caching/ID_Generator.h
deleted file mode 100644
index 3c02779f36e..00000000000
--- a/apps/JAWS/clients/Caching/ID_Generator.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// ID_Generator.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
-
-#ifndef ACE_ID_GENERATOR_H
-#define ACE_ID_GENERATOR_h
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#define ACE_OFFER_ID_LENGTH 21
-
-class ACE_ID_Generator
- // = TITLE
- // An unique ID generator.
- //
- // = DESCRIPTION
-
- // Generate an offer ID according to current time and avoid
- // duplicate ID. It guarantees ID uniqueness within a process,
- // i.e. no two threads may get the same ID string. Using a
- // similar method like the backery algorithm.
-{
-public:
- static char *get_new_id (char *id);
- // allocate a new ID string and point <id> to it.
-
-private:
- static void get_serial_id (time_t &t, size_t &s);
- // Atomically get info required to generate an offer ID.
-
- static ACE_SYNCH_MUTEX *get_lock (void);
- // Get the lock instance.
-
- static time_t last_time_;
- // Record the time last offer ID generated.
-
- static size_t last_number_;
- // Record serial number of last offer ID with same
- // generation time.
-
- static ACE_SYNCH_MUTEX *lock_;
- // mutex to access private member.
-};
-
-#endif /* ACE_ID_GENERATOR_H */
diff --git a/apps/JAWS/clients/Caching/Local_Locator.cpp b/apps/JAWS/clients/Caching/Local_Locator.cpp
deleted file mode 100644
index 5c084bd783a..00000000000
--- a/apps/JAWS/clients/Caching/Local_Locator.cpp
+++ /dev/null
@@ -1,257 +0,0 @@
-// $Id$
-
-#if !defined (ACE_LOCAL_LOCATOR_C)
-#define ACE_LOCAL_LOCATOR_C
-
-#include "Local_Locator.h"
-
-#if !defined (__ACE_INLINE__)
-#include "Local_Locator.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(Caching, Local_Locator, "$Id$")
-
-int
-ACE_URL_Local_Locator::url_query (const ACE_URL_Locator::ACE_Selection_Criteria how,
- const ACE_URL_Property_Seq *pseq,
- const size_t how_many,
- size_t &num_query,
- ACE_URL_Offer_Seq *offer)
-{
- ACE_URL_Record *item = 0;
-
- ACE_NEW_RETURN (offer, ACE_URL_Offer_Seq (how_many), -1);
-
- if (how >= ACE_URL_Locator::INVALID_SELECTION)
- {
- errno = ACE_URL_Locator::INVALID_ARGUMENT;
- return -1;
- }
-
- num_query = 0;
- for (ACE_Unbounded_Set_Iterator<ACE_URL_Record> iter (this->repository_);
- iter.next (item) != 0;
- iter.advance ())
- {
- size_t i_query;
- size_t i_db;
- int found = 0;
-
- // Now this is a stupid implementation. Perhaps we can
- // implement this using Hash_Map. Better yet, I think we should
- // put this in a database and put SQL query here.
- for (i_query = 0; found == 0 && i_query < pseq->size (); i_query++)
- for (i_db = 0; i_db < item->offer_->url_properties ().size (); i_db++)
- {
- if ((*pseq)[i_query].name () == item->offer_->url_properties ()[i_db].name ())
- if (how == ACE_URL_Locator::SOME)
- ;
-
- // if match and Some, copy to <offer>, inc <num_query>, advance iterator
-
- // else if All, advance iterator
-
- // else if None, check next property in <pseq>.
-
- if (all properties checked and found and ALL)
- copy to <offer>; inc <num_query>;
- else if (all properties checked and not found and NONE)
- copy to <offer>; inc <num_query>;
- else
- shouldn't happen, internal error
-
- if (num_query == how_many)
- break;
- }
-
- return 0;
-}
-
-int
-ACE_URL_Local_Locator::export_offer (ACE_URL_Offer *offer,
- ACE_WString &offer_id)
-{
- ACE_URL_Record *item = 0;
-
- // First check if we have registered this URL already.
- for (ACE_Unbounded_Set_Iterator<ACE_URL_Record> iter (this->repository_);
- iter.next (item) != 0;
- iter.advance ())
- if (*item->offer_->url () == *offer->url ())
- {
- errno = ACE_URL_Locator::OFFER_EXIST;
- return -1;
- }
-
- ACE_URL_Record *new_offer;
-
- // Offer is not in repository, we can add new one in safely.
- ACE_NEW_RETURN (new_offer, ACE_URL_Record (offer),
- ACE_URL_Locator::NOMEM);
-
- this->repository_.push (*new_offer);
-
- offer_id = *new_offer->id_;
- return 0;
-}
-
-int
-ACE_URL_Local_Locator::withdraw_offer (const ACE_WString &offer_id)
-{
- ACE_URL_Record *item = 0;
-
- // Iterate thru repository and remove offer with <offer_id>.
- for (ACE_Unbounded_Set_Iterator<ACE_URL_Record> iter (this->repository_);
- iter.next (item) != 0;
- iter.advance ())
- if (offer_id == *item->id_)
- {
- if (this->repository_.remove (*item) == 0)
- return 0
- else
- {
- errno = ACE_URL_Locator::UNKNOWN;
- return -1;
- }
- }
-
- errno = ACE_URL_Locator::NO_SUCH_OFFER;
- return 0;
-}
-
-int
-ACE_URL_Local_Locator::describe_offer (const ACE_WString &offer_id,
- ACE_URL_Offer *offer)
-{
- ACE_URL_Record *item = 0;
-
- // Iterate thru the repository and produce a copy of offer's
- // description.
- for (ACE_Unbounded_Set_Iterator<ACE_URL_Record> iter (this->repository_);
- iter.next (item) != 0;
- iter.advance ())
- if (offer_id == *item->id_)
- {
- ACE_NEW_RETURN (offer, ACE_URL_Offer (*item->offer_), -1);
- return 0;
- }
-
- errno = ACE_URL_Locator::NO_SUCH_OFFER;
- return -1;
-}
-
-int
-ACE_URL_Local_Locator::modify_offer (const ACE_WString &offer_id,
- const ACE_WString *url,
- const ACE_URL_Property_Seq *del,
- const ACE_URL_Property_Seq *modify)
-{
- ACE_Unbounded_Set_Iterator<ACE_URL_Record> iter (this->repository_);
- ACE_URL_Record *item = 0;
- ACE_URL_Record *target = 0;
-
- // Errno Checking
-
- for (; iter.next (item) != 0; iter.advance ())
- {
- if (url != 0 && *url == item->offer_->url ())
- {
- errno = ACE_URL_Locator::OFFER_EXIST;
- return -1;
- }
- if (offer_id == *item->id_)
- target = item;
- }
-
- if (target != 0) // Aha, we found a target to work on
- {
- if (del != 0 && modify != 0)
- {
- // We need to make a copy of the original property sequence
- // so if any error occurs, we can revert our change easily.
-
- // First we need to calculate the maximum number of perperties.
- int psize = target->offer_->url_properties ().size ();
- if (del != 0)
- if ((psize -= del->size ()) < 0)
- {
- // If you try to delete more properties than we have,
- // you are doomed. No need to proceed.
- errno = ACE_URL_Locator::INVALID_ARGUMENT;
- return -1;
- }
- if (modify != 0)
- // In the worst case, all properties in <modify> will be added.
- psize += modify->size ();
-
- // Now, create a temporary work space.
- ACE_URL_Property_Seq working (psize);
- size_t sz = 0;
- for (; sz < item->offer_->url_properties ().size ())
- working[sz] = item->offer_->url_properties() [sz];
-
- if (del != 0)
- {
- // Argh, this is really a stupid design.
- // Go thru every property we want to delete
- for (size_t i = 0; i < del->size () && sz > 0; i++)
- // For earch, go thru our property sequence and
- // search for the property.
- for (size_t j = 0; j < sz; j++)
- if ((*del)[i].name () == working[j].name ())
- {
- sz -= 1;
- working[j] = working[sz]; // pack the array.
- break;
- }
- // Doesn't generate error when we want to delete an
- // imaginary property. Is this appropriate?
- }
-
- if (modify != 0)
- {
- // This is also stupid.
- // Go thru every property we want to modify/add
- for (size_t i = 0; i < modify->size () && sz > 0; i++)
- {
- // For each property, go thru our property list
- // and search for the matching property
- for (size_t j = 0; j < sz; j++)
- if ((*modify)[i].name () == working[j].name ())
- {
- // A match found.
- working[j].value ((*modify)[i].value ().fast_rep ());
- break;
- }
-
- // No matching property name were found,
- // We want to add this property into the list.
- if (j == sz)
- working[sz++] = (*modify)[i];
- }
- }
- }
-
- // Yes, all operations passed. We can now copy the working version back.
- item->offer_->url_properties (ACE_URL_Property_Seq (sz));
- for (size_t i = 0; i < sz; i ++)
- item->offer_->url_properties ()[i] = working[i];
-
- if (url != 0)
- item->offer_->url (url->fast_rep ()); // replace URL location.
- return 0;
- }
- errno = ACE_URL_Locator::NO_SUCH_OFFER;
- return -1;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Unbounded_Set<ACE_URL_Record>;
-template class ACE_Unbounded_Set_Iterator<ACE_URL_Record>;
-template class ACE_Node<ACE_URL_Record>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Unbounded_Set<ACE_URL_Record>
-#pragma instantiate ACE_Unbounded_Set_Iterator<ACE_URL_Record>
-#pragma instantiate ACE_Node<ACE_URL_Record>
-#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-#endif /* ACE_LOCAL_LOCATOR_C */
diff --git a/apps/JAWS/clients/Caching/Local_Locator.h b/apps/JAWS/clients/Caching/Local_Locator.h
deleted file mode 100644
index 36969e6cb2c..00000000000
--- a/apps/JAWS/clients/Caching/Local_Locator.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// Local_Locator.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
-
-#ifndef ACE_LOCAL_LOCATOR_H
-#define ACE_LOCAL_LOCATOR_H
-
-#include "URL_Locator.h"
-#include "ace/Containers.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ID_Generator.h"
-
-class ACE_Svc_Export ACE_URL_Record
- // = TITLE
- // A URL Record.
- //
- // = DESCRIPTION
- // A record placed in URL repository. Notice that
- // both member pointers are own by URL_Record.
- // They will get deallocated when the object goes
- // out of scope.
-{
- friend class ACE_URL_Local_Locator;
- friend class ACE_Node<ACE_URL_Record>;
- // We are making ACE_Node as friend class because we don't want
- // others to access default constructor and pushing in an invalid
- // record. However, container classes need to use default constructor
- // for its head record.
-public:
- ACE_URL_Record (ACE_URL_Offer *offer);
- // ctor.
-
- ~ACE_URL_Record (void);
- // dtor.
-
- int operator== (const ACE_URL_Record &rhs) const;
- // Two records are equal if they have the same offer id.
-
- int operator!= (const ACE_URL_Record &rhs) const;
- // Unequal, complement of equal.
-
-private:
- ACE_URL_Record (void);
- // Default ctor. This is put here to prevent users from
- // pushing in an invalid record.
-
- ACE_WString *id_;
- // Offer ID in the repository.
-
- ACE_URL_Offer *offer_;
- // Offer (and its properties).
-};
-
-class ACE_Svc_Export ACE_URL_Local_Locator
- // = TITLE
- // A simple URL repository to store URL offer locally.
- //
- // = DESCRIPTION
- // This class manage a collection of URL offers
- // for local query and registration. But we should
- // really use it within a server.
-{
- virtual ~ACE_URL_Local_Locator (void);
- // Default destructor.
-
- virtual int url_query (const ACE_URL_Locator::ACE_Selection_Criteria how,
- const ACE_URL_Property_Seq *pseq,
- const size_t how_many,
- size_t &num_query,
- ACE_URL_Offer_Seq *offer);
- // Query the locator for HTTP with designate properties (none, some,
- // or all). The locator being queried will return a sequence of
- // offers with <how_many> offers in it. This interface allocates
- // <offer> so users must deallocate it after use.
-
- virtual int export_offer (ACE_URL_Offer *offer,
- ACE_WString &offer_id);
- // Export an offer to the locator.
-
- virtual int withdraw_offer (const ACE_WString &offer_id);
- // Withdraw an offer. return 0 if succeed, -1 otherwise.
-
- virtual int describe_offer (const ACE_WString &offer_id,
- ACE_URL_Offer *offer);
- // Query a specific offer.
-
- virtual int modify_offer (const ACE_WString &offer_id,
- const ACE_WString *url = 0,
- const ACE_URL_Property_Seq *del = 0,
- const ACE_URL_Property_Seq *modify = 0);
- // Modify a previously registered offer.
-
-protected:
- ACE_Unbounded_Set<ACE_URL_Record> repository_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "Local_Locator.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_LOCAL_LOCATOR_H */
diff --git a/apps/JAWS/clients/Caching/Local_Locator.i b/apps/JAWS/clients/Caching/Local_Locator.i
deleted file mode 100644
index 1d693472eb8..00000000000
--- a/apps/JAWS/clients/Caching/Local_Locator.i
+++ /dev/null
@@ -1,44 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-ACE_INLINE
-ACE_URL_Record::ACE_URL_Record (void)
- : id_ (0),
- offer_ (0)
-{
-}
-
-ACE_INLINE
-ACE_URL_Record::ACE_URL_Record (ACE_URL_Offer *offer)
- : offer_ (offer)
-{
- char buf[ACE_OFFER_ID_LENGTH];
-
- ACE_NEW (this->id_, ACE_WString (ACE_ID_Generator::get_new_id (buf)));
-}
-
-ACE_INLINE
-ACE_URL_Record::~ACE_URL_Record (void)
-{
- delete this->id_;
- delete this->offer_;
-}
-
-ACE_INLINE int
-ACE_URL_Record::operator== (const ACE_URL_Record &rhs) const
-{
- return this == &rhs || *this->id_ == *rhs.id_;
-}
-
-ACE_INLINE int
-ACE_URL_Record::operator!= (const ACE_URL_Record &rhs) const
-{
- return !(*this == rhs);
-}
-
-ACE_INLINE
-ACE_URL_Local_Locator::~ACE_URL_Local_Locator (void)
-{
-}
-
diff --git a/apps/JAWS/clients/Caching/Locator_Request_Reply.cpp b/apps/JAWS/clients/Caching/Locator_Request_Reply.cpp
deleted file mode 100644
index 6f7a7898e59..00000000000
--- a/apps/JAWS/clients/Caching/Locator_Request_Reply.cpp
+++ /dev/null
@@ -1,459 +0,0 @@
-// $Id$
-
-#if !defined (ACE_LOCATOR_REQUEST_REPLY_C)
-#define ACE_LOCATOR_REQUEST_REPLY_C
-
-#include "Locator_Request_Reply.h"
-
-#if !defined (__ACE_INLINE__)
-#include "Locator_Request_Reply.i"
-#endif
-
-#include "ace/Auto_Ptr.h"
-#include "URL_Properties.h"
-#include "URL_Array_Helper.h"
-#include "URL_Locator.h"
-
-ACE_RCSID(Caching, Locator_Request_Reply, "$Id$")
-
-int
-ACE_URL_Locator_Request::url_query (const int how,
- const ACE_URL_Property_Seq &pseq,
- const int how_many)
-{
- ACE_TRACE ("ACE_URL_Locator_Request::url_query");
-
- if (how >= ACE_URL_Locator::INVALID_SELECTION)
- return -1;
- ACE_NEW_RETURN (this->seq1_, ACE_URL_Property_Seq (pseq), -1);
- this->how_ = how;
- this->how_many_ = how_many;
- this->code_ = ACE_URL_Locator::QUERY;
- return 0;
-}
-
-int
-ACE_URL_Locator_Request::export_offer (const ACE_URL_Offer &offer)
-{
- ACE_TRACE ("ACE_URL_Locator_Request::export_offer");
-
- ACE_NEW_RETURN (this->offer_, ACE_URL_Offer (offer), -1);
- this->code_ = ACE_URL_Locator::EXPORT;
- return 0;
-}
-
-int
-ACE_URL_Locator_Request::withdraw_offer (const ACE_WString &offer_id)
-{
- ACE_TRACE ("ACE_URL_Locator_Request::withdraw_offer");
-
- this->id_ = offer_id;
- this->code_ = ACE_URL_Locator::WITHDRAW;
- return 0;
-}
-
-int
-ACE_URL_Locator_Request::describe_offer (const ACE_WString &offer_id)
-{
- ACE_TRACE ("ACE_URL_Locator_Request::describe_offer");
-
- this->id_ = offer_id;
- this->code_ = ACE_URL_Locator::DESCRIBE;
- return 0;
-}
-
-int
-ACE_URL_Locator_Request::modify_offer (const ACE_WString &offer_id,
- const ACE_WString *url,
- const ACE_URL_Property_Seq &del,
- const ACE_URL_Property_Seq &modify)
-{
- ACE_TRACE ("ACE_URL_Locator_Request::modify_offer");
-
- ACE_NEW_RETURN (this->seq1_, ACE_URL_Property_Seq (del), -1);
- ACE_NEW_RETURN (this->seq2_, ACE_URL_Property_Seq (modify), -1);
-
- if (url != 0)
- this->url_ = *url;
-
- this->id_ = offer_id;
- this->code_ = ACE_URL_Locator::MODIFY;
- return 0;
-}
-
-#define ENCODE_UINT32(ADDR,LEN,V) \
- * (ACE_UINT32 *) (ADDR+LEN) = htonl (V); \
- LEN += sizeof (ACE_UINT32);
-
-#define DECODE_UINT32(ADDR,LEN,V) \
- V = ntohl (* (ACE_UINT32 *) (ADDR+LEN)); \
- LEN += sizeof (ACE_UINT32);
-
-size_t
-ACE_URL_Locator_Request::encode (void)
-{
- ACE_TRACE ("ACE_URL_Locator_Request::encode");
-
- size_t buf_size = this->size ();
- size_t total_length = 0;
-
- ACE_NEW_RETURN (this->buffer_, char [buf_size], 0);
-
- ENCODE_UINT32 (this->buffer_, total_length, buf_size);
- // Encode buffer size.
-
- ENCODE_UINT32 (this->buffer_, total_length, this->code_);
- // Encode Op code.
-
- ENCODE_UINT32 (this->buffer_, total_length, this->how_);
- // Encode selection criteria.
-
- ENCODE_UINT32 (this->buffer_, total_length, this->how_many_);
- // Encode number of offers interested.
-
- ENCODE_UINT32 (this->buffer_, total_length, this->valid_ptr_);
- // Encode valide pointer flag.
-
- if (this->seq1_ != 0)
- {
- ENCODE_UINT32 (this->buffer_, total_length, this->seq1_->size ());
- total_length += ace_array_encode (this->buffer_ + total_length, *this->seq1_);
- }
- if (this->seq2_ != 0)
- {
- ENCODE_UINT32 (this->buffer_, total_length, this->seq2_->size ());
- total_length += ace_array_encode (this->buffer_ + total_length, *this->seq2_);
- }
- if (this->offer_ != 0)
- total_length += this->offer_->encode (this->buffer_ + total_length);
-
- total_length += ACE_WString_Helper::encode (this->buffer_ + total_length,
- this->id_);
- total_length += ACE_WString_Helper::encode (this->buffer_ + total_length,
- this->url_);
-
- ACE_ASSERT (total_length == buf_size);
- return total_length;
-}
-
-size_t
-ACE_URL_Locator_Request::decode (void *buffer)
-{
- ACE_TRACE ("ACE_URL_Locator_Request::decode");
-
- if (buffer == 0)
- return 0;
- // Check if we have a valid buffer available.
-
- char *cbuffer = (char *) buffer;
-
- size_t buf_size;
- size_t total_length = 0;
-
- DECODE_UINT32 (cbuffer, total_length, buf_size);
- // Decode length of buffer size first.
-
- DECODE_UINT32 (cbuffer, total_length, this->code_);
- // Get the operation code.
-
- DECODE_UINT32 (cbuffer, total_length, this->how_);
- // Decode selection criteria.
-
- DECODE_UINT32 (cbuffer, total_length, this->how_many_);
- // Decode number of offers interested.
-
- DECODE_UINT32 (cbuffer, total_length, this->valid_ptr_);
- // Decode valide pointer flag.
-
- if ((this->valid_ptr_ & VALID_SEQ1) != 0)
- {
- size_t n;
- DECODE_UINT32 (cbuffer, total_length, n);
- ACE_NEW_RETURN (this->seq1_, ACE_URL_Property_Seq (n), 0);
- total_length += ace_array_decode (cbuffer + total_length, *this->seq1_);
- }
- if ((this->valid_ptr_ & VALID_SEQ2) != 0)
- {
- size_t n;
- DECODE_UINT32 (cbuffer, total_length, n);
- ACE_NEW_RETURN (this->seq2_, ACE_URL_Property_Seq (n), 0);
- total_length += ace_array_decode (cbuffer + total_length, *this->seq2_);
- }
- if ((this->valid_ptr_ & VALID_OFFER) != 0)
- {
- ACE_NEW_RETURN (this->offer_, ACE_URL_Offer, 0);
- total_length += this->offer_->decode (cbuffer + total_length);
- }
-
- this->id_ = ACE_WString ((ACE_USHORT16 *) (cbuffer + total_length));
- total_length += ACE_WString_Helper::decode (cbuffer + total_length);
- this->url_ = ACE_WString ((ACE_USHORT16 *) (cbuffer + total_length));
- total_length += ACE_WString_Helper::decode (cbuffer + total_length);
-
- ACE_ASSERT (total_length == buf_size);
- return total_length;
-}
-
-
-size_t
-ACE_URL_Locator_Request::size (void)
-{
- ACE_TRACE ("ACE_URL_Locator_Request::size");
-
- size_t total_length = 5 * sizeof (ACE_UINT32);
- // There are 5 UINT32 variables at the beginning
- // of the buffer. <buffer size>, <code>, <how>,
- // <how_many>, <valid_ptr>.
-
- this->valid_ptr_ = 0;
- // Check valid pointers and mark corresponding flag in <valid_prt>.
-
- if (this->seq1_ != 0)
- {
- this->valid_ptr_ |= VALID_SEQ1;
- total_length += ace_array_size (*this->seq1_);
- }
- if (this->seq2_ != 0)
- {
- this->valid_ptr_ |= VALID_SEQ2;
- total_length += ace_array_size (*this->seq2_);
- }
- if (this->offer_ != 0)
- {
- this->valid_ptr_ |= VALID_OFFER;
- total_length += this->offer_->size ();
- }
-
- total_length += ACE_WString_Helper::size (this->id_);
- total_length += ACE_WString_Helper::size (this->url_);
-
- return total_length;
-}
-
-void
-ACE_URL_Locator_Request::dump (void) const
-{
- //ACE_TRACE ("ACE_URL_Locator_Request::dump");
-
- size_t i;
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- if (this->code_ < ACE_URL_Locator::INVALID_OPERATION)
- ACE_DEBUG ((LM_DEBUG, "%s Request:\n", ACE_URL_Locator::opname[this->code_]));
- else
- ACE_DEBUG ((LM_DEBUG, "Invalid Operation: %d\n", this->code_));
-
- if (this->how_ < ACE_URL_Locator::INVALID_SELECTION)
- ACE_DEBUG ((LM_DEBUG, "Select: %s\n", ACE_URL_Locator::selection_name[this->how_]));
- else
- ACE_DEBUG ((LM_DEBUG, "Invalid selection method: %d\n", this->how_));
-
- ACE_DEBUG ((LM_DEBUG, "At most %d reply.\n", this->how_many_));
-
- ACE_DEBUG ((LM_DEBUG, "Valid pointer pattern: %x\n", this->valid_ptr_));
-
- ACE_DEBUG ((LM_DEBUG, "Property sequence 1: %x\n", this->seq1_));
- if (this->seq1_ != 0)
- for (i = 0; i < this->seq1_->size (); i++)
- (*this->seq1_)[i].dump ();
-
- ACE_DEBUG ((LM_DEBUG, "Property sequence 2: %x\n", this->seq2_));
- if (this->seq2_ != 0)
- for (i = 0; i < this->seq2_->size (); i++)
- (*this->seq2_)[i].dump();
-
- ACE_DEBUG ((LM_DEBUG, "Offer: %x\n", this->offer_));
- if (this->offer_ != 0)
- this->offer_->dump ();
-
- if (this->id_.length () > 0)
- ACE_DEBUG ((LM_DEBUG, "Offer ID: %s\n",
- ACE_Auto_Basic_Array_Ptr<char> (this->id_.char_rep ()).get ()));
- else
- ACE_DEBUG ((LM_DEBUG, "Offer ID: \"\"\n"));
-
- if (this->url_.length () > 0)
- ACE_DEBUG ((LM_DEBUG, "URL: %s\n",
- ACE_Auto_Basic_Array_Ptr<char> (this->url_.char_rep ()).get ()));
- else
- ACE_DEBUG ((LM_DEBUG, "URL: \"\"\n"));
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-int
-ACE_URL_Locator_Reply::status_reply (u_int op, int result)
-{
- ACE_TRACE ("ACE_URL_Locator_Reply::status_reply");
-
- this->code_ = op;
- this->status_ = result;
- return 0;
-}
-
-int
-ACE_URL_Locator_Reply::query_reply (int result, size_t num,
- const ACE_URL_Offer_Seq &offers)
-{
- ACE_TRACE ("ACE_URL_Locator_Reply::query_reply");
-
- this->code_ = ACE_URL_Locator::QUERY;
- this->status_ = result;
- ACE_NEW_RETURN (this->offers_, ACE_URL_Offer_Seq (offers), -1);
- return 0;
-}
-
-int
-ACE_URL_Locator_Reply::describe_reply (int result,
- const ACE_URL_Offer &offer)
-{
- ACE_TRACE ("ACE_URL_Locator_Reply::describe_reply");
-
- this->code_ = ACE_URL_Locator::DESCRIBE;
- this->status_ = result;
- ACE_NEW_RETURN (this->offer_, ACE_URL_Offer (offer), -1);
- return 0;
-}
-
-size_t
-ACE_URL_Locator_Reply::encode (void)
-{
- ACE_TRACE ("ACE_URL_Locator_Reply::encode");
-
- size_t buf_size = this->size ();
- size_t total_length = 0;
-
- ACE_NEW_RETURN (this->buffer_, char [buf_size], 0);
-
- ENCODE_UINT32 (this->buffer_, total_length, buf_size);
- // Encode buffer size.
-
- ENCODE_UINT32 (this->buffer_, total_length, this->code_);
- // Encode Op code.
-
- ENCODE_UINT32 (this->buffer_, total_length, this->status_);
- // Encode Op result status.
-
- ENCODE_UINT32 (this->buffer_, total_length, this->num_offers_);
- // Encode number of offers in this->offers_.
-
- ENCODE_UINT32 (this->buffer_, total_length, this->valid_ptr_);
- // Encode valid pointers mask.
-
- if (this->offer_ != 0)
- total_length += this->offer_->encode (this->buffer_ + total_length);
-
- if (this->offers_ != 0)
- {
- ENCODE_UINT32 (this->buffer_, total_length, this->offers_->size ());
- total_length += ace_array_encode (this->buffer_ + total_length, *this->offers_);
- }
-
- ACE_ASSERT (total_length == buf_size);
- return 0;
-}
-
-size_t
-ACE_URL_Locator_Reply::decode (void *buffer)
-{
- ACE_TRACE ("ACE_URL_Locator_Reply::decode");
-
- if (buffer == 0)
- return 0;
- // Check if we have a buffer available.
-
- char *cbuffer = (char *) buffer;
-
- size_t buf_size;
- size_t total_length = 0;
-
- DECODE_UINT32 (cbuffer, total_length, buf_size);
- // Get the length of the buffer first.
-
- DECODE_UINT32 (cbuffer, total_length, this->code_);
- // Decode Op code.
-
- DECODE_UINT32 (cbuffer, total_length, this->status_);
- // Decode Op result status.
-
- DECODE_UINT32 (cbuffer, total_length, this->num_offers_);
- // Decode number of offers in this->offers_.
-
- DECODE_UINT32 (cbuffer, total_length, this->valid_ptr_);
- // Decode valid pointers mask.
-
- if ((this->valid_ptr_ & VALID_OFFER) != 0)
- {
- ACE_NEW_RETURN (this->offer_, ACE_URL_Offer, 0);
- total_length += this->offer_->decode (cbuffer + total_length);
- }
-
- if ((this->valid_ptr_ & VALID_OFFERS) != 0)
- {
- size_t n;
- DECODE_UINT32 (cbuffer, total_length, n);
- ACE_NEW_RETURN (this->offers_, ACE_URL_Offer_Seq (n), 0);
- total_length += ace_array_decode (cbuffer + total_length, *this->offers_);
- }
-
- ACE_ASSERT (total_length ==buf_size);
- return 0;
-}
-
-size_t
-ACE_URL_Locator_Reply::size (void)
-{
- ACE_TRACE ("ACE_URL_Locator_Reply:size");
-
- size_t total_length = 5 * sizeof (ACE_UINT32);
- // size for 5 ACE_UINT32 objects: <buffer size>, <code_>,
- // <status_>, <num_offers_>, and <valid_ptr_>.
-
- this->valid_ptr_ = 0;
- if (this->offer_ != 0)
- {
- this->valid_ptr_ |= VALID_OFFER;
- total_length += this->offer_->size ();
- }
- if (this->offers_ != 0)
- {
- this->valid_ptr_ |= VALID_OFFERS;
- total_length += ace_array_size (*this->offers_);
- }
- return total_length;
-}
-
-void
-ACE_URL_Locator_Reply::dump (void) const
-{
- //ACE_TRACE ("ACE_URL_Locator_Reply::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- if (this->code_ < ACE_URL_Locator::INVALID_OPERATION)
- ACE_DEBUG ((LM_DEBUG, "Original request: %s\n", ACE_URL_Locator::opname[this->code_]));
- else
- ACE_DEBUG ((LM_DEBUG, "Invalid Original Request: %d\n", this->code_));
-
- if (this->status_ < ACE_URL_Locator::MAX_URL_ERROR)
- ACE_DEBUG ((LM_DEBUG, "Reply status: %s\n", ACE_URL_Locator::err_name[this->status_]));
- else
- ACE_DEBUG ((LM_DEBUG, "Invalid reply status: %d\n", this->status_));
-
- ACE_DEBUG ((LM_DEBUG, "Number of offers: %d\n", this->num_offers_));
-
- ACE_DEBUG ((LM_DEBUG, "Valid pointer pattern: %x\n", this->valid_ptr_));
-
- ACE_DEBUG ((LM_DEBUG, "Offer: %x\n", this->offer_));
- if (this->offer_ != 0)
- this->offer_->dump ();
-
- ACE_DEBUG ((LM_DEBUG, "Offer sequence: %x\n", this->offers_));
- if (this->offers_ != 0)
- for (size_t i = 0; i < this->offers_->size (); i++)
- (*this->offers_)[i].dump();
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-#endif /* ACE_LOCATOR_REQUEST_REPLY_C */
diff --git a/apps/JAWS/clients/Caching/Locator_Request_Reply.h b/apps/JAWS/clients/Caching/Locator_Request_Reply.h
deleted file mode 100644
index 057607c351d..00000000000
--- a/apps/JAWS/clients/Caching/Locator_Request_Reply.h
+++ /dev/null
@@ -1,220 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// Locator_Request_Response.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
-
-#ifndef ACE_LOCATOR_REQUEST_REPLY_H
-#define ACE_LOCATOR_REQUEST_REPLY_H
-
-#include "URL_Properties.h"
-
-class ACE_Svc_Export ACE_URL_Locator_Request
- // = TITLE
- // A URL request message formater/wrapper.
- //
- // = DESCRIPTION
- // This class defines a URL request data. It is used
- // to transform requests to an object so that we can
- // ship them across network.
-{
-public:
- ACE_URL_Locator_Request (void);
- // Default ctor.
-
- ~ACE_URL_Locator_Request (void);
- // Default dtor.
-
- int url_query (const int how,
- const ACE_URL_Property_Seq &pseq,
- const int how_many);
- // Query the locator for HTTP with designate properties (none, some,
- // or all). The locator being queried will return a sequence of
- // offers with <how_many> offers in it. This interface allocates
- // <offer> so users must deallocate it after use.
-
- int export_offer (const ACE_URL_Offer &offer);
- // Export an offer to the locator.
-
- int withdraw_offer (const ACE_WString &offer_id);
- // Withdraw an offer. return 0 if succeed, -1 otherwise.
-
- int describe_offer (const ACE_WString &offer_id);
- // Query a specific offer.
-
- int modify_offer (const ACE_WString &offer_id,
- const char *url = 0,
- const ACE_URL_Property_Seq &del = 0,
- const ACE_URL_Property_Seq &modify = 0);
- // Modify a previously registered offer.
-
- int modify_offer (const ACE_WString &offer_id,
- const ACE_WString *url = 0,
- const ACE_URL_Property_Seq &del = 0,
- const ACE_URL_Property_Seq &modify = 0);
- // Modify a previously registered offer.
-
- size_t encode (void);
- // Encode request for network communication. If succeed,
- // returns the size of the buffer, otherwise, return 0.
-
- size_t decode (void *buffer);
- // Restore from network data. Returns size of the buffer
- // if succeed, 0 otherwise. When passing in a buffer,
- // caller must take the responsibility to delete the buffer
- // afterward, if so needed.
-
- const int how (void) const;
- const int how_many (void) const;
- const u_int opcode (void) const;
- const ACE_URL_Property_Seq *seq (void) const;
- const ACE_URL_Property_Seq *del (void) const;
- const ACE_URL_Property_Seq *modify (void) const;
- const ACE_URL_Offer *offer (void) const;
- const ACE_WString &id (void) const;
- const ACE_WString &url (void) const;
- const char *buffer (void) const;
- // A bunch of methods to access internal data.
-
- void dump (void) const;
- // Print out this object.
-
-protected:
- size_t size (void);
- // Return the size of the buffer required to encode
- // this request.
-
- enum {
- VALID_SEQ1 = 0x1,
- VALID_SEQ2 = 0X2,
- VALID_OFFER = 0X4
- };
- // These constants used to indicate which pointers are valid.
-
- u_int code_;
- // Request type code.
-
- int how_;
- // Query method (if code_ == QUERY.)
-
- int how_many_;
- // How many offers are we interested in in this query.
-
- int valid_ptr_;
- // Bit flag to mark valid pointers within this object.
-
- ACE_URL_Property_Seq *seq1_;
- // For query or del in modify_offer.
-
- ACE_URL_Property_Seq *seq2_;
- // For modify seq. in modify_offer.
-
- ACE_URL_Offer *offer_;
- // Offer to export.
-
- ACE_WString id_;
- // Offer ID.
-
- ACE_WString url_;
- // URL of this offer.
-
- char *buffer_;
- // Buffer to store encoded data.
-};
-
-class ACE_Svc_Export ACE_URL_Locator_Reply
- // = TITLE
- // A URL reply message formater/wrapper.
- //
- // = DESCRIPTION
- // This class defines a URL reply data. It is used
- // to transform reply messages to an object so that we can
- // ship them across network.
-{
-public:
- ACE_URL_Locator_Reply (void);
- // Default ctor.
-
- ~ACE_URL_Locator_Reply (void);
- // Default dtor.
-
- int status_reply (u_int op, int result);
- // Setup a reply message for EXPORT, WITHDRAW, or MODIFY operations.
-
- int query_reply (int result, size_t num,
- const ACE_URL_Offer_Seq &offers);
- // Setup a reply for QUERY operation.
-
- int describe_reply (int result,
- const ACE_URL_Offer &offer);
- // Construct a reply for DESCRIBE operation.
-
- size_t encode (void);
- // Encode request for network communication. If succeed,
- // returns the size of the buffer, otherwise, return 0.
-
- size_t decode (void *buffer);
- // Restore from network data. Returns size of the buffer
- // if succeed, 0 otherwise. When passing in a buffer,
- // caller must take the responsibility to delete the buffer
- // afterward, if so needed.
-
- // Accessor function.
- const size_t num_offers (void) const;
- const ACE_URL_Offer *offer (void) const;
- const ACE_URL_Offer_Seq *offers (void) const;
- const u_int opcode (void) const;
- const u_int status (void) const;
- const char *buffer (void) const ;
-
- void dump (void) const ;
- // Print out this object.
-
-protected:
- size_t size (void);
- // Return the size of the buffer required to encode
- // this request.
-
- enum {
- VALID_OFFER = 0x1,
- VALID_OFFERS = 0x2
- };
- // Valid pointer masks.
-
- u_int code_;
- // Holds the original op code.
-
- int status_;
- // Holds the result of an operation from the Location Server.
-
- size_t num_offers_;
- // Holds the number of valid offers in the offers_ sequence.
-
- int valid_ptr_;
- // Flag that marks valid internal pointers.
-
- ACE_URL_Offer *offer_;
- // Holds a single offer. Used in query offer property.
-
- ACE_URL_Offer_Seq *offers_;
- // Holds the replying offer sequence from a Locator.
-
- char *buffer_;
- // Buffer to store encoded data.
-};
-#if defined (__ACE_INLINE__)
-#include "Locator_Request_Reply.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_LOCATOR_REQUEST_REPLY_H */
diff --git a/apps/JAWS/clients/Caching/Locator_Request_Reply.i b/apps/JAWS/clients/Caching/Locator_Request_Reply.i
deleted file mode 100644
index 9dd2f851ceb..00000000000
--- a/apps/JAWS/clients/Caching/Locator_Request_Reply.i
+++ /dev/null
@@ -1,138 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-#include "URL_Locator.h"
-
-ACE_INLINE
-ACE_URL_Locator_Request::ACE_URL_Locator_Request (void)
- : code_(ACE_URL_Locator::INVALID_OPERATION),
- seq1_ (0),
- seq2_ (0),
- offer_ (0),
- buffer_ (0)
-{
-}
-
-ACE_INLINE
-ACE_URL_Locator_Request::~ACE_URL_Locator_Request (void)
-{
- delete this->seq1_;
- delete this->seq2_;
- delete this->offer_;
- delete [] this->buffer_;
-}
-
-ACE_INLINE const int
-ACE_URL_Locator_Request::how (void) const
-{
- return this-> how_;
-}
-
-ACE_INLINE const int
-ACE_URL_Locator_Request::how_many (void) const
-{
- return this->how_many_;
-}
-
-ACE_INLINE const u_int
-ACE_URL_Locator_Request::opcode (void) const
-{
- return this->code_;
-}
-
-ACE_INLINE const ACE_URL_Property_Seq *
-ACE_URL_Locator_Request::seq (void) const
-{
- return this->seq1_;
-}
-
-ACE_INLINE const ACE_URL_Property_Seq *
-ACE_URL_Locator_Request::del (void) const
-{
- return this->seq1_;
-}
-
-ACE_INLINE const ACE_URL_Property_Seq *
-ACE_URL_Locator_Request::modify (void) const
-{
- return this->seq2_;
-}
-
-ACE_INLINE const ACE_URL_Offer *
-ACE_URL_Locator_Request::offer (void) const
-{
- return this->offer_;
-}
-
-ACE_INLINE const ACE_WString &
-ACE_URL_Locator_Request::id (void) const
-{
- return this->id_;
-}
-
-ACE_INLINE const ACE_WString &
-ACE_URL_Locator_Request::url (void) const
-{
- return this->url_;
-}
-
-ACE_INLINE const char *
-ACE_URL_Locator_Request::buffer (void) const
-{
- return this->buffer_;
-}
-
-ACE_INLINE
-ACE_URL_Locator_Reply::ACE_URL_Locator_Reply (void)
- : code_ (ACE_URL_Locator::INVALID_OPERATION),
- offer_ (0),
- offers_ (0),
- buffer_ (0)
-{
-}
-
-ACE_INLINE
-ACE_URL_Locator_Reply::~ACE_URL_Locator_Reply (void)
-{
- delete this->offer_;
- delete this->offers_;
- delete [] this->buffer_;
-}
-
-ACE_INLINE const size_t
-ACE_URL_Locator_Reply::num_offers (void) const
-{
- return this->num_offers_;
-}
-
-
-ACE_INLINE const ACE_URL_Offer *
-ACE_URL_Locator_Reply::offer (void) const
-{
- return this->offer_;
-}
-
-ACE_INLINE const ACE_URL_Offer_Seq *
-ACE_URL_Locator_Reply::offers (void) const
-{
- return this->offers_;
-}
-
-ACE_INLINE const u_int
-ACE_URL_Locator_Reply::opcode (void) const
-{
- return this->code_;
-}
-
-ACE_INLINE const u_int
-ACE_URL_Locator_Reply::status (void) const
-{
- return this->status_;
-}
-
-ACE_INLINE const char *
-ACE_URL_Locator_Reply::buffer (void) const
-{
- return this->buffer_;
-}
diff --git a/apps/JAWS/clients/Caching/Makefile b/apps/JAWS/clients/Caching/Makefile
deleted file mode 100644
index 2b9e5e27fbb..00000000000
--- a/apps/JAWS/clients/Caching/Makefile
+++ /dev/null
@@ -1,191 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE Adapter Web Server (JAWS) client
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = http_client
-
-FILES = http_handler
-
-SRC = $(addsuffix .cpp,$(FILES))
-OBJ = $(addsuffix .o,$(FILES))
-
-BUILD = $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/http_handler.o .obj/http_handler.so .shobj/http_handler.o .shobj/http_handler.so: http_handler.cpp \
- $(ACE_ROOT)/ace/Filecache.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- http_handler.h \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/Connector.cpp \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/JAWS/clients/Caching/Makefile.bor b/apps/JAWS/clients/Caching/Makefile.bor
deleted file mode 100644
index af633030078..00000000000
--- a/apps/JAWS/clients/Caching/Makefile.bor
+++ /dev/null
@@ -1,6 +0,0 @@
-
-NAME = http_client
-OBJFILES = \
- $(OBJDIR)\http_client.obj \
- $(OBJDIR)\http_handler.obj
-!include <$(ACE_ROOT)\apps\build.bor>
diff --git a/apps/JAWS/clients/Caching/README b/apps/JAWS/clients/Caching/README
deleted file mode 100644
index 3dcfcd32815..00000000000
--- a/apps/JAWS/clients/Caching/README
+++ /dev/null
@@ -1,83 +0,0 @@
-# -*- text -*-
-# Hey, Emacs! This is a TEXT file.
-
-----------------------------------
-README for the caching http_client
-----------------------------------
-
-This is the README file for the simple caching http_client.
-
-------------
-1. Compiling
-------------
-
-1a. Compiling on UNIX.
-
- On UNIX, with a properly configured ACE distribution, just
-type make (using GNU make, of course).
-
-1b. Compiling on NT.
-
- Thus far, this code has only been tested under UNIX. A
-Windows NT version will be out soon.
-
-------------
-2. Executing
-------------
-
-2a. Command line parameters.
-
- The program does not support any command line parameters.
-
-2b. General information.
-
- When the program runs, the client offers a ``*'' as a prompt.
-At the prompt, you may enter a URL. The client will check to see if
-the filename portion of the URL has already been cached. If so, a
-message appears saying so. If not, the client will fetch the file
-from the HTTP server and then cache it.
-
- Furthermore, the client supports the ``!'' shell escape
-command. The content after the ``!'' will be executed by a shell.
-
- To exit the session, send the end-of-file character
-(typically, ^D in UNIX).
-
- unix$ ./http_client
- * http://www.cs.wustl.edu/cs/Art/brookings.gif
- [1] sending request --
- GET /cs/Art/brookings.gif HTTP/1.0
- Accept: HTTP/1.0
-
- ``brookings.gif'' is now cached.
- * http://www.cs.wustl.edu/cs/Art/brookings.gif
- ``brookings.gif'' is already cached.
- * !ls
- Makefile http_client http_handler.cpp zJAWSAAAa000Yg
- brookings.gif http_client.cpp http_handler.h
- * ^D
- Bye!
- unix$ ls
- Makefile http_client http_handler.cpp
- brookings.gif http_client.cpp http_handler.h
- unix$
-
---------------
-3. Limitations
---------------
-
- The caching mechanism as currently implemented requires a
-``Content-length:'' to appear in the response header of the HTTP
-response. This is because the caching utilizes mmap () to allocate
-space for the file to be cached before the file is received. Unitl
-the caching mecahnism is extended, you are limited to using servers
-which will report the size of the file being transmitted.
-
- Currently, the cache creates temporary files (see the above
-sample execution).
-
- The cache is not persistent between executions.
-
- Suggestions and other correspondence should be sent to me:
-
-James Hu <jxh@cs.wustl.edu>
diff --git a/apps/JAWS/clients/Caching/URL_Array_Helper.cpp b/apps/JAWS/clients/Caching/URL_Array_Helper.cpp
deleted file mode 100644
index c8dbb55e197..00000000000
--- a/apps/JAWS/clients/Caching/URL_Array_Helper.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-// $Id$
-
-// URL_Array_Helper.cpp
-
-#ifndef ACE_URL_ARRAY_HELPER_C
-#define ACE_URL_ARRAY_HELPER_C
-
-#include "URL_Array_Helper.h"
-
-ACE_RCSID(Caching, URL_Array_Helper, "$Id$")
-
-// Some helper functions for encoding/decoding
-
-template <class T>
-size_t ace_array_size (const T &x)
-{
- size_t sum = sizeof (ACE_UINT32);
- for (size_t i = 0; i < x.size (); i++)
- sum += x[i].size ();
- return sum;
-}
-
-template <class T>
-size_t ace_array_encode (void *buf, const T &x)
-{
- size_t len = 0;
- for (size_t i = 0; i < x.size (); i++)
- len+= x[i].encode ((void *) ((char *) buf + len));
- return len ;
-}
-
-template <class T>
-size_t ace_array_decode (void *buf, T &x)
-{
- size_t len = 0;
- for (size_t i = 0; i < x.size (); i++)
- len += x[i].decode ((void *) ((char *) buf + len));
- return len;
-}
-
-
-
-#endif /* ACE_URL_ARRAY_HELPER_C */
diff --git a/apps/JAWS/clients/Caching/URL_Array_Helper.h b/apps/JAWS/clients/Caching/URL_Array_Helper.h
deleted file mode 100644
index f38f9ebf5dd..00000000000
--- a/apps/JAWS/clients/Caching/URL_Array_Helper.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// URL_Array_Helper.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
-
-#ifndef ACE_URL_ARRAY_HELPER_H
-#define ACE_URL_ARRAY_HELPER_H
-
-// ### These template functions are probably named improperly.
-// You should find some way to avoid name space polution.
-
-template <class T>
-size_t ace_array_size (const T &x);
-
-template <class T>
-size_t ace_array_encode (void *buf, const T &x);
-
-template <class T>
-size_t ace_array_decode (void *buf, T &x);
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "URL_Array_Helper.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("URL_Array_Helper.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#endif /* ACE_URL_ARRAY_HELPER_H */
diff --git a/apps/JAWS/clients/Caching/URL_Locator.cpp b/apps/JAWS/clients/Caching/URL_Locator.cpp
deleted file mode 100644
index fd3eacab06d..00000000000
--- a/apps/JAWS/clients/Caching/URL_Locator.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-// $Id$
-
-#if !defined (ACE_URL_LOCATOR_C)
-#define ACE_URL_LOCATOR_C
-
-#include "URL_Locator.h"
-
-#if !defined (__ACE_INLINE__)
-#include "URL_Locator.i"
-#endif
-
-ACE_RCSID(Caching, URL_Locator, "$Id$")
-
-const char * const
-ACE_URL_Locator::opname[] =
-// Human readable operation name
-{
- "Query",
- "Export",
- "Withdraw",
- "Describe",
- "Modify",
- "Invalid Operation"
-};
-
-const char * const
-ACE_URL_Locator::selection_name[] =
-{
- "None",
- "Some",
- "All",
- "Invalid Selection"
-};
-
-const char * const
-ACE_URL_Locator::err_name[] =
-{
- "No error",
- "Offer already exist",
- "no such offer",
- "invalid argument",
- "function not implemented",
- "unknown error"
-};
-
-ACE_URL_Locator::~ACE_URL_Locator (void)
-{
-}
-
-const char *
-ACE_URL_Locator::error_status (void)
-{
- return "Not implemented yet.";
-}
-
-#endif /* ACE_URL_LOCATOR_C */
diff --git a/apps/JAWS/clients/Caching/URL_Locator.h b/apps/JAWS/clients/Caching/URL_Locator.h
deleted file mode 100644
index cf6f294145e..00000000000
--- a/apps/JAWS/clients/Caching/URL_Locator.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// URL_Locator.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
-
-#ifndef ACE_URL_LOCATOR_H
-#define ACE_URL_LOCATOR_H
-
-#include "URL_Properties.h"
-
-class ACE_Svc_Export ACE_URL_Locator
- // = TITLE
- // Abstract Base class designates what interfaces a URL_Locator
- // should provide.
- //
- // = DESCRIPTION
- // This class defines the basic URL_Locator APIs.
- // An URL locator provides services for URL clients to
- // query specific URL location that has certain properties
- // and URL providers to export their services and a set of
- // APIs to maintain their offers.
-{
-public:
- // Request type
- enum ACE_URL_Locator_Op_Type
- {
- QUERY = 0,
- EXPORT,
- WITHDRAW,
- DESCRIBE,
- MODIFY,
- INVALID_OPERATION // LAST
- };
-
- static const char * const opname[];
- // Human Readable operation name.
-
- // = Specify how to select offers.
- enum ACE_Selection_Criteria
- {
- NONE = 0, // URL that contains none of the properties.
- SOME, // URL that contains some of the properties.
- ALL, // URL that contains all of the properties.
- INVALID_SELECTION // Invalid.
- };
-
- static const char * const selection_name[];
-
- enum ACE_URL_Locator_Error
- // errno will set to one of these value.
- {
- OK, // Everything is fine.
- OFFER_EXIST, // trying to register an offer.
- // that is already exist in repository.
- NO_SUCH_OFFER, // No such offer in the repository.
- INVALID_ARGUMENT, // Invalid argument encountered.
- UNIMPLEMENTED, // function not implemented.
- UNKNOWN, // Unknown error.
- MAX_URL_ERROR
- };
- // Possible error code of URL_Locator.
-
- static const char * const err_name[];
- // Human readable error status.
-
- virtual ~ACE_URL_Locator (void) = 0;
- // Default destructor.
-
- virtual int url_query (const ACE_Selection_Criteria how,
- const ACE_URL_Property_Seq *pseq,
- const size_t how_many,
- size_t &num_query,
- ACE_URL_Offer_Seq *offer) = 0;
- // Query the locator for HTTP with designate properties (none, some,
- // or all). The locator being queried will return a sequence of
- // offers with <how_many> offers in it. This interface allocates
- // <offer> so users must deallocate it after use.
-
- virtual int export_offer (ACE_URL_Offer *offer,
- ACE_WString &offer_id) = 0;
- // Export an offer to the locator.
-
- virtual int withdraw_offer (const ACE_WString &offer_id) = 0;
- // Withdraw an offer. return 0 if succeed, -1 otherwise.
-
- virtual int describe_offer (const ACE_WString &offer_id,
- ACE_URL_Offer *offer) = 0;
- // Query a specific offer.
-
- virtual int modify_offer (const ACE_WString &offer_id,
- const ACE_WString *url = 0,
- const ACE_URL_Property_Seq *del = 0,
- const ACE_URL_Property_Seq *modify = 0) = 0;
- // Modify a previously registered offer.
-
- virtual const char *error_status (void);
- // Provide a human readable error status.
-};
-
-#if defined (__ACE_INLINE__)
-#include "URL_Locator.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_WEB_LOCATOR_H */
diff --git a/apps/JAWS/clients/Caching/URL_Locator.i b/apps/JAWS/clients/Caching/URL_Locator.i
deleted file mode 100644
index 722888896c1..00000000000
--- a/apps/JAWS/clients/Caching/URL_Locator.i
+++ /dev/null
@@ -1,4 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
diff --git a/apps/JAWS/clients/Caching/URL_Properties.cpp b/apps/JAWS/clients/Caching/URL_Properties.cpp
deleted file mode 100644
index eeae1f43581..00000000000
--- a/apps/JAWS/clients/Caching/URL_Properties.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-// $Id$
-
-#if !defined (ACE_URL_PROPERTIES_C)
-#define ACE_URL_PROPERTIES_C
-
-#include "URL_Properties.h"
-
-#if !defined (__ACE_INLINE__)
-#include "URL_Properties.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/OS.h"
-#include "ace/Auto_Ptr.h"
-#include "URL_Array_Helper.h"
-
-ACE_RCSID(Caching, URL_Properties, "$Id$")
-
-size_t
-ACE_WString_Helper::encode (void *buf, const ACE_WString &wstr)
-{
- ACE_USHORT16 *wptr = (ACE_USHORT16 *) buf;
- size_t i;
-
- for (i= 0; i <= wstr.length (); i++)
- wptr[i] = htons (wstr[i]);
-
- return i * sizeof (ACE_USHORT16);
-}
-
-size_t
-ACE_WString_Helper::decode (void *buf)
-{
- ACE_USHORT16 *wptr = (ACE_USHORT16 *) buf;
- size_t i;
-
- for (i = 0; wptr[i] != 0; i++)
- wptr[i] = ntohs (wptr[i]);
-
- return (i + 1) * sizeof (ACE_USHORT16);
-}
-
-size_t
-ACE_URL_Property::encode (void *buf) const
-{
- size_t blen = ACE_WString_Helper::encode (buf, this->name_);
- blen += ACE_WString_Helper::encode ((void *) ((char *) buf + blen),
- this->value_);
- return blen;
-}
-
-size_t
-ACE_URL_Property::decode (void *buf)
-{
- char *cbuf = (char *) buf;
- size_t len = ACE_WString_Helper::decode(buf);
- this->name ((ACE_USHORT16 *) cbuf);
-
- cbuf += len;
- len += ACE_WString_Helper::decode ((void *) cbuf);
- this->value ((ACE_USHORT16 *) cbuf);
- return len;
-}
-
-void
-ACE_URL_Property::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- if (this->name_.length () > 0)
- ACE_DEBUG ((LM_DEBUG, "\n name_: \"%s\"\n",
- ACE_Auto_Basic_Array_Ptr<char> (this->name_.char_rep ()).get ()));
- else
- ACE_DEBUG ((LM_DEBUG, "\n name_: \"\"\n"));
-
- if (this->value_.length () > 0)
- ACE_DEBUG ((LM_DEBUG, " value_: \"%s\"\n",
- ACE_Auto_Basic_Array_Ptr<char> (this->value_.char_rep ()).get ()));
- else
- ACE_DEBUG ((LM_DEBUG, " value_: \"\"\n"));
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-size_t
-ACE_URL_Offer::size (void) const
-{
- size_t sum = (this->url_.length () + 1) * sizeof (ACE_USHORT16);
- sum += ::ace_array_size (this->prop_);
- return sum;
-}
-
-size_t
-ACE_URL_Offer::encode (void *buf) const
-{
- ACE_UINT32 *s_buf = (ACE_UINT32 *) buf;
- *s_buf = htonl (this->prop_.size ());
-
- size_t len = sizeof (ACE_UINT32);
- len += ACE_WString_Helper::encode ((void *) ((char *) buf + len),
- this->url_);
-
- len += ::ace_array_encode ((void *) ((char *) buf + len),
- this->prop_);
- return len;
-}
-
-size_t
-ACE_URL_Offer::decode (void *buf)
-{
- size_t len = sizeof (ACE_UINT32);
- size_t a_size = (size_t) ntohl (*(ACE_UINT32 *) buf);
- len += ACE_WString_Helper::decode ((void *) ((char *) buf + len));
- this->url ((ACE_USHORT16 *) ((char *) buf + len));
-
- ACE_URL_Property_Seq prop_seq (a_size);
- this->url_properties (prop_seq);
-
- len += ::ace_array_decode ((void *)((char *) buf + len),
- this->prop_);
- return len;
-}
-
-void
-ACE_URL_Offer::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- if (this->url_.length () > 0)
- ACE_DEBUG ((LM_DEBUG, "\n url_: \"%s\"\n",
- ACE_Auto_Basic_Array_Ptr<char> (this->url_.char_rep ()).get ()));
- else
- ACE_DEBUG ((LM_DEBUG, "\n url_: \"\"\n"));
-
- for (size_t i = 0; i < this->prop_.size (); i++)
- this->prop_[i].dump ();
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Array_Base<ACE_URL_Property>;
-template class ACE_Array<ACE_URL_Property>;
-template class ACE_Array_Base<ACE_URL_Offer>;
-template class ACE_Array<ACE_URL_Offer>;
-template size_t ace_array_size (ACE_Array<ACE_URL_Property> &);
-template size_t ace_array_encode (void *, ACE_Array<ACE_URL_Property> &);
-template size_t ace_array_decode (void *, ACE_Array<ACE_URL_Property> &);
-template size_t ace_array_size (ACE_Array<ACE_URL_Offer> &);
-template size_t ace_array_encode (void *, ACE_Array<ACE_URL_Offer> &);
-template size_t ace_array_decode (void *, ACE_Array<ACE_URL_Offer> &);
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Array_Base<ACE_URL_Property>
-#pragma instantiate ACE_Array<ACE_URL_Property>
-#pragma instantiate ACE_Array_Base<ACE_URL_Offer>
-#pragma instantiate ACE_Array<ACE_URL_Offer>
-#pragma instantiate size_t ace_array_size (ACE_Array<ACE_URL_Property> &)
-#pragma instantiate size_t ace_array_encode (void *, ACE_Array<ACE_URL_Property> &)
-#pragma instantiate size_t ace_array_decode (void *, ACE_Array<ACE_URL_Property> &)
-#pragma instantiate size_t ace_array_size (ACE_Array<ACE_URL_Offer> &)
-#pragma instantiate size_t ace_array_encode (void *, ACE_Array<ACE_URL_Offer> &)
-#pragma instantiate size_t ace_array_decode (void *, ACE_Array<ACE_URL_Offer> &)
-#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-#endif /* ACE_URL_PROPERTIES_C */
diff --git a/apps/JAWS/clients/Caching/URL_Properties.h b/apps/JAWS/clients/Caching/URL_Properties.h
deleted file mode 100644
index 17e3c6df114..00000000000
--- a/apps/JAWS/clients/Caching/URL_Properties.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// URL_Locator.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
-
-#ifndef ACE_URL_PROPERTIES_H
-#define ACE_URL_PROPERTIES_H
-
-#include "ace/SString.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Containers.h"
-
-class ACE_Svc_Export ACE_WString_Helper
- // = TITLE
- // Some helper functions for manipulate ACE_WString.
- //
- // = DESCRIPTION
- // These functions simplify encoding/decoding of
- // ACE_WString objects for network communication.
-{
-public:
- static size_t size (const ACE_WString &wstr);
- // Returns the actual size (in bytes) required to contain the
- // ACE_WString.
-
- static size_t encode (void *buf, const ACE_WString &wstr);
- // Encode <wstr> into <buf> for network communication.
- // Return total octets consumed.
-
- static size_t decode (void *buf);
- // This function doesn't relate to ACE_WString directly.
- // It converts an ACE_USHORT16 string from network
- // byte order to host byte order. Returns size of the string.
-};
-
-class ACE_Svc_Export ACE_URL_Property
- // = TITLE
- // Defines a property of a URL.
- //
- // = DESCRIPTION
- // A property contains a <name> and a <value>.
- // A URL may contain some properties and we can "locate"
- // the URL's we are looking for by examming URL for certain
- // properties that match our need.
-{
-public:
- ACE_URL_Property (const char *name = 0,
- const char *value=0);
- // Create a new property.
-
- ACE_URL_Property (const ACE_USHORT16 *name,
- const ACE_USHORT16 *value);
- // Create a new property using wchar strings. This is mostly used
- // to support DBCS or UNICODE.
-
- ACE_URL_Property (const ACE_URL_Property &p);
- // Copy constructor.
-
- ~ACE_URL_Property (void);
- // Destructor.
-
- ACE_URL_Property &operator= (const ACE_URL_Property &rhs);
- // Assignment operator.
-
- int operator== (const ACE_URL_Property &rhs) const;
- // Equals operator.
-
- int operator!= (const ACE_URL_Property &rhs) const;
- // Inequality operator.
-
- // = Query property name.
- ACE_WString &name_rep (void);
- const ACE_WString &name (void) const;
-
- // = Set property name.
- void name (const ACE_USHORT16 *n);
- void name (const char *n);
-
- // = Query property value.
- ACE_WString &value_rep (void);
- const ACE_WString &value (void) const;
-
- // = Set property value.
- void value (const ACE_USHORT16 *v);
- void value (const char *v);
-
- // = Helper functions for encoding and decoding.
- size_t size (void) const;
- // Returns memory size (in bytes) required to encode this object.
-
- size_t encode (void *buf) const;
- // Encodes this object into buf for network transmission.
-
- size_t decode (void *buf);
- // Decodes buf and modifies this object, you should
- // probably create this with default ctor.
-
- void dump (void) const;
- // Dump out this object for debug.
-
-protected:
- ACE_WString name_;
- // Property name pointer.
-
- ACE_WString value_;
- // Property value.
-} ;
-
-typedef ACE_Array<ACE_URL_Property> ACE_URL_Property_Seq;
-// type of URL_Property collections.
-
-class ACE_Svc_Export ACE_URL_Offer
- // = TITLE
- // Defines a URL offer.
- //
- // = DESCRIPTION
- // A URL offer is defined by a <url> and an
- // <ACE_URL_Property_Seq>. An offer is stored at server end
- // thru registering or reported back to querying client from the
- // sever.
-{
-public:
- ACE_URL_Offer (const size_t size = 1, const char *url = 0);
- // Create an offer.
-
- ACE_URL_Offer (const ACE_URL_Offer &o);
- // Copy ctor.
-
- ~ACE_URL_Offer (void);
- // Default destructor.
-
- ACE_URL_Offer &operator= (const ACE_URL_Offer &rhs);
- // Assignment operator.
-
- int operator== (const ACE_URL_Offer &rhs) const;
- // Equality operator.
-
- int operator!= (const ACE_URL_Offer &rhs) const;
- // Inequality operator.
-
- // = Get URL string.
- ACE_WString &url_rep (void);
- const ACE_WString &url (void) const;
-
- // = Set URL.
- void url (const char *url);
- void url (const ACE_USHORT16 *url);
-
- ACE_URL_Property_Seq &url_properties (void);
- // Get properties of this offer.
-
- void url_properties (const ACE_URL_Property_Seq &prop);
- // Set properties of this offer. This operation virtually get a
- // copy of the passed in prop.
-
- // = Helper functions for encoding and decoding.
- size_t size (void) const;
- // Returns memory size (in bytes) required to encode this object.
-
- size_t encode (void *buf) const;
- // Encodes this object into buf for network transmission.
-
- size_t decode (void *buf);
- // Decodes buf into current object, you better use
- // the default ctor.
-
- void dump (void) const;
- // Dump this object for debug.
-
-protected:
- ACE_WString url_;
- // URL of this offer.
-
- ACE_URL_Property_Seq prop_;
- // Properties associate with this offer.
-};
-
-typedef ACE_Array<ACE_URL_Offer> ACE_URL_Offer_Seq;
-// type of URL offer collections.
-
-#if defined (__ACE_INLINE__)
-#include "URL_Properties.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_WEB_PROPERTIES_H */
diff --git a/apps/JAWS/clients/Caching/URL_Properties.i b/apps/JAWS/clients/Caching/URL_Properties.i
deleted file mode 100644
index 9e0cb59d03e..00000000000
--- a/apps/JAWS/clients/Caching/URL_Properties.i
+++ /dev/null
@@ -1,203 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-ACE_INLINE size_t
-ACE_WString_Helper::size (const ACE_WString &wstr)
-{
- return (wstr.length () + 1) * sizeof (ACE_USHORT16);
-}
-
-ACE_INLINE
-ACE_URL_Property::ACE_URL_Property (const char *name, const char *value)
- : name_ (name),
- value_ (value)
-{
-}
-
-ACE_INLINE
-ACE_URL_Property::ACE_URL_Property (const ACE_USHORT16 *name,
- const ACE_USHORT16 *value)
- : name_ (name),
- value_ (value)
-{
-}
-
-ACE_INLINE
-ACE_URL_Property::ACE_URL_Property (const ACE_URL_Property &p)
- : name_ (p.name_),
- value_ (p.value_)
-{
-}
-
-ACE_INLINE
-ACE_URL_Property::~ACE_URL_Property (void)
-{
-}
-
-ACE_INLINE ACE_URL_Property &
-ACE_URL_Property::operator= (const ACE_URL_Property &rhs)
-{
- if (this != &rhs)
- {
- this->name_ = rhs.name_;
- this->value_ = rhs.value_;
- }
- return *this;
-}
-
-ACE_INLINE int
-ACE_URL_Property::operator== (const ACE_URL_Property &rhs) const
-{
- if (this == &rhs || this->name_ != rhs.name_ ||
- this->value_ != rhs.value_)
- return 1;
- else
- return 0;
-}
-
-ACE_INLINE int
-ACE_URL_Property::operator!= (const ACE_URL_Property &rhs) const
-{
- return !(*this == rhs);
-}
-
-ACE_INLINE ACE_WString &
-ACE_URL_Property::name_rep (void)
-{
- return this->name_;
-}
-
-ACE_INLINE const ACE_WString &
-ACE_URL_Property::name (void) const
-{
- return this->name_;
-}
-
-ACE_INLINE void
-ACE_URL_Property::name (const char *n)
-{
- this->name_ = ACE_WString (n);
-}
-
-ACE_INLINE void
-ACE_URL_Property::name (const ACE_USHORT16 *n)
-{
- this->name_ = ACE_WString (n);
-}
-
-ACE_INLINE ACE_WString &
-ACE_URL_Property::value_rep (void)
-{
- return this->value_;
-}
-
-ACE_INLINE const ACE_WString &
-ACE_URL_Property::value (void) const
-{
- return this->value_;
-}
-
-ACE_INLINE void
-ACE_URL_Property::value (const char *v)
-{
- this->value_ = ACE_WString (v);
-}
-
-ACE_INLINE void
-ACE_URL_Property::value (const ACE_USHORT16 *v)
-{
- this->value_ = ACE_WString (v);
-}
-
-
-ACE_INLINE size_t
-ACE_URL_Property::size (void) const
-{
- size_t len = 2;
- len += this->name_.length () + this->value_.length ();
- return len * sizeof (ACE_USHORT16);
-}
-
-ACE_INLINE
-ACE_URL_Offer::ACE_URL_Offer (const size_t size, const char *url)
- : url_ (url),
- prop_ (size)
-{
-}
-
-ACE_INLINE
-ACE_URL_Offer::ACE_URL_Offer (const ACE_URL_Offer &o)
- : url_ (o.url_),
- prop_ (o.prop_)
-{
-}
-
-ACE_INLINE
-ACE_URL_Offer::~ACE_URL_Offer (void)
-{
-}
-
-ACE_INLINE ACE_URL_Offer &
-ACE_URL_Offer::operator= (const ACE_URL_Offer &rhs)
-{
- if (this != &rhs)
- {
- this->url_ = rhs.url_;
- this->prop_ = rhs.prop_;
- }
- return *this;
-}
-
-ACE_INLINE int
-ACE_URL_Offer::operator== (const ACE_URL_Offer &rhs) const
-{
- if (this == &rhs
- && this->url_ == rhs.url_
- && this->prop_ == rhs.prop_)
- return 1;
- else
- return 0;
-}
-
-ACE_INLINE int
-ACE_URL_Offer::operator!= (const ACE_URL_Offer &rhs) const
-{
- return !(*this == rhs);
-}
-
-ACE_INLINE ACE_WString &
-ACE_URL_Offer::url_rep (void)
-{
- return this->url_;
-}
-
-ACE_INLINE const ACE_WString &
-ACE_URL_Offer::url (void) const
-{
- return this->url_;
-}
-
-ACE_INLINE void
-ACE_URL_Offer::url (const ACE_USHORT16 *url)
-{
- this->url_ = ACE_WString (url);
-}
-
-ACE_INLINE void
-ACE_URL_Offer::url (const char *url)
-{
- this->url_ = ACE_WString (url);
-}
-
-ACE_INLINE ACE_URL_Property_Seq &
-ACE_URL_Offer::url_properties (void)
-{
- return this->prop_;
-}
-
-ACE_INLINE void
-ACE_URL_Offer::url_properties (const ACE_URL_Property_Seq &prop)
-{
- this->prop_ = prop;
-}
diff --git a/apps/JAWS/clients/Caching/http_client.cpp b/apps/JAWS/clients/Caching/http_client.cpp
deleted file mode 100644
index 9238ace3194..00000000000
--- a/apps/JAWS/clients/Caching/http_client.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps/JAWS/clients/Caching
-//
-// = FILENAME
-// http_client.cpp
-//
-// = DESCRIPTION
-// This is a very simple client. It accepts URLs from a prompt, and
-// will try to fetch them. Also accepts shell escapes.
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#include "http_handler.h"
-
-ACE_RCSID(Caching, http_client, "$Id$")
-
-int
-main (int, char *[])
-{
- // Present a command line.
- // * Accept a URL.
- // Pass it to the HTTP_Connector.
- // Connect.
- // Report status.
- // * Accept shell escape character.
-
- char buf[BUFSIZ];
-
- ACE_DEBUG ((LM_DEBUG, "* "));
-
- while (ACE_OS::fgets (buf, sizeof (buf), stdin) != NULL)
- {
- char *s = buf;
-
- while (isspace (*s))
- s++;
-
- if (*s == '!')
- {
- do
- s++;
- while (isspace (*s));
-
- // Shell command.
- if (ACE_OS::system (s) == -1)
- ACE_ERROR ((LM_ERROR, " ! Error executing: %s\n", s));
- }
- else if (ACE_OS::strncmp (s, "http://", 7) == 0)
- {
- // URL
- HTTP_Connector connector;
- connector.connect (s);
- }
- else
- ACE_ERROR ((LM_ERROR, " ? I don't understand: %s\n", s));
-
- ACE_ERROR ((LM_ERROR, "* "));
- }
-
- ACE_DEBUG ((LM_DEBUG, "\nBye!\n"));
-
- return 0;
-}
diff --git a/apps/JAWS/clients/Caching/http_handler.cpp b/apps/JAWS/clients/Caching/http_handler.cpp
deleted file mode 100644
index 7a1ceafd086..00000000000
--- a/apps/JAWS/clients/Caching/http_handler.cpp
+++ /dev/null
@@ -1,255 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps/JAWS/clients/Caching
-//
-// = FILENAME
-// http_handler.cpp
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#include "ace/Filecache.h"
-#include "http_handler.h"
-
-ACE_RCSID(Caching, http_handler, "$Id$")
-
-HTTP_Handler::HTTP_Handler (void)
-{
-}
-
-HTTP_Handler::HTTP_Handler (const char * path)
-{
- // How long is the request going to be?
- this->request_[0] = '\0';
- this->request_size_ =
- ACE_OS::strlen ("GET ")
- + ACE_OS::strlen (path)
- + ACE_OS::strlen (" HTTP/1.0\r\nAccept: HTTP/1.0\r\n\r\n");
-
- // Make the request.
- if ((u_int) this->request_size_ < sizeof (this->request_))
- ACE_OS::sprintf (this->request_,
- "GET %s HTTP/1.0\r\nAccept: HTTP/1.0\r\n\r\n",
- path);
-
- // Find the filename.
- const char *last = ACE_OS::strrchr (path, '/');
-
- if (last == 0)
- last = path;
- else if (last[1] == '\0')
- last = "index.html";
- else
- last = last+1;
-
- ACE_OS::sprintf (this->filename_, "%s", last);
-}
-
-int
-HTTP_Handler::open (void *)
-{
- // If you want threads, use the activate stuff.
-#if 0
- if (this->activate () != 0)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "HTTP_Handler::open, whups!\n"), -1);
- }
-
- return 0;
-#else
- return this->svc ();
-#endif /* 0 */
-}
-
-int
-HTTP_Handler::svc (void)
-{
- static char buf[BUFSIZ];
- int count = 0;
-
- ACE_DEBUG ((LM_DEBUG, "[%t] sending request --\n%s", this->request_));
-
- this->peer ().send_n (this->request_, this->request_size_);
-
- // Read in characters until encounter \r\n\r\n
- int done = 0;
- char *contentlength;
-
- do
- {
- while (((count += this->peer ().recv_n (buf + count, 1)) > 0)
- && ((u_int) count < sizeof (buf)))
- {
- buf[count] = '\0';
-
- if (count < 2)
- continue;
- done = ACE_OS::strcmp (buf + count - 4, "\n\n") == 0;
-
- if (done)
- break;
-
- if (count < 4)
- continue;
-
- done = ACE_OS::strcmp (buf + count - 4, "\r\n\r\n") == 0;
-
- if (done)
- break;
- }
-
- if (!done)
- {
- char *last = ACE_OS::strrchr (buf, '\n');
- last[0] = '\0';
-
- if ((contentlength = ACE_OS::strstr (buf, "\nContent-length:"))
- || (contentlength = ACE_OS::strstr (buf, "\nContent-Length:")))
- done = 1;
- else
- {
- last[0] = '\n';
- count = ACE_OS::strlen (last);
- ACE_OS::memmove (buf, last, count + 1);
- }
- }
- else
- {
- contentlength = ACE_OS::strstr (buf, "\nContent-length:");
-
- if (!contentlength)
- contentlength =
- ACE_OS::strstr (buf, "\nContent-Length:");
- }
-
- }
- while (!done);
-
- // ASSERT (contentlength != 0)
- if (contentlength
- && (::sscanf (contentlength, "\nContent-%*[lL]ength: %d ",
- &this->response_size_) == 1))
- {
- ACE_Filecache_Handle afh (this->filename_,
- this->response_size_);
-
- this->peer ().recv_n (afh.address (), this->response_size_);
-
- ACE_DEBUG ((LM_DEBUG,
- " ``%s'' is now cached.\n",
- this->filename_));
- }
- else
- {
- // Maybe we should do something more clever here, such as extend
- // ACE_Filecache_Handle to allow the creation of cache objects
- // whose size is unknown?
-
- // Another possibility is to write the contents out to a file,
- // and then cache it.
-
- // Perhaps make ACE_Filecache_Handle more savvy, and allow a
- // constructor which accepts a PEER as a parameter.
- ACE_DEBUG ((LM_DEBUG,
- "HTTP_Handler, no content-length header!\n"));
- }
-
- return 0;
-}
-
-const char *
-HTTP_Handler::filename (void) const
-{
- return this->filename_;
-}
-
-int
-HTTP_Connector::connect (const char * url)
-{
- char host[BUFSIZ];
- u_short port;
- char path[BUFSIZ];
-
- if (this->parseurl (url, host, &port, path) == -1)
- {
- ACE_DEBUG ((LM_DEBUG,
- "HTTP_Connector, error parsing url: %s\n",
- url));
- return -1;
- }
-
- HTTP_Handler hh (path);
- HTTP_Handler *hhptr = &hh;
-
- // First check the cache.
- if (ACE_Filecache::instance ()->find (hh.filename ()) == 0)
- {
- ACE_DEBUG ((LM_DEBUG, " ``%s'' is already cached.\n",
- hh.filename ()));
- return 0;
- }
-
- return this->connector_.connect (hhptr, ACE_INET_Addr (port, host));
-}
-
-#define DEFAULT_SERVER_PORT 80
-
-// extract the main components of a URL
-int
-HTTP_Connector::parseurl (const char *url,
- char *host,
- u_short *port,
- char *path)
-{
- int status = 0;
-
- // hackish, but useful
- if (3 != ::sscanf (url, "http://%[^:/]:%hu%s", host, port, path))
- {
- if (2 != ::sscanf (url, "http://%[^:/]:%hu", host, port))
- {
- if (2 != ::sscanf (url, "http://%[^:/]%s", host, path))
- {
- if (1 != ::sscanf (url, "http://%[^:/]", host))
- status = -1;
- else
- {
- *port = DEFAULT_SERVER_PORT;
- ACE_OS::strcpy (path, "/");
- }
- }
- else
- *port = DEFAULT_SERVER_PORT;
- }
- else ACE_OS::strcpy (path, "/");
- }
-
- // 0 => success
- // -1 => error
- return status;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Connector<HTTP_Handler, ACE_SOCK_CONNECTOR>;
-template class ACE_Svc_Tuple<HTTP_Handler>;
-template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-template class ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*>;
-template class ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*, ACE_SYNCH_RW_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Connector<HTTP_Handler, ACE_SOCK_CONNECTOR>
-#pragma instantiate ACE_Svc_Tuple<HTTP_Handler>
-#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-#pragma instantiate ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*>
-#pragma instantiate ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*, ACE_SYNCH_RW_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/clients/Caching/http_handler.h b/apps/JAWS/clients/Caching/http_handler.h
deleted file mode 100644
index ec736312c0e..00000000000
--- a/apps/JAWS/clients/Caching/http_handler.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file.
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps/JAWS/clients/Caching
-//
-// = FILENAME
-// http_handler.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#include "ace/Connector.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Connector.h"
-
-class HTTP_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
- // = TITLE
- // A simple HTTP protocol handler for clients.
- //
- // = DESCRIPTION
- // Checks to see if the requested file is already cached. If
- // so, it says so. If not, the request is issued to the
- // connection. The fetched file is cached.
-{
-public:
- // = Initialization methods.
- HTTP_Handler (void);
- HTTP_Handler (const char * path);
-
- virtual int open (void *);
- // Open hook.
-
- virtual int svc (void);
- // Entry points defined by the abstract Svc_Handler.
-
- const char *filename (void) const;
- // Accessor to the file being fetched.
-
-private:
- char request_[BUFSIZ];
- int request_size_;
-
- char filename_[BUFSIZ];
- int response_size_;
-};
-
-class HTTP_Connector
- // = TITLE
- // A simple HTTP connector.
- //
- // = DESCRIPTION
- // Creates an HTTP Handler based on the URL, and then delegates
- // to to the SOCK_CONNECTOR. Adapter pattern.
-{
-public:
- int connect (const char * url);
- // User entry point into the HTTP connector.
-
-private:
- int parseurl (const char *url,
- char *host,
- u_short *port,
- char *path);
- // Helper function.
-
-private:
- ACE_Connector<HTTP_Handler, ACE_SOCK_CONNECTOR> connector_;
- // Factory that actively establishes a connection with an HTTP
- // server.
-};
-
diff --git a/apps/JAWS/clients/Caching/test_URL.cpp b/apps/JAWS/clients/Caching/test_URL.cpp
deleted file mode 100644
index fdf7a632daa..00000000000
--- a/apps/JAWS/clients/Caching/test_URL.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-// $Id$
-
-#include "ace/streams.h"
-#include "Locator_Request_Reply.h"
-
-ACE_RCSID(Caching, test_URL, "$Id$")
-
-int main (int argc, char *argv[])
-{
- ACE_UNUSED_ARG (argc);
- ACE_UNUSED_ARG (argv);
-
- ACE_URL_Locator_Request original, derived;
-
- ACE_URL_Property_Seq ouch1(3);
- ouch1[0].name ("name 1");
- ouch1[0].value ("value 1");
- ouch1[1].name ("name 2");
- ouch1[1].value ("value 2");
- ouch1[2].name ("name 3");
- ouch1[2].value ("value 3");
-
- original.url_query (1, ouch1, 3);
-
- original.dump ();
- derived.dump ();
-
- original.encode ();
-
- derived.decode ((void*) original.buffer ());
-
- derived.dump ();
-
- return 0;
-}
diff --git a/apps/JAWS/clients/Caching/testing.dsp b/apps/JAWS/clients/Caching/testing.dsp
deleted file mode 100644
index f50189194cd..00000000000
--- a/apps/JAWS/clients/Caching/testing.dsp
+++ /dev/null
@@ -1,121 +0,0 @@
-# Microsoft Developer Studio Project File - Name="testing" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=testing - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "testing.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "testing.mak" CFG="testing - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "testing - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\testing\Debug"
-# PROP BASE Intermediate_Dir ".\testing\Debug"
-# PROP BASE Target_Dir ".\testing"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Debug"
-# PROP Target_Dir ".\testing"
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-# Begin Target
-
-# Name "testing - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\ID_Generator.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Local_Locator.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\URL_Locator.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\URL_Properties.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# Begin Source File
-
-SOURCE=.\ID_Generator.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Local_Locator.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\URL_Array_Helper.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\URL_Locator.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\URL_Properties.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# End Group
-# Begin Source File
-
-SOURCE=.\Local_Locator.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\URL_Array_Helper.cpp
-# PROP BASE Exclude_From_Build 1
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\URL_Locator.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\URL_Properties.i
-# End Source File
-# End Target
-# End Project
diff --git a/apps/JAWS/clients/Makefile b/apps/JAWS/clients/Makefile
deleted file mode 100644
index a09d6b017da..00000000000
--- a/apps/JAWS/clients/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for JAWS
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README
-
-DIRS = Blobby \
- Caching
-
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU
-
diff --git a/apps/JAWS/clients/Makefile.bor b/apps/JAWS/clients/Makefile.bor
deleted file mode 100644
index 2a119e447a0..00000000000
--- a/apps/JAWS/clients/Makefile.bor
+++ /dev/null
@@ -1,9 +0,0 @@
-
-!include <$(ACE_ROOT)\include\makeinclude\make_flags.bor>
-
-all:
- cd $(ACE_ROOT)\apps\JAWS\clients\Blobby
- $(MAKE) -f Makefile.bor $(MAKE_FLAGS)
- cd $(ACE_ROOT)\apps\JAWS\clients\Caching
- $(MAKE) -f Makefile.bor $(MAKE_FLAGS)
-
diff --git a/apps/JAWS/clients/README b/apps/JAWS/clients/README
deleted file mode 100644
index e35d7af53c9..00000000000
--- a/apps/JAWS/clients/README
+++ /dev/null
@@ -1,13 +0,0 @@
-This directory contains the source code for various clients related to
-JAWS, which is a high-performance HTTP Web server written with ACE. For
-more information on JAWS, please see
-
-http://www.cs.wustl.edu/~jxh/research/
-
-The subdirectories in this directory contain the following components
-
- . Blobby - a Blobby client
-
- . Caching - a Web client which caches
-
- . WebSTONE - modified to be multi-threaded
diff --git a/apps/JAWS/clients/WebSTONE/COPYING b/apps/JAWS/clients/WebSTONE/COPYING
deleted file mode 100644
index 13057b45514..00000000000
--- a/apps/JAWS/clients/WebSTONE/COPYING
+++ /dev/null
@@ -1,348 +0,0 @@
- While most of the source code in WebStone is covered by the terms
-in the file LICENSE, the following files are covered by the GNU license,
-reproduced below:
-
- config.guess
- config.sub
-
------------------------------
-
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/apps/JAWS/clients/WebSTONE/README b/apps/JAWS/clients/WebSTONE/README
deleted file mode 100644
index 2d024b925a1..00000000000
--- a/apps/JAWS/clients/WebSTONE/README
+++ /dev/null
@@ -1,245 +0,0 @@
-README WebStone 2.0.1 bug fix release
- Proxy server bug fixed (now correctly handles proxy server)
- Error reading page_stats error fixed
- More Windows NT integration
- Correctly handles URL's to different hostnames in the filelist
- Improved Solaris compatibility
-
- NOTE: If you intend to run webstone with more than 100 URL
-entries in the filelist, please edit src/bench.h and change the
-MAXNUMOFPAGES value to reflect the higher number, and then recompile
-everything. Copy the new binaries into the bin directory and then
-run webstone.
-
-README WebStone 2.0 Release version
-
-WARNING: WebStone 2.0 results should not be compared with WebStone 1.1
- results. Even under the same fileset performance will not be
- equivalent.
-
-Please see the notes for 2.0beta6 for quick and dirty install
- This version includes a port of the webstone source code to Windows
-NT. This port is still in progress, so it is not possible to guarantee
-that everything is working correctly - however in our test configurations
-it has performed correctly. Note that the supporting scripts and report
-generating code has not been ported to NT yet.
-
- This version also institutes some basic run rules to eliminate the
-lack of conformity in Webstone performance quotes.
- To report Webstone numbers, some basic rules should be followed:
-
- 1) The fileset used for the test must be the fileset.standard fileset
- included in the distribution. Tests of CGI performance must be
- with the file filelist.cgi-heavy, and tests of NSAPI performance
- must be carried out with filelist.dynamic-heavy
-
- 2) The run time should be set for 10 minutes, and the number of
- clients should vary from 20 clients to 100 clients in increments
- of 10. When a connections/second time is quoted, it must include
- information about the number of clients involved.
-
- 3) Any special TCP/IP tuning which the server has recieved should
- be documented, as well as HTTPD server version and configuration
- information such as logging, DNS lookups and number of threads.
-
-
-README - WebStone 2.0beta6
-
-WARNING: Do not compare WebStone 2.0 results with WebStone 1.0 results.
- WebStone 2.0 introduces significant changes in testing methodology
- and reporting.
-
-This is the WebStone benchmark. Quick and dirty install:
- - set up a Web server
- - put this directory (WebStone) on a seperate machine (the "controller")
- - "./webstone -setup", which does the following:
- - gui-configure
- This script may fail if you don't have a Web browser or
- Perl5. Don't worry, unless you want to use the GUI.
- - autoconf
- If the GNU autoconf fails for your OS, please forward the
- error messages, and any porting hints, to the author.
- - make install
- This may not be necessary, since IRIX binaries are included.
- - edit conf/testbed to reflect your site
- See the doc/FAQ-webstone.html for details.
- - ./webstone -genfiles will put the files in conf/fileset
- onto your Web server.
- - ./webstone
- - to display a table of results: ./webstone -results
-
-If you'd like to try out the GUI for WebStone:
- - run "./webstone -setup", as above.
- - make sure you have a Web browser installed
- - ./configure
- - ./webstone -gui
-
-Files of interest:
- README: This document.
- README.FIRST: Quick and dirty directions.
- README.DynamicWorkload: Information on the CGI and NSAPI workloads.
- webstone: wrapper shell script for everything.
- Takes options:
- -gui: start the GUI mode
- -kill: kill stray WebStone processes
- -genfiles: build files (from conf/fileset)
- and rcp onto the server $SERVER
- - results: print table of results
- -setup: initial make and setup
- -silent: runs in the background
- -tail: tail -f of most recent run
-
-Files of interest (./src):
- Makefile, *.c, *.h: The Webstone source code
-
-Files of interest (./bin):
- checkfilelist: uses rsh to check web server for files in filelist.
- genfiles, genrand: generates files of arbitrary length.
- getstats: Collects network statistics from Web server, clients.
- killbench: terminates stray WebStone processes.
- rebootall: reboots all WebStone webclients.
- runbench: wrapper script for WebStone.
- webmaster: WebStone controller executable.
- webstone: WebStone client executable.
- wscollect: reports results in tabular format.
-
-Files of interest (./conf):
- filelist: default list of files on the Web server,
- with workload description.
- filelist.photo: Model of a popular Web site
- containing photographic images.
- filelist.ss: Model of SGI's Silicon Surf WWW site.
- fileset: list of files for genfiles to create.
- testbed: config file describing Web server, client, and network setup.
-
-Documentation (./doc):
- FAQ.html: The FAQ, current as of this distribution.
- LICENSE: Legal status of WebStone.
- testbed.help: Explains the parameters in conf/testbed.
- webstone-white-paper.ps: The original WebStone white paper.
- webstone.gif: The WebStone logo.
-
-Additional documentation:
- FAQ.html: Frequently Asked Questions, with answers
- webstone.ps: PostScript white paper on WebStone
-
-Problems, etc. may be addressed to the WebStone mailing list.
-Read the FAQ for details.
-
-Release Notes (2.0 beta6):
- * fixed a bug for Web servers not on port 80
- * further changes to bin/wscollect.pl
-
-Release Notes (2.0 beta5):
- * numerous minor fixes suggested by gcc -Wall -pedantic
- * updated FAQ
- * changed bin/wscollect.pl to use Perl formats
-
-Release Notes (2.0 beta4):
- * added #include <sys/time.h> to bench.h
- * changed webclient located to $TMPDIR - this should help people
- who don't want to run WebStone as root
- * changed check for libm to floor() instead of sqrt(). Apparently
- some systems implement sqrt() in libc - let's hope no one implement
- floor() in libc and sqrt() in libm!
-
-Release Notes (2.0 beta3):
- * more portability fixes
- * successfully compiled on FreeBSD 2.2, IRIX without any source
- changes
-
-Release Notes (2.0 beta2):
- * additional timezone fixes for SunOS
-
-Release Notes (2.0 beta1):
- * fixed a bug in the rexec portion of webmaster.c
- * fixed a bug in the usage() routine of webmaster.c
- * added bin/genfiles-from-filelist.sh
- - bin/genfiles-from-filelist.sh <filename>
- - generates appropriate-length files from <filename>
- - <filename> must contain three fields:
- <relative URL> <weight> #<size in bytes>
- example: /file.html 1 #1024
- * added bin/mine-logs.pl
- - usage: mine-logs.pl <filename>
- where <filename> is an http server log file
- - writes a WebStone workload to standard output
-
-Release Notes (2.0 alpha5):
- * revised default testbed file
- * changed wscollect to wscollect.pl for consistency
- * changed webstone-gui to webstone-gui.pl for consistency
- * added some NT porting hints
- * added autoconf, which should help Linux and SunOS porting
-
-Release Notes (2.0 alpha4):
- * added SunOS and Linux portability elements
- * new scheme for random access to pages
- * converted several static arrays to dynamic pointers
-
-Release Notes (2.0 alpha2):
- * fixed per-page statistics
- * new, client-independent data-passing scheme
- * added support for proxy servers
-
-Release Notes (2.0 alpha1):
- * new filelist scheme - however, this breaks per-page statistics
- * minor fixes
-
-Release Notes (1.1):
- * Improved webclient performance by combining GET and ACCEPT
- HTTP headers in one write() call.
- * Improved webclient performance on systems that always attempt
- to map protocol names to numbers using YP.
- * WARNING: since the old code introduced a significant latency
- in some systems, DO NOT compare WebStone 1.1 results
- with results generated by any previous versions.
-
-Release Notes (1.0.3):
- * Netscape Server 1.1.2 exposed a couple bugs, which I've now fixed.
-
-Release Notes (1.0.2):
- * Fixed runbench so that ITERATIONS, MINCLIENTS, and MAXCLIENTS don't
- have to have a common denominator any more.
- * Fixed a few cosmetic bugs.
-
-Release Notes (1.0.1):
- * Fixed select() bug in webmaster
-
-Release Notes (1.0 final):
- * Fixed the "Error reading 2nd timing info" bug
- * Fixed numerous bugs in the GUI
- * Froze feature set. Work can now begin on WebStone 1.1
-
-Release Notes (1.0b3):
- * New Web browser GUI
- NOTE: most Web browsers take up substantial CPU time.
- If you run the GUI, we recommend that you make the controller
- a separate machine, and don't run any WebStone clients on it.
- * Minor bug fixes
- Squashed some dubious error messages, fixed some client-
- controller communications problems.
- * Reporting changes
- Changes the units and order of the final summary statistics.
- Basically, this is for my own convenience, so I don't have to
- massage the data quite so much before using it. wscollect
- now reports only the metrics I regard as important - but all
- metrics are still reported in the runs/*/run files.
-
-LEGAL STUFF:
-
-This file and all files contained in this directory are
-copyright 1995, Silicon Graphics, Inc.
-
-This software is provided without support and without any obligation on the
-part of Silicon Graphics, Inc. to assist in its use, correction, modification
-or enhancement. There is no guarantee that this software will be included in
-future software releases, and it probably will not be included.
-
-THIS SOFTWARE IS PROVIDED "AS IS" WITH NO WARRANTIES OF ANY KIND INCLUDING THE
-WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE,
-OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-
-In no event will Silicon Graphics, Inc. be liable for any lost revenue or
-profits or other special, indirect and consequential damages, even if
-Silicon Graphics, Inc. has been advised of the possibility of such damages. \ No newline at end of file
diff --git a/apps/JAWS/clients/WebSTONE/README.DynamicWorkload b/apps/JAWS/clients/WebSTONE/README.DynamicWorkload
deleted file mode 100644
index a263d1a8a0e..00000000000
--- a/apps/JAWS/clients/WebSTONE/README.DynamicWorkload
+++ /dev/null
@@ -1,37 +0,0 @@
-WebStone Dynamic Workload
-
- WebStone now includes a workload that tests dynamically generated
-Web pages.
-
- To use the dynamic workload models, you must install a dynamic module
-on the Web server to be tested. The Web server must also be configured such
-that a request for "/file.dyn-send?size=1024" (for example) will cause the
-module to be run, and will return 1024 bytes of data.
-
-Example configuration (Netscape server, executable is "nsapi-send"):
- cd src
- make nsapi
- cp nsapi-send.so /usr/lib
- cd /usr/ns-home/httpd-80/config
- in magnus.conf, add the line:
- Init fn=load-modules shlib=nsapi.so funcs=nsapi-send
- in obj.conf, add the line:
- Service method=(GET|HEAD) fn=nsapi-send \
- type=magnus-internal/dyn-send
- in mime.types, add the line:
- type=magnus-internal/dyn-send exts=dyn-send
- restart the Web server
-
- Example code for CGI and NS-API is included as src/cgi-send.c
-and src/nsapi-send.c - if you implement other APIs, please forward a copy
-of your code to the WebStone mailing list or to the WebStone authors.
-
-Included workloads:
- conf/workload.dynamic-heavy: All content is dynamically generated.
- conf/filelist.dynamic-medium: About 50% of content is dynamically
- generated.
- conf/filelist.dynamic-light: About 25% of content is dynamically
- generated.
-
-As always, we encourage you to design your own workloads, tailored for your
-environment.
diff --git a/apps/JAWS/clients/WebSTONE/README.FIRST b/apps/JAWS/clients/WebSTONE/README.FIRST
deleted file mode 100644
index b93c02afe3b..00000000000
--- a/apps/JAWS/clients/WebSTONE/README.FIRST
+++ /dev/null
@@ -1,21 +0,0 @@
-QUICK AND DIRTY README FOR WEBSTONE 2.0
-
-For more details, consult the README* files and the doc/FAQ-webstone.html
-
-First, run:
-
- ./webstone -setup
-
- This script uses GNU autoconf, makes the binaries, and then
-puts you into the vi editor with the conf/testbed file. For details on
-how to edit conf/testbed, consult the FAQ.
-
-Next, if you have a Web broswer available, and you'd like to try the GUI
-
- ./webstone -gui
-
-Otherwise, run the benchmark by typing
-
- ./webstone
-
-
diff --git a/apps/JAWS/clients/WebSTONE/WEBSTONE-VERSION-2.0 b/apps/JAWS/clients/WebSTONE/WEBSTONE-VERSION-2.0
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/apps/JAWS/clients/WebSTONE/WEBSTONE-VERSION-2.0
+++ /dev/null
diff --git a/apps/JAWS/clients/WebSTONE/bin/WebStone-common.pl b/apps/JAWS/clients/WebSTONE/bin/WebStone-common.pl
deleted file mode 100755
index 0e3ddd80ceb..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/WebStone-common.pl
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-
-1;
-
-sub show_model {
- $model = `head -1 $wd/conf/filelist`;
- $model =~ s/\#//;
- ( $model ) = split(':', $model);
-
- print CLIENT <<EOF
-<P><STRONG>
-<A HREF=\"$wd/bin/WebStone-setup.pl\">$model
-</A></STRONG>
-EOF
- ;
-}
-
-sub html_begin {
-
- ( $title ) = @_;
-
- close(STDOUT);
- open(STDOUT, ">&CLIENT");
- close(STDERR);
- open(STDERR, ">&CLIENT");
-
- print CLIENT <<EOF
-<HTML>
-<HEAD>
-<TITLE>WebStone $title</TITLE>
-<A HREF="$wd/doc/WebStone.html">
-<IMG SRC="$wd/doc/webstone.gif" ALT="WebStone" BORDER=0 ></A>
-<H1>World Wide Web Server Benchmarking</H1>
-<DL>
-<DT><EM>If you have any questions, please read the
-<A HREF="$wd/doc/FAQ-webstone.html">WebStone FAQ</A>.</EM>
-<HR>
-EOF
- ;
-
-}
-
-sub html_end {
-
- print CLIENT <<EOF
-<HR>
-<ADDRESS><A HREF="$wd/doc/LICENSE.html">copyright 1995 Silicon Graphics</A>
-</ADDRESS>
-</BODY>
-</HTML>
-EOF
- ;
-
- close(STDERR);
- close(STDOUT);
- open(STDOUT);
- open(STDERR);
-}
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/WebStone-manage.pl b/apps/JAWS/clients/WebSTONE/bin/WebStone-manage.pl
deleted file mode 100755
index e9d28e8fecf..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/WebStone-manage.pl
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-
-push(@INC, "$wd/bin");
-require('WebStone-common.pl');
-
-html_begin("Administration");
-
-$runsdir = "$wd/bin/runs";
-$thelength = length($runsdir) + 10;
-$oldrunsdir = $runsdir;
-$oldfilelist = "$wd/conf/filelist";
-
-print CLIENT <<EOF
-<FORM METHOD="POST" ACTION="$wd/bin/killbench.pl">
-<H3>Clean up stray WebStone processes</H3>
-<INPUT TYPE="SUBMIT" VALUE="Kill">
-</FORM>
-
-<HR>
-<FORM METHOD="POST" ACTION="$wd/bin/move-runs.pl">
-<H3>Move Results Directory to:</H3>
-<INPUT TYPE=TEXT NAME=runsdir SIZE=$thelength VALUE=$runsdir>
-<INPUT TYPE="SUBMIT" VALUE="Move Directory">
-</FORM>
-EOF
- ;
-
-html_end();
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/WebStone-run.pl b/apps/JAWS/clients/WebSTONE/bin/WebStone-run.pl
deleted file mode 100755
index 716cebfa602..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/WebStone-run.pl
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-
-$testbed = "conf/testbed";
-
-push(@INC, "$wd/bin");
-require('WebStone-common.pl');
-
-html_begin("Run");
-
-print CLIENT <<EOF
-<H3><CENTER><A HREF="WebStone-setup.pl">Edit Configuration</A>
-</CENTER></H3>
-EOF
- ;
-
-&show_model();
-print CLIENT "<PRE>";
-
-open(FILEHANDLE, $testbed);
-while (<FILEHANDLE>) {
- (/^\#/) || print CLIENT $_;
-}
-close(FILEHANDLE);
-
-print CLIENT <<EOF
-</PRE>
-<CENTER>
-<FORM METHOD=POST ACTION="http://localhost:$html_port$wd/bin/runbench.pl">
-<INPUT TYPE="submit" VALUE="Run WebStone">
-</CENTER>
-EOF
- ;
-
-html_end();
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/WebStone-setup.pl b/apps/JAWS/clients/WebSTONE/bin/WebStone-setup.pl
deleted file mode 100755
index 107e1d94890..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/WebStone-setup.pl
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-
-push(@INC, "$wd/bin");
-require('WebStone-common.pl');
-
-@keylist = ();
-
-html_begin("Setup");
-
-show_model();
-
-print CLIENT <<EOF
-<FORM METHOD="POST" ACTION="$wd/bin/write-testbed.pl">
-EOF
- ;
-
-&gettestbed();
-&getconfig();
-
-print CLIENT <<EOF
-</DL>
-<P><INPUT TYPE="SUBMIT" VALUE="Write Configuration">
-</FORM>
-
-<HR>
-<FORM METHOD="POST" ACTION="$wd/bin/move-filelist.pl">
-<H3>Choose a Web site model:</H3>
-<DL>
-EOF
- ;
-
-for $key (sort(keys %filelist)) {
- print CLIENT "<DD><INPUT TYPE=RADIO NAME=filelist ";
- if ($key eq "filelist") {
- print CLIENT " CHECKED ";
- }
- print CLIENT " VALUE=\"$wd/conf/$key\"> $key: $filelist{$key}";
-}
-
-print CLIENT <<EOF
-</DL>
-<INPUT TYPE="SUBMIT" VALUE="Set Workload">
-
-EOF
- ;
-
-html_end();
-
-# end of main program
-
-sub gettestbed {
- open(TESTBED, "$wd/conf/testbed");
- while (<TESTBED>) {
- if (/^\#|^(\w)*$/) { # do nothing
- }
- else {
- ( $textvalue, $thevalue ) = split( '=', $_ );
- ( $thevalue ) = split( '#', $thevalue);
- $testbed{$textvalue} = $thevalue;
- push(@keylist, $textvalue);
- }
- }
- close(TESTBED);
-
- open(HELPFILE, "$wd/doc/testbed.help");
- while (<HELPFILE>) {
- ( $key, $textvalue ) = split( ':', $_ );
- $helptext{$key} = $textvalue;
- }
- close(HELPFILE);
-
- foreach $key (@keylist) {
- print CLIENT "<P><DT>$helptext{$key}";
- $thesize = length($testbed{$key}) + 5;
- print CLIENT "<DD>$key <INPUT TYPE=TEXT NAME=$key ";
- print CLIENT "SIZE=$thesize VALUE=$testbed{$key}>\n";
- }
-}
-
-sub getconfig {
- opendir(CONF, "$wd/conf") || die "open $wd/conf: $!";
- %filelist = "";
- foreach $file (sort readdir(CONF)) {
- if ( $file =~ /^filelist.*/ ) {
- $headtext = `head -1 $wd/conf/$file`;
- $headtext =~ s/\#//;
- ( $headtext ) = split(':', $headtext);
- $filelist{$file} = $headtext;
- }
- }
- closedir(CONF);
-}
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/checkfilelist b/apps/JAWS/clients/WebSTONE/bin/checkfilelist
deleted file mode 100755
index 4cc2d11c49e..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/checkfilelist
+++ /dev/null
@@ -1,35 +0,0 @@
-#! /bin/sh
-
-#
-# NAME
-# checkfilelist - try retrieving files from server
-#
-# SYNOPSIS
-# checkfilelist servername portno filelist
-#
-#
-
-if test "$#" -lt 3 ; then
- echo "usage: $0 servername portno filelist"
- exit 2
-fi
-
-HOSTNAME=$1 ; export HOSTNAME
-PORTNO=$2 ; export PORTNO
-FILELIST=$3 ; export FILELIST
-
-grep '^/' $FILELIST | cut -f1 |
-(
-while read URL
-do
- export URL
- echo ">>>>> $URL"
- (
- telnet $HOSTNAME $PORTNO << _EOF_
-GET $URL HTTP/1.0
-
-_EOF_
- ) 2> /dev/null | head -5 | grep 'HTTP/1.0'
- killall telnet
-done
-)
diff --git a/apps/JAWS/clients/WebSTONE/bin/genfiles b/apps/JAWS/clients/WebSTONE/bin/genfiles
deleted file mode 100755
index d5f06aee6df..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/genfiles
+++ /dev/null
@@ -1,41 +0,0 @@
-#! /bin/sh
-#
-
-# get configuration
-. $WEBSTONEROOT/conf/testbed
-
-cat $WEBSTONEROOT/conf/fileset |
-nawk '
-($1 ~ /^[0-9][0-9]*[kK][bB]*$/) {
- sub(/[kK][bB]*/, "", $1);
- cmd = "$WEBSTONEROOT/bin/genrand " $1*1024 " " $2
- print cmd;
- system(cmd);
- next
-}
-
-($1 ~ /^[0-9][0-9]*[mM][bB]*$/) {
- sub(/[kK][bB]*/, "", $1);
- cmd = "$WEBSTONEROOT/bin/genrand " $1*1024*1024 " " $2
- print cmd;
- system(cmd);
- next
-}
-
-($1 ~ /^[0-9][0-9]*$/) {
- sub(/[kK][bB]*/, "", $1);
- cmd = "$WEBSTONEROOT/bin/genrand " $1 " " $2
- print cmd;
- system(cmd);
- next
-} ' $*
-
-# copy files
-files=`cat $WEBSTONEROOT/conf/fileset | cut -f2 -d' '`
-for f in $files
-do
- $RCP $f $SERVER:$WEBDOCDIR
- rm -f $f
-done
-
-#end
diff --git a/apps/JAWS/clients/WebSTONE/bin/genfiles-from-filelist.sh b/apps/JAWS/clients/WebSTONE/bin/genfiles-from-filelist.sh
deleted file mode 100755
index 1293709238c..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/genfiles-from-filelist.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/sh
-#
-
-# get configuration
-[ -n "$WEBSTONEROOT" ] || WEBSTONEROOT=`pwd`/..
-. $WEBSTONEROOT/conf/testbed
-
-case $# in
- 1)
- FILELIST=$1
- ;;
- *)
- FILELIST=$WEBSTONEROOT/conf/filelist
- ;;
-esac
-
-TIMESTAMP=`date +"%y%m%d_%H%M"`
-mkdir $TMPDIR/webstone-genfiles.$TIMESTAMP
-cd $TMPDIR/webstone-genfiles.$TIMESTAMP
-
-cat $FILELIST |
-nawk '
-($3 ~ /^\#[0-9]*/) {
- sub(/^\#/, "", $3);
- cmd = WEBSTONEROOT "/bin/genrand " $3 " ."$1
- print cmd;
- system(cmd);
- cmd = RCP " ." $1 " " SERVER ":" WEBDOCDIR
- print cmd;
- system(cmd);
- cmd = "rm -f ." $1
- print cmd;
- system(cmd);
- next
-}
-' $* WEBSTONEROOT=$WEBSTONEROOT RCP=$RCP SERVER=$SERVER WEBDOCDIR=$WEBDOCDIR
-
-cd $TMPDIR
-rm -rf $TMPDIR/webstone-genfiles.$TIMESTAMP
-
-#end
diff --git a/apps/JAWS/clients/WebSTONE/bin/gui-configure b/apps/JAWS/clients/WebSTONE/bin/gui-configure
deleted file mode 100755
index dcea4e3fe1c..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/gui-configure
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/bin/sh -- because we're not sure where perl is yet
-#
-
-'true' || eval 'exec perl -S $0 $argv:q';
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
-& eval 'exec /usr/local/bin/perl -S $0 $argv:q'
- if 0;
-
-# Usage: [perl] configure [file]
-#
-# This replaces the program paths (e.g. /bin/awk) with an
-# alternate path that is found in the file "file.paths". It also finds
-# perl5 and changes the path in all the stand-alone perl programs.
-#
-
-$debug = 0;
-
-#
-# Target shell scripts in question:
-@shell_scripts=("conf/paths.pl", "conf/paths.sh");
-@perl5_src = < bin/webstone-gui.pl bin/WebStone-common.pl bin/killbench.pl bin/view-results.pl bin/WebStone-manage.pl bin/move-filelist.pl bin/write-testbed.pl bin/WebStone-run.pl bin/move-runs.pl bin/WebStone-setup.pl bin/runbench.pl >;
-@perl_src = < bin/wscollect.pl bin/mine-logs.pl >;
-@benchmark_dir_src = < webstone bin/killbench bin/runbench >;
-
-# all the HTML browsers we know about, IN ORDER OF PREFERENCE!
-@all_www= ("netscape", "Mosaic", "xmosaic", "lynx");
-
-#
-# Potential directories to find commands; first, find the user's path...
-$PATH = $ENV{"PATH"};
-
-# additional dirs; *COLON* separated!
-$other_dirs="/usr/ccs/bin:/bin:/usr/bin:/usr/ucb:/usr/bsd:/usr/ucb/bin:/usr/sbin:/usr/etc:/usr/local/bin:/usr/bin/X11:/usr/X11/bin:/usr/openwin/bin";
-
-#
-# split into a more reasonable format. Personal aliases come last.
-@all_dirs = split(/:/, $other_dirs . ":" . $PATH);
-
-print "checking to make sure all the target(s) are here...\n";
-
-for (@shell_scripts) {
- die "ERROR -- $_ not found!\n" unless -f $_;
- }
-
-# find perl
-print "Trying to find perl...\n";
-for $dir (@all_dirs) {
- # first, find where it might be
- next if (! -d $dir);
- while (<$dir/perl*>) {
- if (-x $_) {
- $perl_version=`($_ -v 2> /dev/null) |
- awk '/This is perl/ { print $NF }'`;
- if ($perl_version) {
- $PERL=$_;
- $pflag="1";
- last;
- }
- }
- last if $pflag;
- }
- last if $pflag;
- }
-
-if ($PERL) {
- print "\nPerl is in $PERL\n";
- for (@perl_src) { $perl_src .= "$_ "; }
- print "\nchanging the source in: $perl_src\n";
- system "$PERL -pi -e \"s@^#!.*/perl.*@#!$PERL@;\" $perl_src";
-
- # make sure things are executable...
- system("chmod u+x $perl_src");
-}
-else
-{
- printf "\nSome WebStone functions require Perl\n" unless $PERL;
-}
-# end if $PERL
-
-# find perl5
-$pflag = 0;
-print "Trying to find perl5...\n";
-for $dir (@all_dirs) {
- # first, find where it might be; oftentimes you'll see perl,
- # perl4, perl5, etc. in the same dir
- next if (! -d $dir);
- while (<$dir/perl5* $dir/perl*>) {
- if (-x $_) {
- $perl_version=`($_ -v 2> /dev/null) |
- awk '/This is perl, version 5/ { print $NF }'`;
- if ($perl_version) {
- $PERL5=$_;
- $pflag="1";
- last;
- }
- }
- last if $pflag;
- }
- last if $pflag;
-}
-
-if ($PERL5) {
- print "\nPerl5 is in $PERL5\n";
-
- for (@perl5_src) { $perl5_src .= "$_ "; }
- print "\nchanging the source in: $perl5_src\n";
- system "$PERL5 -pi -e \"s@^#!.*/perl.*@#!$PERL5@;\" $perl5_src";
- system("chmod u+x $perl5_src");
-}
-else
-{
- printf "\nThe WebStone GUI requires Perl5\n" unless $PERL5;
-}
-#end if $PERL5
-
-# find the most preferred www viewer first.
-for $www (@all_www) {
- for $dir (@all_dirs) {
- if (!$MOSAIC) {
- if (-x "$dir/$www") {
- $MOSAIC="$dir/$www";
- next;
- }
- }
- }
- }
-if ($MOSAIC) {
- print "\nHTML/WWW Browser is $MOSAIC\n";
-
- $upper{"MOSAIC"} = $MOSAIC;
- }
-else { print "Cannot find a web browser! WebStone cannot be run except in CLI"; }
-
-print "\nOk, now doing substitutions on the shell scripts...\n";
-for $shell (@shell_scripts) {
- print "Changing paths in $shell...\n";
- die "Can't open $shell\n" unless open(SCRIPT, $shell);
- rename($shell, $shell . '.old');
- die "Can't open $shell\n" unless open(OUT, ">$shell");
-
- #
- # Open up the script, search for lines beginning with
- # stuff like "TEST", "AWK", etc. If the file ends in "pl",
- # assume it's a perl script and change it accordingly
- while (<SCRIPT>) {
- $found = 0;
- for $command (keys %upper) {
- if(/^\$?$command=/) {
- # shell script
- if ($shell !~ /.pl$/) {
- print OUT "$command=$upper{$command}\n"; }
- # perl script
- else {
- print OUT "\$" . "$command=\"$upper{$command}\";\n";
- }
- $found = 1;
- }
- }
- print OUT $_ if !$found;
-
- }
- close(SCRIPT);
- close(OUT);
- }
-
-
-for (@benchmark_dir_src) { $benchmark_dir_src .= "$_ "; }
-print "\nchanging the source in: $benchmark_dir_src\n";
-$BENCHMARK_DIR=`pwd`;
-chop $BENCHMARK_DIR;
-$BENCHMARK_DIR =~ s/\//\\\//g;
-system "$PERL -pi -e \"s/<BENCHMARK_DIR>/$BENCHMARK_DIR/\" $benchmark_dir_src";
-
-# done...
diff --git a/apps/JAWS/clients/WebSTONE/bin/killbench b/apps/JAWS/clients/WebSTONE/bin/killbench
deleted file mode 100755
index 2997d891dca..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/killbench
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh -x
-#
-# get configuration
-. $WEBSTONEROOT/conf/testbed
-
-for i in $CLIENTS
-do
- $RSH -l root $i /etc/killall $1 webclient
-done
-#
-sleep 1
-/etc/killall $1 webmaster
-/etc/killall $1 runbench
diff --git a/apps/JAWS/clients/WebSTONE/bin/killbench.pl b/apps/JAWS/clients/WebSTONE/bin/killbench.pl
deleted file mode 100755
index 42c616a79e0..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/killbench.pl
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-
-push(@INC, "$wd/bin");
-require('WebStone-common.pl');
-
-html_begin();
-
-print CLIENT "<P>Killing WebStone processes<PRE>";
-system("$wd/bin/killbench");
-print CLIENT "</PRE><P>Done.";
-
-html_end();
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/mine-logs.pl b/apps/JAWS/clients/WebSTONE/bin/mine-logs.pl
deleted file mode 100755
index 1b721aa46ae..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/mine-logs.pl
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/pkg/gnu/bin//perl
-#
-# mine-logs.pl:
-# script to transform access logs into WebStone workload
-#
-# created 18 December 1995 mblakele@engr.sgi.com
-#
-# functional map:
-# usage: mine-logs.pl access.log
-#
-# 1. For each line in the input
-# a. parse the URL and the time, the outcome code, and the size
-# b. if the code is 200, and it's a GET,
-# do we already know about this URL?
-# i. yes - increment its counter
-# ii. no - create a slot for it, record size,
-# and set counter=1
-#
-
-$debug = 0;
-$line_number = 0;
-
-while (<>) {
- chomp;
-
- $line_number++;
- ($line_number % 1000) || printf STDERR ".";
- # parse line
- ( $client, $junk1, $junk2, $date, $timezone,
- $command, $url, $version, $result_code, $size ) =
- split;
- # strip some junk
- $command =~ s/\"//;
- $date =~ s/\[//;
-
- ($debug) && printf STDERR "$client, $date, $command, $url, $result_code, $size\n";
-
- # is it a GET? Did it succeed? (i.e., is the result code 200?)
- if (($command eq 'GET') && ($result_code == 200)) {
- # is this URL already in the key set?
- if (exists $counter{$url}) {
- # URL is in key set
- ($debug) && printf STDERR "URL $url already in key set: incrementing\n";
- $counter{$url}++;
- if ($size == $size{$url}) {
- ($debug) && printf STDERR "size mismatch on $url: $size != $size{$url}\n";
- if ($size <=> $size{$url}) { $size{$url} = $size; }
- }
- }
- else {
- # URL isn't in key set
- ($debug) && printf STDERR "URL $url isn't in key set: adding size $size\n";
- $counter{$url} = 1;
- $size{$url} = $size;
- }
- # end if key set
- } # end if GET
-}
-# end of input file
-printf STDERR "\n";
-
-# now we print out a workload file
-
-# first, the headline
-$date = `date`;
-chomp($date);
-printf "# WebStone workload file\n# \tgenerated by $0 $date\n#\n";
-
-# next, sort the keys
-@sorted_keys = sort by_counter keys(%counter);
-
-# iterate through sorted keys
-foreach $key (@sorted_keys) {
- # print url, weighting, and (commented) the size in bytes
- ($debug) && printf STDERR "printing data for $key\n";
- printf "$key\t$counter{$key}\t#$size{$key}\n";
-}
-# end foreach
-
-# end main
-
-sub
-by_counter {
- $counter{$b} <=> $counter{$a};
-}
-# end by_counter
-
-# end mine-logs.pl
diff --git a/apps/JAWS/clients/WebSTONE/bin/move-filelist.pl b/apps/JAWS/clients/WebSTONE/bin/move-filelist.pl
deleted file mode 100755
index 0155b83f972..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/move-filelist.pl
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-
-push(@INC, "$wd/bin");
-require('WebStone-common.pl');
-
-$oldfilelist = "$wd/conf/filelist";
-
-html_begin();
-
-if ($filelist ne $oldfilelist) {
- $backup = $oldfilelist . ".bak";
- print CLIENT "<BODY>Backing up $oldfilelist to $backup";
- rename($oldfilelist, $backup);
- print CLIENT "<P>Copying $filelist to $oldfilelist";
- link($filelist, $oldfilelist);
- print CLIENT "<P>Done.";
-}
-else
-{
- print CLIENT "<STRONG>Can't move $filelist <P>to $filelist</STRONG>";
-}
-
-html_end();
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/move-runs.pl b/apps/JAWS/clients/WebSTONE/bin/move-runs.pl
deleted file mode 100755
index a4ca528f034..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/move-runs.pl
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-
-push(@INC, "$wd/bin");
-require('WebStone-common.pl');
-
-html_begin();
-
-if ($runsdir ne $oldrunsdir) {
- print CLIENT "<BODY>Moving $oldrunsdir to $runsdir...";
- if (-e $runsdir) {
- print CLIENT "<STRONG>Error: $runsdir already exists!</STRONG>";
- }
- rename($oldrunsdir, $runsdir);
- print CLIENT "<P>Done.";
-}
-else
-{
- print CLIENT "<STRONG>Can't move $runsdir <P>to $oldrunsdir</STRONG>";
-}
-
-html_end();
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/rebootall b/apps/JAWS/clients/WebSTONE/bin/rebootall
deleted file mode 100755
index 2de65110027..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/rebootall
+++ /dev/null
@@ -1,9 +0,0 @@
-#! /bin/sh -x
-
-# get configuration
-. $WEBSTONEROOT/conf/testbed
-
-for i in $CLIENTS
-do
- $RSH -l root $i "sleep 5 ; init 6" &
-done
diff --git a/apps/JAWS/clients/WebSTONE/bin/runbench b/apps/JAWS/clients/WebSTONE/bin/runbench
deleted file mode 100755
index 409351f8f55..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/runbench
+++ /dev/null
@@ -1,193 +0,0 @@
-#!/bin/sh
-# $Header$
-# set -x
-set +x
-[ -n "$WEBSTONEROOT" ] || WEBSTONEROOT=`pwd`/../
-
-case $# in
- 1)
- FILELIST=$1
- ;;
- *)
- FILELIST=$WEBSTONEROOT/conf/filelist
- ;;
-esac
-
-# load configurations
-. $WEBSTONEROOT/conf/testbed
-
-[ -n "$DEBUG" ] && set +x
-
-# check variables
-[ -n "$ITERATIONS" ] || ITERATIONS="1"
-[ -n "$MINCLIENTS" ] || MINCLIENTS="1"
-[ -n "$MAXCLIENTS" ] || MAXCLIENTS="1"
-[ -n "$CLIENTINCR" ] || CLIENTINCR="1"
-[ -n "$TIMEPERRUN" ] || TIMEPERRUN="1"
-# don't care about PROXYSERVER
-[ -n "$SERVER" ] || SERVER="www"
-[ -n "$PORTNO" ] || PORTNO="80"
-# [ -n "$SERVERINFO" ] || SERVERINFO="uname -a"
-# OSTUNINGFILES
-# WEBSERVERDIR
-# WEBDOCDIR
-# WEBSERVERTUNINGFILES
-[ -n "$CLIENTS" ] || CLIENTS="localhost"
-[ -n "$CLIENTACCOUNT" ] || CLIENTACCOUNT=$USER
-[ -n "$CLIENTPASSWORD" ] || CLIENTPASSWORD=$CLIENTACCOUNT
-# [ -n "$CLIENTINFO" ] || CLIENTINFO="uname -a"
-[ -n "$TMPDIR" ] || TMPDIR="/tmp"
-[ -n "$RCP" ] || RCP="rcp"
-[ -n "$RSH" ] || RSH="rsh"
-
-export ITERATIONS MINCLIENTS MAXCLIENTS CLIENTINCR TIMEPERRUN
-export SERVER PORTNO SERVERINFO
-export CLIENTS CLIENTACCOUNT CLIENTPASSWORD CLIENTINFO
-export TMPDIR RCP RSH
-
-echo "Clients: " $CLIENTS
-
-#
-# Estimate run time
-#
-NUMCLIENTHOSTS=`echo $CLIENTS | wc -w`
-TRIALS=`expr 1 + \( $MAXCLIENTS - $MINCLIENTS \) / $CLIENTINCR`
-RUNTIME=`expr 60 \* $ITERATIONS \* $TRIALS \* $TIMEPERRUN`
-RUNTIME=`expr $RUNTIME + $TRIALS \* \( $MAXCLIENTS + $MINCLIENTS \) \
- / \( 2 \* $NUMCLIENTHOSTS \)`
-
-echo "Estimated run time:" `expr $RUNTIME / 3600` "hours" \
- `expr $RUNTIME % 3600 / 60` "minutes"
-
-#
-# Checking for valid set of benchmark files to retrieve
-#
-#if [ -z "$PROXYSERVER" ]
-#then
-# echo "Checking for a valid set of benchmark files"
-# CHECKLISTTMP=$TMPDIR/webstone-checkfilelist.$$
-# rm -f $CHECKFILELISTTMP
-# $WEBSTONEROOT/bin/checkfilelist $SERVER $PORTNO $FILELIST > $CHECKLISTTMP 2>&1
-# if [ `grep -c ' 4[0-9][0-9] '< $CHECKLISTTMP` -gt 0 ]
-# then
-# echo "ERROR: not all files in filelist are on server:"
-# echo "----- checkfilelist results -----"
-# cat $CHECKLISTTMP
-# echo "----- checkfilelist results -----"
-# rm -f $CHECKLISTTMP
-# exit 1
-# else
-# echo "OK: All files found"
-# fi
-# rm -f $CHECKLISTTMP
-#fi
-# end if $PROXYSERVER
-
-#
-# distribute webclient binary
-#
-for i in $CLIENTS
-do
- $RCP $WEBSTONEROOT/bin/webclient $i:$TMPDIR #/usr/local/bin
-done
-
-# BEGIN iterations
-J=1
-while [ $J -le $ITERATIONS ]
-do
- NUMCLIENTS=$MINCLIENTS
- while [ $NUMCLIENTS -le $MAXCLIENTS ]
- do
- echo "***** Iteration $J, Total clients "`expr $NUMCLIENTS`" **********"
- date
- TIMESTAMP=`date +"%y%m%d_%H%M"`
- LOGDIR=$WEBSTONEROOT/bin/runs/$TIMESTAMP
-
- #
- # nuke debug files
- #
- for client in $CLIENTS
- do
- $RSH $client "rm /tmp/webstone-debug*" > /dev/null 2>&1
- done
-
- mkdir -p $LOGDIR
- rm -f $LOGDIR/config
- touch $LOGDIR/config
- CLIENTSPERHOST=`expr $NUMCLIENTS / $NUMCLIENTHOSTS`
- EXTRACLIENTS=`expr $NUMCLIENTS % $NUMCLIENTHOSTS`
-
- for i in $CLIENTS
- do
- if [ $EXTRACLIENTS -gt 0 ]
- then
- echo "$i $CLIENTACCOUNT $CLIENTPASSWORD `expr $CLIENTSPERHOST + 1`" \
- >> $LOGDIR/config
- EXTRACLIENTS=`expr $EXTRACLIENTS - 1`
- else
- echo "$i $CLIENTACCOUNT $CLIENTPASSWORD $CLIENTSPERHOST" \
- >> $LOGDIR/config
- fi
- done
- cp $FILELIST $LOGDIR/`basename $FILELIST`
-
- #
- # Put test configuration files on clients
- #
- for i in $CLIENTS localhost
- do
- $RSH $i "rm -f $TMPDIR/config $TMPDIR/`basename $FILELIST`"
- $RCP $LOGDIR/config $i:$TMPDIR/config
- $RCP $LOGDIR/`basename $FILELIST` $i:$TMPDIR/filelist
- done
-
- #
- # Get starting configuration and stats from each participant
- #
- $RSH $SERVER "$SERVERINFO" > $LOGDIR/hardware.$SERVER 2>&1
- for i in $CLIENTS
- do
- $RSH $i "$CLIENTINFO" > $LOGDIR/hardware.$i 2>&1
- done
-
- # set -x
- for i in $OSTUNINGFILES $WEBSERVERTUNINGFILES
- do
- $RCP $SERVER:$i $LOGDIR
- done
- set +x
-
- #
- # Run benchmark
- #
- date
- CMD="$WEBSTONEROOT/bin/webmaster -v -u $TMPDIR/filelist"
- CMD=$CMD" -f $TMPDIR/config -l $TIMEPERRUN"
- [ -n "$SERVER" ] && CMD=$CMD" -w $SERVER"
- [ -n "$PORTNO" ] && CMD=$CMD" -p $PORTNO"
- [ -n "$PROXYSERVER" ] && CMD=$CMD" -P $PROXYSERVER"
- [ -n "$DEBUG" ] && CMD=$CMD" -d"
- echo $CMD
-
- # dump environment into $LOGDIR
- rm -rf $LOGDIR/controller.env
- env > $LOGDIR/controller.env
-
- $CMD | tee $LOGDIR/run
-
- #
- # Get ending configuration and stats from each participant
- #
- date
- #for i in $SERVER $CLIENTS
- #do
- #$WEBSTONEROOT/bin/getstats $i > $LOGDIR/end.$i 2>&1
- #done
- #date
- NUMCLIENTS=`expr $NUMCLIENTS + $CLIENTINCR`
- done
- # while NUMCLIENTS
- J=`expr $J + 1`
-done
-# while J
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/runbench.pl b/apps/JAWS/clients/WebSTONE/bin/runbench.pl
deleted file mode 100755
index 81071504f1a..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/runbench.pl
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-
-push(@INC, "$wd/bin");
-require('WebStone-common.pl');
-require('flush.pl');
-
-# force flush after every write or print
-$| = 1;
-
-html_begin("In Progress");
-
-print CLIENT "<H3><CENTER>Running WebStone</CENTER></H3><PRE>";
-show_model();
-&flush(CLIENT);
-&flush(STDOUT);
-
-&start_runbench();
-
-print CLIENT <<EOF
-<TITLE>WebStone Completed</TITLE>
-</PRE><CENTER>
-<FORM METHOD=POST ACTION="http://localhost:$html_port$wd/bin/view-results.pl">
-<INPUT TYPE="submit" VALUE="View Results">
-</CENTER>
-EOF
- ;
-
-html_end();
-
-sub start_runbench {
- $command = "cd $wd/bin; ./runbench";
- system($command);
-}
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/tabs2html b/apps/JAWS/clients/WebSTONE/bin/tabs2html
deleted file mode 100755
index 8c7d851c357..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/tabs2html
+++ /dev/null
@@ -1,13 +0,0 @@
-#! /bin/sh
-
-nawk '
-BEGIN { FS=" " ; print "<BODY><TABLE>" }
-{
- print "<TR ALIGN=RIGHT VALIGN=BOTTOM>"
- for (i=1; i <= NF; i++) {
- print "<TD>" $i "</TD>"
- }
- print "</TR>"
-}
-END { print "</TABLE></BODY>" }
-' $*
diff --git a/apps/JAWS/clients/WebSTONE/bin/view-results.pl b/apps/JAWS/clients/WebSTONE/bin/view-results.pl
deleted file mode 100755
index 7ff961efcca..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/view-results.pl
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-push(@INC, "$wd/bin");
-require('WebStone-common.pl');
-
-require('wscollect.pl');
-
-$debug = 0;
-
-$printedTitles = 0;
-
-html_begin("Results");
-
-print CLIENT "<H3>WebStone Results</H3>";
-
-($debug) && print STDERR "opening table\n";
-print CLIENT "<BODY><TABLE BORDER=1>\r";
-
-@directories = ("$wd/bin/runs");
-directory: for (@directories) {
- &find($_);
-}
-
-($debug) && print STDERR "closing table\n";
-print CLIENT "</TABLE></BODY>\r";
-
-html_end();
-
-# end main
-
-sub printcustom {
- if (!$printedTitles) {
- $printedTitles = 1;
- print CLIENT "<TR>";
- for $title (@title) {
- print CLIENT "<TH>$title</TH>\r";
- } # end for title
- print CLIENT "</TR>\r";
- }
- print CLIENT "<TR>";
- $first_column = 1;
- for $data (@data) {
- if ($first_column) {
- $first_column = 0;
- print CLIENT "<TD><A HREF=$wd/bin/runs/$data>$data</A></TD>\r";
- } else {
- print CLIENT "<TD ALIGN=RIGHT>$data</TD>\r";
- }
- } # end for data
- print CLIENT "</TR>\r";
-}
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/webstone-gui.pl b/apps/JAWS/clients/WebSTONE/bin/webstone-gui.pl
deleted file mode 100755
index 006cd9eba7c..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/webstone-gui.pl
+++ /dev/null
@@ -1,316 +0,0 @@
-#!/pkg/gnu/bin//perl5
-
-require 'conf/paths.pl';
-
-#$debug = 1;
-$HELPME="http://reality.sgi.com/employees/mblakele_engr/WebStone/";
-$| = 1; # set pipes to hot
-
-&html();
-
-sub html {
- local($helper, $wd);
-
- &start_html_server();
- # These strings are used in, among others, PERL-to-HTML scripts.
- #
- $wd = `pwd`;
- chop $wd;
-
- print "$html_port\n" if $debug;
-
- $HTML_STARTPAGE = "http://localhost:$html_port$wd/doc/WebStone.html";
-
- #
- # Fork off the HTML client, and fork off a server process that
- # handles requests from that client. The parent process waits
- # until the client exits and terminates the server.
- #
- print "Starting $MOSAIC...\n" if $debug;
-
- if (($client = fork()) == 0) {
- foreach (keys %ENV) {
- delete $ENV{$_} if (/proxy/i && !/no_proxy/i);
- }
- exec($MOSAIC, "$HTML_STARTPAGE")
- || die "cannot exec $MOSAIC: $!";
- }
-
- if (($server = fork()) == 0) {
- if (($helper = fork()) == 0) {
- alarm 3600;
- &patience();
- }
- kill 'TERM',$helper;
- $SIG{'PIPE'} = 'IGNORE';
- for (;;) {
- accept(CLIENT, SOCK) || die "accept: $!";
- select((select(CLIENT), $| = 1)[0]);
- &process_html_request();
- close(CLIENT);
- }
- }
-
- #
- # Wait until the client terminates, then terminate the server.
- #
- close(SOCK);
- waitpid($client, 0);
- kill('TERM', $server);
- exit;
-}
-
-#
-# Set up a listener on an arbitrary port. There is no good reason to
-# listen on a well-known port number.
-#
-sub start_html_server {
- local($sockaddr, $proto, $junk);
-
- $AF_INET = 2;
- $SOCK_STREAM = 2;
- $PORT = 0; #1024;
-
- $sockaddr = 'S n a4 x8';
- $this = pack($sockaddr, $AF_INET, $PORT, "\0\0\0\0");
- ($junk, $junk, $proto) = getprotobyname('tcp');
- socket(SOCK, $AF_INET, $SOCK_STREAM, $proto) || die "socket: $!";
- setsockopt(SOCK, 0xffff, 0x0004, 1) || die "setsockopt: $!";
- bind(SOCK, $this) || die "bind: $!";
- listen(SOCK, 1) || die "listen: $!";
- ($junk, $html_port) = unpack($sockaddr, getsockname(SOCK));
-}
-
-
-#
-# Process one client request. We expect the client to send stuff that
-# begins with:
-#
-# command /password/perl_script junk
-#
-# Where perl_script is the name of a perl file that is executed via
-# do "perl_script";
-#
-# In case of a POST command the values in the client's attribute-value
-# list are assigned to the corresponding global PERL variables.
-#
-sub process_html_request {
- local($request, $command, $script, $magic, $url, $peer);
- local(%args);
-
- #
- # Parse the command and URL. Update the default file prefix.
- #
- $request = <CLIENT>;
- print $request if $debug;
- ($command, $url) = split(/\s+/, $request);
- if ($command eq "" || $command eq "QUIT") {
- return;
- }
-
- #($junk, $script) = split(/\//, $url, 2);
- #($script, $html_script_args) = split(',', $script, 2);
- #($HTML_CWD = "file:$script") =~ s/\/[^\/]*$//;
- $script = $url;
-
- while (<CLIENT>) {
- last if (/^\s+$/);
- }
-
- if ($command eq "GET") {
- if (-d $script) {
- get_dir($script);
- }
- elsif ($script =~ /\.pl\b/) {
- perl_html_script($script);
- }
- else {
- get_file($script);
- }
- } elsif ($command eq "POST") {
-
- print $request if $debug;
- flush;
- #
- # Process the attribute-value list.
- #
- if ($_ = <CLIENT>) {
- print "Hi $_" if $debug;
- flush;
- s/\s+$//;
- s/^/\n/;
- s/&/\n/g;
- $html_post_attributes = '';
- $* = 1;
- for (split(/(%[0-9][0-9A-Z])/, $_)) {
- $html_post_attributes .= (/%([0-9][0-9A-Z])/) ?
- pack('c',hex($1)) : $_;
- }
- %args = ('_junk_', split(/\n([^=]+)=/, $html_post_attributes));
- delete $args{'_junk_'};
- for (keys %args) {
- print "\$$_ = $args{$_}\n" if $debug;
- ${$_} = $args{$_};
- }
- perl_html_script($script);
- } else {
- &bad_html_form($script);
- }
- } else {
- &bad_html_command($request);
- }
-}
-
-
-#
-# Unexpected HTML command.
-#
-sub bad_html_command {
- local($request) = @_;
-
- print CLIENT <<EOF
-<HTML>
-<HEAD>
-<TITLE>Unknown command</TITLE>
-<LINK REV="made" HREF=$HELPME>
-</HEAD>
-<BODY>
-<H1>Unknown command</H1>
-The command <TT>$request<TT> was not recognized.
-</BODY>
-</HTML>
-EOF
-;
-}
-
-#
-# Execute PERL script
-#
-sub perl_html_script {
- local($script) = @_;
-
- if (! -e $script) {
- print CLIENT <<EOF
-<HTML>
-<HEAD>
-<TITLE>File not found</TITLE>
-<LINK REV="made" HREF=$HELPME>
-</HEAD>
-<BODY>
-<H1>File not found</H1>
-The file <TT>$script</TT> does not exist or is not accessible.
-</BODY>
-</HTML>
-EOF
-; return;
- }
- do $script;
- if ($@ && ($@ ne "\n")) {
- print CLIENT <<EOF
-<HTML>
-<HEAD>
-<TITLE>Command failed</TITLE>
-<LINK REV="made" HREF=$HELPME>
-</HEAD>
-<BODY>
-<H1>Command failed</H1>
-$@
-</BODY>
-</HTML>
-EOF
-;
- }
-}
-
-#
-# Missing attribute list
-#
-sub bad_html_form {
- local($script) = @_;
-
- print CLIENT <<EOF
-<HTML>
-<HEAD>
-<TITLE>No attribute list</TITLE>
-<LINK REV="made" HREF=$HELPME>
-</HEAD>
-<BODY>
-<H1>No attribute list</H1>
-
-No attribute list was found.
-</BODY>
-</HTML>
-EOF
-;
-}
-
-#
-# Give them something to read while the server is initializing.
-#
-sub patience {
- for (;;) {
- accept(CLIENT, SOCK) || die "accept: $!";
- <CLIENT>;
- print CLIENT <<EOF
-<HTML>
-<HEAD>
-<TITLE>Initializing...</TITLE>
-<LINK REV="made" HREF=$HELPME>
-</HEAD>
-<BODY>
-<H1>Initializing...</H1>
-WebStone is initializing...
-</BODY>
-</HTML>
-EOF
-;
- close(CLIENT);
- }
-}
-
-sub get_file {
- local($file) = @_;
-
- print CLIENT <<EOF
-<HTML>
-<HEAD>
-<TITLE>$file</TITLE>
-</HEAD>
-<H1>$file</H1>
-<BODY><PRE>
-EOF
- unless ($file =~ /(html|htm|gif|jpeg|jpg)\b/);
-
- open(FILE, $file);
- while (<FILE>) {
- print CLIENT $_;
- }
- close(FILE);
-
- print CLIENT <<EOF
-</PRE>
-</HTML>
-EOF
- unless ($file =~ /(html|htm|gif|jpeg|jpg)\b/);
-}
-
-sub get_dir {
- local($dir) = @_;
- opendir(DIRECTORY, $dir);
- @listing = readdir(DIRECTORY);
- closedir(DIRECTORY);
- print CLIENT <<EOF
-<HTML>
-<HEAD>
-<TITLE>$dir</TITLE>
-</HEAD>
-<H1>$dir</H1>
-<BODY>
-EOF
- ;
-
- while (<@listing>) {
- print CLIENT "<P><A HREF=$dir/$_>$_</A>";
- }
- print CLIENT "</HTML>";
-}
diff --git a/apps/JAWS/clients/WebSTONE/bin/write-testbed.pl b/apps/JAWS/clients/WebSTONE/bin/write-testbed.pl
deleted file mode 100755
index 9f2c75af0ba..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/write-testbed.pl
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-# write new values from form to $wd/conf/testbed, and run WebStone
-#
-
-push(@INC, "$wd/bin");
-require('WebStone-common.pl');
-
-html_begin("Current Configuration");
-
-&show_model();
-&write_data();
-
-print CLIENT <<EOF
-<HR>
-<FORM METHOD="POST" ACTION="$wd/bin/runbench.pl">
-<P><INPUT TYPE="SUBMIT" VALUE="Run WebStone">
-</FORM>
-</DL>
-
-EOF
- ;
-
-html_end();
-
-# end main
-
-sub write_data {
- rename("$wd/conf/testbed", "$wd/conf/testbed.bak") ||
- die "rename testbed: $!\n";
- open(TESTBED, ">>$wd/conf/testbed") || die "open testbed: $!\n";
-
- print CLIENT "<PRE>";
-
- foreach $key (@keylist) {
- $$key =~ s/\+/ /g;
- $newvalue = "$key=\"$$key\"\n";
- print CLIENT $newvalue;
- print TESTBED $newvalue;
- }
-
- print CLIENT "</PRE>";
-
- close(TESTBED);
-}
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/wscollect.pl b/apps/JAWS/clients/WebSTONE/bin/wscollect.pl
deleted file mode 100755
index adf5fee56eb..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/wscollect.pl
+++ /dev/null
@@ -1,139 +0,0 @@
-#!/pkg/gnu/bin//perl
-# $Header$
-# updated version of the old wscollect script which goes through
-# webstone run directories and summarizes the output in tabular
-# format.
-# syc 4/25/96
-#
-
-require "find.pl";
-
-#
-# the list @runs contains the timestamps for the runs which are found
-# during the traversal of the runs directory. This list is used for
-# indices into the associative arrays for storing run information.
-#
-# $numclients{ $time } - number of clients for the run
-# $connrate{ $time } - connection rate average
-# $littlesload{ $time } - little's load factor
-# $latency{ $time } - latency average
-# $error{ $time } - error rate
-# $throughput{ $time } - throughput
-
-local( @runs,
- %numclients,
- %connrate,
- %littlesload,
- %latency,
- %error,
- %throughput);
-
-# Got rid of the trick hack of the title names, someone can put it
-# back in later
-@title = ( "Timestamp",
- "Total number of clients",
- "Connection rate average (conn/s)",
- "Little's Load Factor",
- "Average Latency (seconds)",
- "Error Level (%)",
- "Throughput avg. for all connections (MBits/s)");
-
-
-push( @ARGV, ".") if ( !@ARGV );
-
-for (@ARGV) {
- &find( $_ );
-}
-
-&PrintOutput;
-
-1;
-
-sub wanted {
- local( $filename ) = $_;
-
- return unless ( $filename =~ /run/ );
-
- local( $instats) = 0;
- local( $runtime, $tag, $data, $cruft, @cruft );
-
- open( FILE, $filename ) || return; # bail if failed to open
- $runtime = `pwd`;
- @cruft = split(/\//,$runtime);
- $runtime = pop( @cruft);
- chop( $runtime);
- push( @runs, $runtime);
- while ( $line = <FILE>) {
- if (! $instats) {
- $instats = 1 if ( $line =~ /^WEBSTONE 2\.0 results/ );
- next;
- }
- chop( $line );
- ( $tag, $data ) = split( /:?\s{2,}|\t/, $line);
-
- # perl hack to emulate case/switch statement
- $tag =~ /number of clients/ &&
- ($numclients{ $runtime } = $data, next);
- $tag =~ /error rate/ &&
- (( $error{ $runtime }) = $data =~ /([\d\.]+)/, next);
- $tag =~ /connection rate/ &&
- (( $connrate{ $runtime }) = $data =~ /([\d\.]+)/, next);
- $tag =~ /Server thruput/ &&
- (( $throughput{ $runtime }) = $data =~ /([\d\.]+)/, next);
- $tag =~ /Little's Load/ &&
- (( $littlesload{ $runtime}) = $data =~ /([\d\.]+)/, next); # '
- $tag =~ /Average response time/ &&
- (( $latency{ $runtime } ) = $data =~ /([\d\.]+)/, next);
- }
- close( FILE );
- unless ( $throughput{ $runtime} ) {
- pop( @runs); # if we didn't get a throughput, then the
- # data is incomplete and just drop this run
- }
-}
-
-
-sub printdata {
- local ($timestamp, $num_clients, $conn_rate,
- $load, $latency, $error, $tput) = @_;
- format STDOUT =
-@<<<<<<<<<<< @###### @######.## @####.## @###.#### @####.#### @######.##
-$timestamp, $num_clients, $conn_rate, $load, $latency, $error, $tput
-.
-
- if (!$printedTitles) {
- $printedTitles = 1;
- ($ttimestamp, $tnum_clients, $tconn_rate,
- $tload, $tlatency, $terror, $ttput) = @title;
- format STDOUT_TOP =
-^||||||||||| ^||||||| ^||||||||| ^||||||| ^||||||||| ^||||||||| ^|||||||||||
-$ttimestamp, $tnum_clients, $tconn_rate, $tload, $tlatency, $terror, $ttput
-^||||||||||| ^||||||| ^||||||||| ^||||||| ^||||||||| ^||||||||| ^|||||||||||
-$ttimestamp, $tnum_clients, $tconn_rate, $tload, $tlatency, $terror, $ttput
-^||||||||||| ^||||||| ^||||||||| ^||||||| ^||||||||| ^||||||||| ^|||||||||||
-$ttimestamp, $tnum_clients, $tconn_rate, $tload, $tlatency, $terror, $ttput
-^||||||||||| ^||||||| ^||||||||| ^||||||| ^||||||||| ^||||||||| ^|||||||||||
-$ttimestamp, $tnum_clients, $tconn_rate, $tload, $tlatency, $terror, $ttput
-^||||||||||| ^||||||| ^||||||||| ^||||||| ^||||||||| ^||||||||| ^|||||||||||
-$ttimestamp, $tnum_clients, $tconn_rate, $tload, $tlatency, $terror, $ttput
-----------------------------------------------------------------------------
-.
- # write STDOUT_TOP;
- } # end if printedTitles
- write STDOUT;
-}
-
-sub PrintOutput {
- local( $runtime );
-
- for $runtime (sort @runs) {
- &printdata( $runtime, $numclients{ $runtime}, $connrate{ $runtime},
- $littlesload{ $runtime}, $latency{ $runtime}, $error{ $runtime},
- $throughput{ $runtime});
- }
-}
-
-
-
-
-
diff --git a/apps/JAWS/clients/WebSTONE/conf/filelist b/apps/JAWS/clients/WebSTONE/conf/filelist
deleted file mode 100644
index 5368e28e460..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/filelist
+++ /dev/null
@@ -1,6 +0,0 @@
-# Sample filelist, abstracted from access logs
-/file500.html 350 #500
-/file5k.html 500 #5125
-/file50k.html 140 #51250
-/file500k.html 9 #512500
-/file5m.html 1 #5248000
diff --git a/apps/JAWS/clients/WebSTONE/conf/filelist.cgi-heavy b/apps/JAWS/clients/WebSTONE/conf/filelist.cgi-heavy
deleted file mode 100644
index 84272eee0f7..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/filelist.cgi-heavy
+++ /dev/null
@@ -1,6 +0,0 @@
-# Modified sample model; fully dynamic content
-/file.cgi-send?size=500 350
-/file.cgi-send?size=5125 500
-/file.cgi-send?size=51250 140
-/file.cgi-send?size=512500 9
-/file.cgi-send?size=5248000 1
diff --git a/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-heavy b/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-heavy
deleted file mode 100644
index de9c4fe4765..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-heavy
+++ /dev/null
@@ -1,6 +0,0 @@
-# Modified sample model; fully dynamic content
-/file.dyn-send?size=500 350
-/file.dyn-send?size=5125 500
-/file.dyn-send?size=51250 140
-/file.dyn-send?size=512500 9
-/file.dyn-send?size=5248000 1
diff --git a/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-light b/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-light
deleted file mode 100644
index 2c35810e75d..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-light
+++ /dev/null
@@ -1,6 +0,0 @@
-# Modified sample model; added light dynamic content use
-/file500.html 350 #500
-/file5k.html 500 #5125
-/file.dyn-send?size=51250 140
-/file500k.html 9 #512500
-/file5m.html 1 #5248000
diff --git a/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-medium b/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-medium
deleted file mode 100644
index 2a0abbb2b9f..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-medium
+++ /dev/null
@@ -1,6 +0,0 @@
-# Modified sample model; added medium dynamic content use
-/file.dyn-send?size=500 350
-/file5k.html 500 #5125
-/file.dyn-send?size=51250 140
-/file500k.html 9 #512500
-/file5m.html 1 #5248000
diff --git a/apps/JAWS/clients/WebSTONE/conf/filelist.homepage b/apps/JAWS/clients/WebSTONE/conf/filelist.homepage
deleted file mode 100644
index b759828757a..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/filelist.homepage
+++ /dev/null
@@ -1,2 +0,0 @@
-# home page /index.html only
-/index.html
diff --git a/apps/JAWS/clients/WebSTONE/conf/filelist.sample b/apps/JAWS/clients/WebSTONE/conf/filelist.sample
deleted file mode 100644
index 5368e28e460..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/filelist.sample
+++ /dev/null
@@ -1,6 +0,0 @@
-# Sample filelist, abstracted from access logs
-/file500.html 350 #500
-/file5k.html 500 #5125
-/file50k.html 140 #51250
-/file500k.html 9 #512500
-/file5m.html 1 #5248000
diff --git a/apps/JAWS/clients/WebSTONE/conf/filelist.standard b/apps/JAWS/clients/WebSTONE/conf/filelist.standard
deleted file mode 100644
index 5368e28e460..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/filelist.standard
+++ /dev/null
@@ -1,6 +0,0 @@
-# Sample filelist, abstracted from access logs
-/file500.html 350 #500
-/file5k.html 500 #5125
-/file50k.html 140 #51250
-/file500k.html 9 #512500
-/file5m.html 1 #5248000
diff --git a/apps/JAWS/clients/WebSTONE/conf/fileset b/apps/JAWS/clients/WebSTONE/conf/fileset
deleted file mode 100644
index 064fd7b3098..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/fileset
+++ /dev/null
@@ -1,32 +0,0 @@
-0k file0k.html
-500 file500.html
-1k file1k.html
-2k file2k.html
-3k file3k.html
-4k file4k.html
-5k file5k.html
-6k file6k.html
-7k file7k.html
-8k file8k.html
-9k file9k.html
-10k file10k.html
-11k file11k.html
-12k file12k.html
-13k file13k.html
-14k file14k.html
-15k file15k.html
-16k file16k.html
-17k file17k.html
-18k file18k.html
-19k file19k.html
-20k file20k.html
-21k file21k.html
-29k file29k.html
-33k file33k.html
-45k file45k.html
-50k file50k.html
-64k file64k.html
-115k file115k.html
-200k file200k.html
-500k file500k.html
-5m file5m.html
diff --git a/apps/JAWS/clients/WebSTONE/conf/paths.pl b/apps/JAWS/clients/WebSTONE/conf/paths.pl
deleted file mode 100755
index 38319c40f4e..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/paths.pl
+++ /dev/null
@@ -1,2 +0,0 @@
-$MOSAIC="/pkg/www/bin/netscape";
-
diff --git a/apps/JAWS/clients/WebSTONE/conf/paths.sh b/apps/JAWS/clients/WebSTONE/conf/paths.sh
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/paths.sh
+++ /dev/null
diff --git a/apps/JAWS/clients/WebSTONE/conf/testbed b/apps/JAWS/clients/WebSTONE/conf/testbed
deleted file mode 100644
index 13452b41a56..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/testbed
+++ /dev/null
@@ -1,33 +0,0 @@
-### BENCHMARK PARAMETERS -- EDIT THESE AS REQUIRED
-ITERATIONS="1"
-MINCLIENTS="15"
-MAXCLIENTS="15"
-CLIENTINCR="3"
-### this is actually the number of loops:
-TIMEPERRUN="1000"
-
-
-### SERVER PARAMETERS -- EDIT AS REQUIRED
-PROXYSERVER=
-SERVER="tango-cip"
-PORTNO=6666
-SERVERINFO=uname
-#OSTUNINGFILES="/var/sysgen/master.d/bsd"
-#OSTUNINGFILES="/dev/null"
-#WEBSERVERDIR="/usr/ns-home"
-#WEBDOCDIR="$WEBSERVERDIR/docs"
-#WEBSERVERTUNINGFILES="$WEBSERVERDIR/httpd-80/config/magnus.conf $WEBSERVERDIR/httpd-80/config/obj.conf"
-
-# WE NEED AN ACCOUNT WITH A FIXED PASSWORD, SO WE CAN REXEC
-# THE WEBSTONE CLIENTS
-CLIENTS="mambo merengue lambada"
-#CLIENTS="lindy cumbia"
-CLIENTACCOUNT=sumedh
-CLIENTPASSWORD=yourpasswd
-CLIENTINFO=uname
-TMPDIR=/tmp
-
-# Possibly system-specific
-RCP="rcp"
-RSH="rsh"
-
diff --git a/apps/JAWS/clients/WebSTONE/doc/COPYING b/apps/JAWS/clients/WebSTONE/doc/COPYING
deleted file mode 100644
index 13057b45514..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/COPYING
+++ /dev/null
@@ -1,348 +0,0 @@
- While most of the source code in WebStone is covered by the terms
-in the file LICENSE, the following files are covered by the GNU license,
-reproduced below:
-
- config.guess
- config.sub
-
------------------------------
-
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/apps/JAWS/clients/WebSTONE/doc/FAQ-webstone.html b/apps/JAWS/clients/WebSTONE/doc/FAQ-webstone.html
deleted file mode 100644
index 0adad2fd6f7..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/FAQ-webstone.html
+++ /dev/null
@@ -1,402 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<HTML VERSION="2.0">
-<HEAD>
-<!-- WEBMAGIC VERSION NUMBER="2.0.1" -->
-<!-- WEBMAGIC TRANSLATION NAME="ServerRoot" SRC="/var/www/htdocs/" DST="/" -->
-<!-- WEBMAGIC TRANSLATION NAME="ProjectRoot" SRC="./" DST="" -->
-<TITLE>WebStone FAQ</TITLE>
-</HEAD>
-<BODY>
-<P><!-- Changed by: Michael Blakeley, 9-Nov-1995 --></P>
-<H1><IMG SRC="webstone.gif" WIDTH="534" HEIGHT="174" SGI_SETWIDTH SGI_SETHEIGHT SGI_FULLPATH="/disk6/WebStone-2.0/doc/webstone.gif"></H1>
-<CENTER><H1 ALIGN="CENTER">WebStone</H1>
-</CENTER><CENTER><H2 ALIGN="CENTER">Frequently Asked Questions, with Answers</H2>
-</CENTER><CENTER><ADDRESS ALIGN="CENTER"><A HREF="mailto:schan@engr.sgi.com">Stephen Chan, schan@engr.sgi.com</A></ADDRESS>
-</CENTER><CENTER><ADDRESS ALIGN="CENTER"><A HREF="http://www.sgi.com/Products/WebFORCE/">WebFORCE</A> Technical Marketing, <A HREF="http://www.sgi.com">Silicon Graphics</A></ADDRESS>
-</CENTER><CENTER><ADDRESS ALIGN="CENTER">Last revised: 9 November 1995</ADDRESS>
-</CENTER><HR>
-<P><STRONG>This document answers frequently-asked questions about WebStone.</STRONG> </P>
-<UL>
-<LI><A HREF="#meta-FAQ">Meta-FAQ</A>: What is this document? Where can I get a copy?
-<LI><A HREF="#diff">What is the difference between WebStone 1.1 and WebStone 2.0?</A>
-<LI><A HREF="#compare1.1&amp;2">Can I compare WebStone 1.1 and WebStone 2.0 numbers against each other?</A>
-<LI><A HREF="#what-is">What is WebStone?</A>
-<LI><A HREF="#webperf">What about Webperf?</A>
-<LI><A HREF="#what-does">What does WebStone do?</A>
-<LI><STRONG><A HREF="#_wmh2_815967937">Feature Enhancements in WebStone 2.0</STRONG></A>
-<LI><A HREF="#does-not">What doesn't WebStone do?</A>
-<LI><A HREF="#obtaining">Where can I get WebStone?</A>
-<LI><A HREF="#running">How do I run WebStone?</A>
-<UL>
-<LI>Experimental GUI
-</UL>
-<LI><A HREF="#common-problems">Common problems when running WebStone</A>
-<UL>
-<LI><A HREF="#swap-space">Out of swap space</A>
-<LI><A HREF="#timing-info">Error reading timing info</A>
-</UL>
-<LI><A HREF="#interpreting">What do the results mean?</A>
-<LI><A HREF="#majordomo">I'm still having problems. Where can I get help?</A>
-<LI><A HREF="#legal">Legal issues</A>
-</UL>
-<P>If you have comments about this document, please forward them to the <A HREF="mailto:mblakele@engr.sgi.com">author</A>. </P>
-<HR>
-<H2><A NAME="meta-FAQ">Meta-FAQ: What is this document? Where can I get a copy?</A></H2>
-<P>This is a list of answers to Frequently Asked Questions (FAQ) about WebStone.
-The latest copy is always available at <A HREF="http://www.sgi.com/Products/WebFORCE/WebStone">http://www.sgi.com/Products/WebFORCE/WebStone/</A> and via the WebStone mailing list. The FAQ is periodically posted to the <A HREF="#majordomo">WebStone mailing list</A>, and to the USENET newsgroup <A HREF="news:comp.benchmarks">comp.benchmarks</A>. </P>
-<HR>
-<H2><A NAME="diff">What is the difference between WebStone 1.1 and WebStone 2.0?</A></H2>
-<P>WebStone 2.0 is a rewrite of the WebStone 1.1 code. Significant changes
-have been made both in the code and in the fileset and run rules. Many bugs
-were eliminated, support for other platforms has been included and many
-new features have been added. The WebStone 1.1 and WebStone 2.0 numbers
-cannot be compared, since so much has changed. In general, WebStone 1.1
-will give higher connections/second values, but lower throughput numbers
-than WebStone 2.0.</P>
-<HR>
-<H2><A NAME="compare1.1&amp;2">Can I compare WebStone 1.1 and WebStone 2.0 numbers against each other?</A></H2>
-<P>Absolutely NOT! WebStone 1.1 numbers are based on a different fileset, as
-well as an older version of the benchmarking software. The WebStone 1.1
-fileset was based on a fileset with a smaller average filesize, so that
-the number of connections per second will tend to be higher (all things
-being equal). The WebStone 2.0 fileset is based on observations of several
-real world sites, and the distribution of the filesizes found there. This
-fileset is also similar to the fileset chosen by the SPEC committee for
-their benchmark.</P>
-<P>While it is possible to convert the 1.1 fileset to a 2.0 format and then
-test it, the resulting numbers will not be the same, because the underlying
-software used to perform the testing has changed. WebStone 1.1 was also
-heavily abused because of the lack of run rules, and reporting rules. It
-is recommended that everyone move to WebStone 2.0.</P>
-<HR>
-<P></P>
-<H2><A NAME="what-is">What is WebStone?</A></H2>
-<P>WebStone is a highly-configurable client-server benchmark for HTTP servers. </P>
-<P>The original WebStone benchmark was released in March, 1995. The original
-white paper describing this benchmark is available from <A HREF="http://www.sgi.com/Products/WebFORCE/WebStone">http://www.sgi.com/Products/WebFORCE/WebStone/.</A> </P>
-<P>WebStone is not a proprietary benchmark - it is an open benchmark. The source
-code is freely available, and anyone can examine it. By design, WebStone
-does not unfairly favor SGI, Netscape, or any other company - it is simply
-a performance measurement tool. </P>
-<HR>
-<H2><A NAME="webperf">What about Webperf?</A></H2>
-<P>A SPEC SFS working group is presently adapting SPEC SFS to Web server benchmarking.
-SGI's WebStone team is part of this working group, and we support fully
-the effort. WebStone is available to fulfill the immediate Web benchmarking
-needs - not to confuse the public.</P>
-<P>Basically, if you like WebStone, use it. When SPEC releases Webperf, check
-it out.</P>
-<HR>
-<H2><A NAME="what-does">What does WebStone do?</A></H2>
-<P>WebStone makes a user-configurable number of HTTP 1.0 GET requests for specific
-pages on a Web server. Any Web server can be tested, and any HTML content
-can be used. </P>
-<P>WebStone measures the throughput and latency of each HTTP transfer. By default,
-only statistical data are returned, but the user may optionally request
-data for each and every transaction. WebStone also reports transaction failures,
-which translate into those little &quot;Connection Refused&quot; alerts in the real
-world.</P>
-<HR>
-<H2><A NAME="_wmh2_815967937">Feature Enhancements in WebStone 2.0</A></H2>
-<P>WebStone 2.0 includes support for testing proxy servers, as well as more
-flexible handling of URL's that enable WebStone to test a wide variety of
-content types. The code has also been significantly rewritten so that it
-is more robust and portable.</P>
-<HR>
-<H2><A NAME="does-not">What doesn't WebStone do?</A></H2>
-<P>WebStone does not yet do any of the following (listed roughly in order of
-planned implementation): </P>
-<UL>
-<LI>POST transactions, widely used for CGI-bin scripts
-</UL>
-<P>If you have additional requests for WebStone functionality, contact the <A HREF="#majordomo">WebStone mailing list</A>. </P>
-<HR>
-<H2><A NAME="obtaining">Where can I get WebStone?</A></H2>
-<P>The latest copy of WebStone, and of this FAQ, is available at <A HREF="http://www.sgi.com/Products/WebFORCE/WebStone">http://www.sgi.com/Products/WebFORCE/WebStone</A> </P>
-<HR>
-<H2><A NAME="running">How do I run WebStone?</A></H2>
-<P>WebStone includes a README file which may answer some of your questions.
-However, here's a brief overview. </P>
-<OL>
-<LI><A HREF="#test-bed">Set up your test-bed</A>
-<LI><A HREF="#loading-webstone">Load WebStone onto your webmaster </A>
-<LI><A HREF="#edit-runbench">Edit <CODE>testbed</CODE></A>
-<LI><A HREF="#file-list">Write a file list</A>
-<LI><A HREF="#start-benchmark">Start the benchmark</A>
-<LI><A HREF="#collect-results">Collect the results</A>
-</OL>
-<H3>WebStone now has an experimental GUI!</H3>
-<P>To try the GUI, make sure you have a Web browser, and run <CODE>./webstone -gui</CODE> from the WebStone base directory. You don't need to hand-edit the <CODE>testbed</CODE> file anymore, but you still need to edit <CODE>filelist</CODE> if you want to change the workload. This may not be necessary, since we've
-distributed two real-world workload models with WebStone. </P>
-<P>These are the stepts to follow to run the GUI </P>
-<OL>
-<LI><A HREF="#test-bed">Set up your test-bed</A>
-<LI><A HREF="#loading-webstone">Load WebStone onto your webmaster </A>
-<LI><CODE>./configure</CODE>
-<LI><CODE>./webstone -gui</CODE>
-</OL>
-<P>If the GUI appears to hang, you can kill stray WebStone processes with <CODE>./webstone -kill</CODE> </P>
-<H3><A NAME="test-bed">Setting up your test bed</A></H3>
-<P>Your test bed should include, at minimum, two machines and a network. The
-first machine is your Web server - it can be any HTTP 1.0-compliant server.
-As far as WebStone is concerned, it's a black box. </P>
-<P>You'll also need a webmaster and one or more webclients. These should be
-Unix hosts, since WebStone hasn't been tested on any non-Unix operating
-systems (feel free to port it, if you like). The webmaster and the webclient
-may be the same machine, if desired: we've run up to 120 webclients and
-the webmaster on a single 32MB Indy. </P>
-<P>You must establish a trust relationship between your webmaster and webclients.
-Each webclient must be set up so that the webmaster can use <CODE>rexec</CODE> to execute the WebStone on the client. This can be done with a guest account.
-It's also helpful if root can <CODE>rexec</CODE> and <CODE>rcp</CODE> to the webclients, and even to the web server. This requires editing the <CODE>/.rhosts</CODE> and <CODE>/etc/host.equiv</CODE> files. Here's an example: </P>
-<P><CODE>/.rhosts</CODE> (on each webclient) </P>
-<PRE>
-webmaster root
-</PRE>
-<P><CODE>/etc/hosts/equiv</CODE> (on each webclient) </P>
-<PRE>
-webmaster
-</PRE>
-<P>To make best use of WebStone, your webmaster should be equipped with a C
-compiler, Perl, awk, and a Web browser. A data analysis program such as
-GnuPlot may also come in handy. </P>
-<P>Connect the webclients, the webmaster, and the web server to a common network.
-To check your setup, load a browser on one of the webclients, and make sure
-it can connect to the Web server. </P>
-<H3><A NAME="loading-webstone">Loading WebStone</A></H3>
-<P>Copy the WebStone distribution onto your webmaster. If your webmaster isn't
-an SGI IRIX 5.3 machine, you'll have to make the binaries. Type <KBD>make</KBD> from the WebStone directory - this creates the following binaries: </P>
-<PRE>
-webmaster
-webclient
-</PRE>
-<P>Common porting errors </P>
-<UL>
-<LI>If you want to use gcc instead of cc, change the CC variable in <CODE>src/Makefile</CODE>.
-<LI>Many System V-based Unix implementations (such as Solaris 2.x) will need<CODE> LIBS = -lsocket -lnsl</CODE> in <CODE>src/Makefile</CODE>.
-<LI>Some users may also need to comment out the definition of <CODE>rexec</CODE> in <CODE>webmaster.c</CODE>
-</UL>
-<P>If you encounter other errors, please contact the <A HREF="#majordomo">WebStone mailing list</A>. </P>
-<P>Type <CODE>make install</CODE> to put the binaries in the <CODE>bin</CODE> directory. </P>
-<P>When you run WebStone, the <CODE>distribute</CODE> script automatically copies the <CODE>webclient</CODE> binary to the other client systems. If you're running diverse clients (e.g.,
-a couple Suns, a couple BSD hosts), you'll want to comment the <CODE>distribute</CODE> script out of <CODE>bin/runbench</CODE>, and distribute host-specific versions of <CODE>webclient</CODE> by hand. </P>
-<H3><A NAME="edit-runbench">Edit <CODE></A>testbed</CODE></H3>
-<P>If you use the <CODE>webstone</CODE> script to automate WebStone, you'll want to edit the <CODE>conf/testbed</CODE> script. The <CODE>testbed</CODE> script contains several configurable parameters that WebStone relies on.
-Here is an example: </P>
-<PRE>
-### BENCHMARK PARAMETERS -- EDIT THESE AS REQUIRED
-ITERATIONS=&quot;3&quot;
-MINCLIENTS=&quot;8&quot;
-MAXCLIENTS=&quot;128&quot;
-CLIENTINCR=&quot;8&quot;
-TIMEPERRUN=&quot;30&quot;
-
-### SERVER PARAMETERS -- EDIT AS REQUIRED
-#PROXY=
-SERVER=&quot;www&quot;
-PORTNO=80
-SERVERINFO=hinv
-OSTUNINGFILES=&quot;/var/sysgen/master.d/bsd&quot;
-WEBSERVERDIR=&quot;/usr/ns-home&quot;
-WEBDOCDIR=&quot;$WEBSERVERDIR/docs&quot;
-WEBSERVERTUNINGFILES=&quot;$WEBSERVERDIR/httpd-80/config/magnus.conf $WEBSERVERDIR/httpd-80/config/obj.conf&quot;
-
-# WE NEED AN ACCOUNT WITH A FIXED PASSWORD, SO WE CAN REXEC
-# THE WEBSTONE CLIENTS
-CLIENTS=&quot;webstone1 webstone2 webstone3 webstone4 webstone5&quot;
-CLIENTACCOUNT=guest
-CLIENTPASSWORD=guest
-CLIENTINFO=hinv
-TMPDIR=/tmp
-</PRE>
-<P>Briefly, the first set of parameters means that the WebStone benchmark will
-run from 8 clients to 128 clients, in increments of 8. Each increment will
-run for 30 minutes, and the whole test will be repeated three times. This
-test suite would take roughly 24 hours to complete. </P>
-<P>Why multiple iterations? The WebStone benchmark is a stochastic process
-so there will be variation from run to run, especially if your test file
-sets have large files or if you approach overloading the server. 3 iterations
-is about the minimum you should run just to see if there is variation and
-to gauge the amount of variation. the <TT>TIMEPERRUN</TT> needs to be long enough to establish a steady state and allow it to dominate
-the run. 30 minutes seems to be enough if the sizes of the files are small.
-You may want to run the benchmark longer per run to minimize variation if
-the files are large. </P>
-<P>The second set of parameters means that we will test a server called &quot;www&quot;
-at port 80 (note that the port number may be changed to accomodate proxy
-servers or multiple servers on the same host). We will use four clients.
-Also, we specify the location of a system tuning file (on Sun Solaris, one
-could use /etc/system), and web server tuning files (specified for Netscape).
-These files will be copied into the <CODE>runs</CODE> subdirectories for later reference. </P>
-<P>Finally, we specify the WebStone account on the clients. Here, we use the
-guest account, with a fixed password: guest. </P>
-<H3><A NAME="file-list">Write a file list</A></H3>
-<P>The basic WebStone tests expect a set of files to reside on the server to
-be retrieved by the <TT>webstone</TT> client programs. The file list tells WebStone which files to retrieve. </P>
-<P>It's possible to use an arbitrary set of fixed-length files for WebStone.
-Although these files have the <TT>.html</TT> extension, they are used to represent files of many types. Basically we
-treat &quot;bits-as-bits&quot;. You can use the programs in the <TT>genfileset</TT> subdirectory to create the needed set of files, and copy them onto your
-server: </P>
-<PRE>
- ./webstone -genfiles
-</PRE>
-<P>The sample file list shipped with WebStone uses the files created by genfiles: </P>
-<P># Sample filelist, abstracted from access logs<BR>
-/file500.html 350 #500<BR>
-/file5k.html 500 #5125<BR>
-/file50k.html 140 #51250<BR>
-/file500k.html 9 #512500<BR>
-/file5m.html 1 #5248000<BR>
-</P>
-<P>This filelist consists of 5 different files. The number following the filename
-is the weight of this file in the distribution. All the weights are summed
-together and the frequency of each file is the weight of that file over
-the total weights.</P>
-<P>For example, in this fileset the weights add up to 1000. So the the file500k.html
-page will occur 350 out of 1000 times, and the file5m.html will occur once
-every 1000 pages. </P>
-<P>Note that the URI should be changed to a full URI when testing proxy servers,
-for example, if the proxy server is called proxy, but the actual server
-which stores the file is called seltzer1, you could use the following filelist:</P>
-<P> #Sample filelist, abstracted from access logs<BR>
-http://seltzer1.sgi.com/file500.html 350 #500<BR>
-http://seltzer1.sgi.com/file5k.html 500 #5125<BR>
-http://seltzer1.sgi.com/file50k.html 140 #51250<BR>
-http://seltzer1.sgi.com/file500k.html 9 #512500<BR>
-http://seltzer1.sgi.com/file5m.html 1 #5248000</P>
-<P>This URI is the one which is passed to the proxy server, which in turn uses
-it to fetch the file from seltzer1.sgi.com. Notice that the particular files
-and the distribution are identical to the previous filelist. The other change
-which would need to be made for testing proxy servers is to have an entry
-&quot;PROXY=proxy&quot; in the testbed file and to specify the port where the proxy
-server listens for requests.</P>
-<P>Wherever possible, use the same pages for WebStone that you will use in
-the real world. This means that you'll have a harder time comparing your
-results with published results, but your results will more accurately reflect <STRONG>your</STRONG> situation. </P>
-<H3><A NAME="start-benchmark">Start the benchmark</A></H3>
-<P>type <CODE>./webstone</CODE> </P>
-<P>The results of each run will be saved in a directory called <TT>runs</TT>. Note that the runbench script attempts to collect configuration information
-about your client and server configurations such as netstat results. You
-may see some error messages if your clients don't have netstat or other
-utilities. </P>
-<H3><A NAME="collect-results">Collect the results</A></H3>
-<P>The WebStone summary statistics generated by <TT>webmaster</TT> are saved by <TT>runbench</TT> in a date stamped subdirectory of the <TT>runs</TT> directory in the current directory similar to: </P>
-<PRE>
- runs/950804_2304/run
-</PRE>
-<P>The script wscollect is provided as a tool for collected the results of
-all of the runs and generating a tab delimited file with all of the results.
-This file can be read into a spreadsheet or read by other analysis programs. </P>
-<PRE>
- wscollect runs &gt; runs.tabs
-</PRE>
-<P>An additional script called <TT>tabs2html</TT> will take a tab delimited file and produce an HTML 3.0 style table of the
-results: </P>
-<PRE>
- tabs2html runs.tabs &gt; runs.html
-</PRE>
-<HR>
-<H2><A NAME="common-problems">Common problems when running WebStone</A></H2>
-<H3><A NAME="swap-space">Out of swap space</A></H3>
-<P>It's fairly common for the Web server under test to run out of swap space.
-As a rule of thumb, make sure that you have swap space equal to the number
-of server processes times the size of the largest test file. </P>
-<P>For instance, if you're testing a 10MB file on a Netscape server with 64
-processes, you'll need to have at least 640MB of swap space. <CITE>N.B.</CITE>: On SGI IRIX 5.x, you can substitute large amounts of <EM>virtual swap space</EM>, since Netscape doesn't actually use all the space it asks for. </P>
-<P>See your operating system-specific administration guide for details on adding
-and configuring swap space. </P>
-<H3><A NAME="timing-info">Error reading timing info</A></H3>
-<P><STRONG>Question</STRONG>: </P>
-<P>Running: </P>
-<PRE>
-webmaster -w webmaster -p 9990 -u flist -f config
-</PRE>
-<P>on jan.near.net </P>
-<P>outputs: </P>
-<PRE>
-Waiting for READY from 6 clients
-All READYs received
-Sending GO to all clients
-All clients started at Tue Aug 8 11:57:30 1995
-Waiting for clients completion
-Reading results
-.Error second reading timing info from one of the clients:
-Interrupted system call
-web child 1 did not respond. 3456 bytes read
-.Error second reading timing info from one of the clients:
-Interrupted system call
-web child 0 did not respond. 3456 bytes read
-</PRE>
-<P>What does the second reading timing info contain? What might cause the second
-read to fail while the first passes? </P>
-<P><STRONG>Answer</STRONG>: </P>
-<P>It's most likely that one of the WebStone clients died before it could report
-results to the webmaster. We've squashed many circumstances in which this
-happens, but bugs continue to appear, especially on systems we haven't tested. </P>
-<P>We can't do much for this kind of problem without debugging traces. Edit <CODE>testbed</CODE>, and set the <CODE>DEBUG</CODE> parameter to <CODE>DEBUG=-d</CODE>, so that debugging info will be written to files named /tmp/webstone-debug.&lt;PID&gt;. </P>
-<P>If you can replicate this problem with debugging turned on, please let us
-know. We'd love to examine the traces. </P>
-<P>Another possible source of problems with reading timing info is when a page
-in the filelist did not get read by a client, but the webmaster was expecting
-to find it. This can happen when the test time, number of clients and filelist
-distribution are set up so that a file which gets read infrequently does
-not get read _yet_ before the test period ends.This will get ironed out
-in a later release of WebStone.</P>
-<HR>
-<H2><A NAME="interpreting">What do the results mean?</A></H2>
-<P>WebStone primarily measures throughput (bytes/second) and latency (time
-to complete a request). WebStone also reports pages/minute, connection rate
-averages, and other numbers. Some of these may help you to sanity-check
-the throughput measurements. </P>
-<P>Two types of throughput are measured: aggregate and per-client. Both are
-averaged over the entire test time and the entire client base. Aggregate
-throughput is simply total bytes (body + header) transferred throughout
-the test, divided by the total test time. Per-client throughput divides
-aggregate throughput by the number of clients. </P>
-<P>Two types of latency are reported: connection latency and request latency.
-For each metric, the mean time is provided, as well as the standard deviation
-of all data, plus the minimum and maximum times. Connection latency reflects
-the time taken to establish a connection, while request latency reflects
-the time to complete the data transfer once the connection has been established. </P>
-<P>User-perceived latency will include the sum of connection and request latencies,
-plus any network latency due to WAN connections, routers, modems, etc. </P>
-<P>WebStone also reports a metric called <EM>Little's Ls</EM>. <EM>Ls</EM> is derived from Little's Law, and reflects how much time is spent by the
-server on request processing, rather than overhead and errors. Ls. is also an indirect indicator of the average number of connections which
-the web server has open at any particular instant. This number should stay
-very close to the number of clients, or else some clients are being denied
-access to the server at any given time.</P>
-<P>If you load your Web servers high enough, you'll begin to see errors in
-the results. That's fine (at least as far as WebStone is concerned). It
-just means that your server is heavily loaded, and some clients aren't being
-serviced before they time out. In fact, the number of errors at a given
-load can be an excellent indicator of how your server will perform under
-extremely heavy loads. </P>
-<HR>
-<H2><A NAME="majordomo">I'm still having problems. Where can I get help?</A></H2>
-<P>Subscribe to the WebStone mailing list! Send a message to <A HREF="mailto:majordomo@engr.sgi.com">majordomo@engr.sgi.com</A> - the subject doesn't matter, but the content should be: </P>
-<PRE>
-subscribe webstone
-</PRE>
-<P>You should receive a message shortly, confirming that you've been added
-to the mailing list. You can send to the whole list at <A HREF="mailto:webstone@engr.sgi.com">webstone@engr.sgi.com</A> - the authors of WebStone read the list, and they'll do their best to help.
-Other list members may also be able to help. </P>
-<P>If you have access to USENET News, you can also read and post to <A HREF="news:comp.benchmarks">comp.benchmarks</A>. As with any newsgroup, read the FAQ before posting! </P>
-<P>There's also a mailing list devoted to the performance limits of the HTTP
-protocol. You can subscribe by sending e-mail to <A HREF="mailto:www-speed-request@tipper.oit.unc.edu">www-speed-request@tipper.oit.unc.edu</A> with the text </P>
-<PRE>
-subscribe &lt;your-email-address&gt;
-</PRE>
-<HR>
-<H2><A NAME="legal">Legal Stuff</A></H2>
-<P>This file and all files contained in the WebStone distribution are copyright
-&#169; 1995, 1996 Silicon Graphics, Inc. </P>
-<P>This software is provided without support and without any obligation on
-the part of Silicon Graphics, Inc. to assist in its use, correction, modification
-or enhancement. There is no guarantee that this software will be included
-in future software releases, and it probably will not be included. </P>
-<P>THIS SOFTWARE IS PROVIDED &quot;AS IS&quot; WITH NO WARRANTIES OF ANY KIND INCLUDING
-THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE,
-OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. </P>
-<P>In no event will Silicon Graphics, Inc. be liable for any lost revenue or
-profits or other special, indirect and consequential damages, even if Silicon
-Graphics, Inc. has been advised of the possibility of such damages. </P>
-</BODY>
-</HTML>
diff --git a/apps/JAWS/clients/WebSTONE/doc/LICENSE.html b/apps/JAWS/clients/WebSTONE/doc/LICENSE.html
deleted file mode 100644
index 05d2b5a0378..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/LICENSE.html
+++ /dev/null
@@ -1,16 +0,0 @@
-This file and all files contained in this directory are
-copyright 1995, Silicon Graphics, Inc.
-
-This software is provided without support and without any obligation on the
-part of Silicon Graphics, Inc. to assist in its use, correction, modification
-or enhancement. There is no guarantee that this software will be included in
-future software releases, and it probably will not be included.
-
-THIS SOFTWARE IS PROVIDED "AS IS" WITH NO WARRANTIES OF ANY KIND INCLUDING THE
-WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE,
-OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-
-In no event will Silicon Graphics, Inc. be liable for any lost revenue or
-profits or other special, indirect and consequential damages, even if
-Silicon Graphics, Inc. has been advised of the possibility of such damages.
-
diff --git a/apps/JAWS/clients/WebSTONE/doc/WebStone.html b/apps/JAWS/clients/WebSTONE/doc/WebStone.html
deleted file mode 100644
index e16afbae696..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/WebStone.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<HTML VERSION="2.0">
-<HEAD>
-<!-- WEBMAGIC VERSION NUMBER="2.0" -->
-<!-- WEBMAGIC TRANSLATION NAME="ServerRoot" SRC="/var/www/htdocs/" DST="/" -->
-<!-- WEBMAGIC TRANSLATION NAME="ProjectRoot" SRC="./" DST="" -->
-<TITLE>WebStone</TITLE>
-</HEAD>
-<BODY>
-<P><A HREF="WebStone.html"><IMG SRC="webstone.gif" WIDTH="534" HEIGHT="174" BORDER="0" SGI_SETWIDTH SGI_SETHEIGHT SGI_FULLPATH="/usr/people/mblakele/WebStone-working/doc/webstone.gif"></A>
-<H1>World Wide Web Server Benchmarking</H1>
-<P>If you have any questions, please read the <EM><A HREF="FAQ-webstone.html">WebStone FAQ</EM></A>.
-<HR>
-<H2><A HREF="../bin/WebStone-setup.pl">Set up WebStone</A></H2>
-<HR>
-<H2><A HREF="../bin/WebStone-run.pl">Run WebStone</A></H2>
-<HR>
-<H2><A HREF="../bin/view-results.pl">View WebStone Results</A></H2>
-<HR>
-<H2><A HREF="../bin/WebStone-manage.pl">Administer WebStone</A></H2>
-<HR>
-<ADDRESS><A HREF="LICENSE.html">copyright 1995 Silicon Graphics</A></ADDRESS>
-</BODY>
-</HTML>
diff --git a/apps/JAWS/clients/WebSTONE/doc/testbed.help b/apps/JAWS/clients/WebSTONE/doc/testbed.help
deleted file mode 100755
index 4b25a16e1fe..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/testbed.help
+++ /dev/null
@@ -1,21 +0,0 @@
-ITERATIONS: Total Number of times to run test suite.
-MINCLIENTS: Start the test suite by running this number of clients.
-MAXCLIENTS: End the test suite when this number of clients have run.
-CLIENTINCR: Increment the number of clients by this number after each run.
-TIMEPERRUN: Minutes to run each test.
-PORTNO: TCP/IP port to test on the Web server.
-SERVER: Name or IP number of Web server to be tested.
-PROXYSERVER: Name or IP number of a proxy server through which to test.
-CLIENTS: Name(s) or IP address(es) of machine(s) to use as WebStone clients.
-OSTUNINGFILES: Full pathname(s) of OS tuning files to copy into the bin/runs directory.
-WEBSERVERDIR: Base directory name for Web server.
-WEBDOCDIR: Base directory name for Web server document root.
-WEBSERVERTUNINGFILES: Full pathname(s) of Web server tuning files to copy into bin/runs.
-CLIENTINFO: Name of an informational binary to run on each client.
-SERVERINFO: Name of an informational binary to run on each server.
-TMPDIR: Full pathname of a directory where temporary files may be stored.
-CLIENTACCOUNT: Run WebStone on CLIENTS as this username, via rsh.
-CLIENTPASSWORD: Password for CLIENTACCOUNT. This cannot be blank.
-DEBUG: Leave blank, or set to -d to activate debugging mode. Debug files are written to TMPDIR.
-RCP: Command to use for remote copying. Default: rcp.
-RSH: Command to use for remote execution of a command. Default: rsh.
diff --git a/apps/JAWS/clients/WebSTONE/doc/webstone-white-paper.ps b/apps/JAWS/clients/WebSTONE/doc/webstone-white-paper.ps
deleted file mode 100644
index 1ed0a6523f5..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/webstone-white-paper.ps
+++ /dev/null
@@ -1,8974 +0,0 @@
-%!PS-Adobe-3.0
-
-%%Creator: Windows PSCRIPT
-
-%%Title: Microsoft Word - WEBSTON7.DOC
-
-%%BoundingBox: 18 9 593 784
-
-%%DocumentNeededResources: (atend)
-
-%%DocumentSuppliedResources: (atend)
-
-%%Pages: (atend)
-
-%%BeginResource: procset Win35Dict 3 1
-
-/Win35Dict 290 dict def Win35Dict begin/bd{bind def}bind def/in{72
-
-mul}bd/ed{exch def}bd/ld{load def}bd/tr/translate ld/gs/gsave ld/gr
-
-/grestore ld/M/moveto ld/L/lineto ld/rmt/rmoveto ld/rlt/rlineto ld
-
-/rct/rcurveto ld/st/stroke ld/n/newpath ld/sm/setmatrix ld/cm/currentmatrix
-
-ld/cp/closepath ld/ARC/arcn ld/TR{65536 div}bd/lj/setlinejoin ld/lc
-
-/setlinecap ld/ml/setmiterlimit ld/sl/setlinewidth ld/scignore false
-
-def/sc{scignore{pop pop pop}{0 index 2 index eq 2 index 4 index eq
-
-and{pop pop 255 div setgray}{3{255 div 3 1 roll}repeat setrgbcolor}ifelse}ifelse}bd
-
-/FC{bR bG bB sc}bd/fC{/bB ed/bG ed/bR ed}bd/HC{hR hG hB sc}bd/hC{
-
-/hB ed/hG ed/hR ed}bd/PC{pR pG pB sc}bd/pC{/pB ed/pG ed/pR ed}bd/sM
-
-matrix def/PenW 1 def/iPen 5 def/mxF matrix def/mxE matrix def/mxUE
-
-matrix def/mxUF matrix def/fBE false def/iDevRes 72 0 matrix defaultmatrix
-
-dtransform dup mul exch dup mul add sqrt def/fPP false def/SS{fPP{
-
-/SV save def}{gs}ifelse}bd/RS{fPP{SV restore}{gr}ifelse}bd/EJ{gsave
-
-showpage grestore}bd/#C{userdict begin/#copies ed end}bd/FEbuf 2 string
-
-def/FEglyph(G )def/FE{1 exch{dup 16 FEbuf cvrs FEglyph exch 1 exch
-
-putinterval 1 index exch FEglyph cvn put}for}bd/SM{/iRes ed/cyP ed
-
-/cxPg ed/cyM ed/cxM ed 72 100 div dup scale dup 0 ne{90 eq{cyM exch
-
-0 eq{cxM exch tr -90 rotate -1 1 scale}{cxM cxPg add exch tr +90 rotate}ifelse}{cyP
-
-cyM sub exch 0 ne{cxM exch tr -90 rotate}{cxM cxPg add exch tr -90
-
-rotate 1 -1 scale}ifelse}ifelse}{pop cyP cyM sub exch 0 ne{cxM cxPg
-
-add exch tr 180 rotate}{cxM exch tr 1 -1 scale}ifelse}ifelse 100 iRes
-
-div dup scale 0 0 transform .25 add round .25 sub exch .25 add round
-
-.25 sub exch itransform translate}bd/SJ{1 index 0 eq{pop pop/fBE false
-
-def}{1 index/Break ed div/dxBreak ed/fBE true def}ifelse}bd/ANSIVec[
-
-16#0/grave 16#1/acute 16#2/circumflex 16#3/tilde 16#4/macron 16#5/breve
-
-16#6/dotaccent 16#7/dieresis 16#8/ring 16#9/cedilla 16#A/hungarumlaut
-
-16#B/ogonek 16#C/caron 16#D/dotlessi 16#27/quotesingle 16#60/grave
-
-16#7C/bar 16#82/quotesinglbase 16#83/florin 16#84/quotedblbase 16#85
-
-/ellipsis 16#86/dagger 16#87/daggerdbl 16#88/circumflex 16#89/perthousand
-
-16#8A/Scaron 16#8B/guilsinglleft 16#8C/OE 16#91/quoteleft 16#92/quoteright
-
-16#93/quotedblleft 16#94/quotedblright 16#95/bullet 16#96/endash 16#97
-
-/emdash 16#98/tilde 16#99/trademark 16#9A/scaron 16#9B/guilsinglright
-
-16#9C/oe 16#9F/Ydieresis 16#A0/space 16#A1/exclamdown 16#A4/currency
-
-16#A5/yen 16#A6/brokenbar 16#A7/section 16#A8/dieresis 16#A9/copyright
-
-16#AA/ordfeminine 16#AB/guillemotleft 16#AC/logicalnot 16#AD/hyphen
-
-16#AE/registered 16#AF/macron 16#B0/degree 16#B1/plusminus 16#B2/twosuperior
-
-16#B3/threesuperior 16#B4/acute 16#B5/mu 16#B6/paragraph 16#B7/periodcentered
-
-16#B8/cedilla 16#B9/onesuperior 16#BA/ordmasculine 16#BB/guillemotright
-
-16#BC/onequarter 16#BD/onehalf 16#BE/threequarters 16#BF/questiondown
-
-16#C0/Agrave 16#C1/Aacute 16#C2/Acircumflex 16#C3/Atilde 16#C4/Adieresis
-
-16#C5/Aring 16#C6/AE 16#C7/Ccedilla 16#C8/Egrave 16#C9/Eacute 16#CA
-
-/Ecircumflex 16#CB/Edieresis 16#CC/Igrave 16#CD/Iacute 16#CE/Icircumflex
-
-16#CF/Idieresis 16#D0/Eth 16#D1/Ntilde 16#D2/Ograve 16#D3/Oacute 16#D4
-
-/Ocircumflex 16#D5/Otilde 16#D6/Odieresis 16#D7/multiply 16#D8/Oslash
-
-16#D9/Ugrave 16#DA/Uacute 16#DB/Ucircumflex 16#DC/Udieresis 16#DD/Yacute
-
-16#DE/Thorn 16#DF/germandbls 16#E0/agrave 16#E1/aacute 16#E2/acircumflex
-
-16#E3/atilde 16#E4/adieresis 16#E5/aring 16#E6/ae 16#E7/ccedilla 16#E8
-
-/egrave 16#E9/eacute 16#EA/ecircumflex 16#EB/edieresis 16#EC/igrave
-
-16#ED/iacute 16#EE/icircumflex 16#EF/idieresis 16#F0/eth 16#F1/ntilde
-
-16#F2/ograve 16#F3/oacute 16#F4/ocircumflex 16#F5/otilde 16#F6/odieresis
-
-16#F7/divide 16#F8/oslash 16#F9/ugrave 16#FA/uacute 16#FB/ucircumflex
-
-16#FC/udieresis 16#FD/yacute 16#FE/thorn 16#FF/ydieresis ] def/reencdict
-
-12 dict def/IsChar{basefontdict/CharStrings get exch known}bd/MapCh{dup
-
-IsChar not{pop/bullet}if newfont/Encoding get 3 1 roll put}bd/MapDegree{16#b0
-
-/degree IsChar{/degree}{/ring}ifelse MapCh}bd/MapBB{16#a6/brokenbar
-
-IsChar{/brokenbar}{/bar}ifelse MapCh}bd/ANSIFont{reencdict begin/newfontname
-
-ed/basefontname ed FontDirectory newfontname known not{/basefontdict
-
-basefontname findfont def/newfont basefontdict maxlength dict def basefontdict{exch
-
-dup/FID ne{dup/Encoding eq{exch dup length array copy newfont 3 1 roll
-
-put}{exch newfont 3 1 roll put}ifelse}{pop pop}ifelse}forall newfont
-
-/FontName newfontname put 127 1 159{newfont/Encoding get exch/bullet
-
-put}for ANSIVec aload pop ANSIVec length 2 idiv{MapCh}repeat MapDegree
-
-MapBB newfontname newfont definefont pop}if newfontname end}bd/SB{FC
-
-/ULlen ed/str ed str length fBE not{dup 1 gt{1 sub}if}if/cbStr ed
-
-/dxGdi ed/y0 ed/x0 ed str stringwidth dup 0 ne{/y1 ed/x1 ed y1 y1
-
-mul x1 x1 mul add sqrt dxGdi exch div 1 sub dup x1 mul cbStr div exch
-
-y1 mul cbStr div}{exch abs neg dxGdi add cbStr div exch}ifelse/dyExtra
-
-ed/dxExtra ed x0 y0 M fBE{dxBreak 0 BCh dxExtra dyExtra str awidthshow}{dxExtra
-
-dyExtra str ashow}ifelse fUL{x0 y0 M dxUL dyUL rmt ULlen fBE{Break
-
-add}if 0 mxUE transform gs rlt cyUL sl [] 0 setdash st gr}if fSO{x0
-
-y0 M dxSO dySO rmt ULlen fBE{Break add}if 0 mxUE transform gs rlt cyUL
-
-sl [] 0 setdash st gr}if n/fBE false def}bd/font{/name ed/Ascent ed
-
-0 ne/fT3 ed 0 ne/fSO ed 0 ne/fUL ed/Sy ed/Sx ed 10.0 div/ori ed -10.0
-
-div/esc ed/BCh ed name findfont/xAscent 0 def/yAscent Ascent def/ULesc
-
-esc def ULesc mxUE rotate pop fT3{/esc 0 def xAscent yAscent mxUE transform
-
-/yAscent ed/xAscent ed}if [Sx 0 0 Sy neg xAscent yAscent] esc mxE
-
-rotate mxF concatmatrix makefont setfont [Sx 0 0 Sy neg 0 Ascent] mxUE
-
-mxUF concatmatrix pop fUL{currentfont dup/FontInfo get/UnderlinePosition
-
-known not{pop/Courier findfont}if/FontInfo get/UnderlinePosition get
-
-1000 div 0 exch mxUF transform/dyUL ed/dxUL ed}if fSO{0 .3 mxUF transform
-
-/dySO ed/dxSO ed}if fUL fSO or{currentfont dup/FontInfo get/UnderlineThickness
-
-known not{pop/Courier findfont}if/FontInfo get/UnderlineThickness get
-
-1000 div Sy mul/cyUL ed}if}bd/min{2 copy gt{exch}if pop}bd/max{2 copy
-
-lt{exch}if pop}bd/CP{/ft ed{{ft 0 eq{clip}{eoclip}ifelse}stopped{currentflat
-
-1 add setflat}{exit}ifelse}loop}bd/patfont 10 dict def patfont begin
-
-/FontType 3 def/FontMatrix [1 0 0 -1 0 0] def/FontBBox [0 0 16 16]
-
-def/Encoding StandardEncoding def/BuildChar{pop pop 16 0 0 0 16 16
-
-setcachedevice 16 16 false [1 0 0 1 .25 .25]{pat}imagemask}bd end/p{
-
-/pat 32 string def{}forall 0 1 7{dup 2 mul pat exch 3 index put dup
-
-2 mul 1 add pat exch 3 index put dup 2 mul 16 add pat exch 3 index
-
-put 2 mul 17 add pat exch 2 index put pop}for}bd/pfill{/PatFont patfont
-
-definefont setfont/ch(AAAA)def X0 64 X1{Y1 -16 Y0{1 index exch M ch
-
-show}for pop}for}bd/vert{X0 w X1{dup Y0 M Y1 L st}for}bd/horz{Y0 w
-
-Y1{dup X0 exch M X1 exch L st}for}bd/fdiag{X0 w X1{Y0 M X1 X0 sub dup
-
-rlt st}for Y0 w Y1{X0 exch M Y1 Y0 sub dup rlt st}for}bd/bdiag{X0 w
-
-X1{Y1 M X1 X0 sub dup neg rlt st}for Y0 w Y1{X0 exch M Y1 Y0 sub dup
-
-neg rlt st}for}bd/AU{1 add cvi 15 or}bd/AD{1 sub cvi -16 and}bd/SHR{pathbbox
-
-AU/Y1 ed AU/X1 ed AD/Y0 ed AD/X0 ed}bd/hfill{/w iRes 37.5 div round
-
-def 0.1 sl [] 0 setdash n dup 0 eq{horz}if dup 1 eq{vert}if dup 2 eq{fdiag}if
-
-dup 3 eq{bdiag}if dup 4 eq{horz vert}if 5 eq{fdiag bdiag}if}bd/F{/ft
-
-ed fm 256 and 0 ne{gs FC ft 0 eq{fill}{eofill}ifelse gr}if fm 1536
-
-and 0 ne{SHR gs HC ft CP fm 1024 and 0 ne{/Tmp save def pfill Tmp restore}{fm
-
-15 and hfill}ifelse gr}if}bd/S{PenW sl PC st}bd/m matrix def/GW{iRes
-
-12 div PenW add cvi}bd/DoW{iRes 50 div PenW add cvi}bd/DW{iRes 8 div
-
-PenW add cvi}bd/SP{/PenW ed/iPen ed iPen 0 eq iPen 6 eq or{[] 0 setdash}if
-
-iPen 1 eq{[DW GW] 0 setdash}if iPen 2 eq{[DoW GW] 0 setdash}if iPen
-
-3 eq{[DW GW DoW GW] 0 setdash}if iPen 4 eq{[DW GW DoW GW DoW GW] 0
-
-setdash}if}bd/E{m cm pop tr scale 1 0 moveto 0 0 1 0 360 arc cp m sm}bd
-
-/AG{/sy ed/sx ed sx div 4 1 roll sy div 4 1 roll sx div 4 1 roll sy
-
-div 4 1 roll atan/a2 ed atan/a1 ed sx sy scale a1 a2 ARC}def/A{m cm
-
-pop tr AG m sm}def/P{m cm pop tr 0 0 M AG cp m sm}def/RRect{n 4 copy
-
-M 3 1 roll exch L 4 2 roll L L cp}bd/RRCC{/r ed/y1 ed/x1 ed/y0 ed/x0
-
-ed x0 x1 add 2 div y0 M x1 y0 x1 y1 r arcto 4{pop}repeat x1 y1 x0 y1
-
-r arcto 4{pop}repeat x0 y1 x0 y0 r arcto 4{pop}repeat x0 y0 x1 y0 r
-
-arcto 4{pop}repeat cp}bd/RR{2 copy 0 eq exch 0 eq or{pop pop RRect}{2
-
-copy eq{pop RRCC}{m cm pop/y2 ed/x2 ed/ys y2 x2 div 1 max def/xs x2
-
-y2 div 1 max def/y1 exch ys div def/x1 exch xs div def/y0 exch ys div
-
-def/x0 exch xs div def/r2 x2 y2 min def xs ys scale x0 x1 add 2 div
-
-y0 M x1 y0 x1 y1 r2 arcto 4{pop}repeat x1 y1 x0 y1 r2 arcto 4{pop}repeat
-
-x0 y1 x0 y0 r2 arcto 4{pop}repeat x0 y0 x1 y0 r2 arcto 4{pop}repeat
-
-m sm cp}ifelse}ifelse}bd/PP{{rlt}repeat}bd/OB{gs 0 ne{7 3 roll/y ed
-
-/x ed x y translate ULesc rotate x neg y neg translate x y 7 -3 roll}if
-
-sc B fill gr}bd/B{M/dy ed/dx ed dx 0 rlt 0 dy rlt dx neg 0 rlt cp}bd
-
-/CB{B clip n}bd/ErrHandler{errordict dup maxlength exch length gt
-
-dup{errordict begin}if/errhelpdict 12 dict def errhelpdict begin/stackunderflow(operand stack underflow)def
-
-/undefined(this name is not defined in a dictionary)def/VMerror(you have used up all the printer's memory)def
-
-/typecheck(operator was expecting a different type of operand)def
-
-/ioerror(input/output error occured)def end{end}if errordict begin
-
-/handleerror{$error begin newerror{/newerror false def showpage 72
-
-72 scale/x .25 def/y 9.6 def/Helvetica findfont .2 scalefont setfont
-
-x y moveto(Offending Command = )show/command load{dup type/stringtype
-
-ne{(max err string)cvs}if show}exec/y y .2 sub def x y moveto(Error = )show
-
-errorname{dup type dup( max err string )cvs show( : )show/stringtype
-
-ne{( max err string )cvs}if show}exec errordict begin errhelpdict errorname
-
-known{x 1 add y .2 sub moveto errhelpdict errorname get show}if end
-
-/y y .4 sub def x y moveto(Stack =)show ostack{/y y .2 sub def x 1
-
-add y moveto dup type/stringtype ne{( max err string )cvs}if show}forall
-
-showpage}if end}def end}bd end
-
-%%EndResource
-
-/SVDoc save def
-
-%%EndProlog
-
-%%BeginSetup
-
-Win35Dict begin
-
-ErrHandler
-
-statusdict begin 0 setjobtimeout end
-
-statusdict begin statusdict /jobname (Microsoft Word - WEBSTON7.DOC) put end
-
-/oldDictCnt countdictstack def {}stopped
-
-{ countdictstack oldDictCnt lt { Win35Dict begin }
-
-{1 1 countdictstack oldDictCnt sub {pop end } for } ifelse } if
-
-/oldDictCnt countdictstack def {letter
-
-}stopped
-
-{ countdictstack oldDictCnt lt { Win35Dict begin }
-
-{1 1 countdictstack oldDictCnt sub {pop end } for } ifelse } if
-
-[
-{mark 1.0 1.0 .98 .9 .82 .68 .56 .48 .28 .1 .06 .0 counttomark dup 3 add -1 roll exch 2 sub mul dup floor cvi dup 3 1 roll sub exch dup 3 add index exch 2 add index dup 4 1 roll sub mul add counttomark 1 add 1 roll cleartomark } bind
-
-/exec load currenttransfer /exec load] cvx settransfer
-
-%%EndSetup
-
-%%Page: 1 1
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 83 83 0 0 0 75 /Times-Bold /font29 ANSIFont font
-
-0 0 0 fC
-
-278 772 1843 (WebSTONE: The First Generation in HTTP Server) 1843 SB
-
-938 869 524 (Benchmarking) 524 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-1087 1033 226 (Gene Trent) 226 SB
-
-1148 1092 103 (MTS) 103 SB
-
-1037 1151 326 (Silicon Graphics) 326 SB
-
-1091 1269 218 (Mark Sake) 218 SB
-
-1148 1328 103 (MTS) 103 SB
-
-1037 1387 326 (Silicon Graphics) 326 SB
-
-1055 1505 290 (February 1995) 290 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1041 1978 317 (ABSTRACT) 317 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-225 2097 110 (With ) 111 SB
-
-336 2097 74 (the ) 75 SB
-
-411 2097 145 (advent ) 146 SB
-
-557 2097 54 (of ) 55 SB
-
-612 2097 74 (the ) 76 SB
-
-688 2097 136 (Hyper ) 138 SB
-
-826 2097 105 (Text ) 107 SB
-
-933 2097 180 (Transfer ) 182 SB
-
-1115 2097 185 (Protocol ) 187 SB
-
-1302 2097 173 (\(HTTP\) ) 175 SB
-
-1477 2097 13 ( ) 15 SB
-
-1492 2097 40 (it ) 42 SB
-
-1534 2097 90 (was ) 92 SB
-
-1626 2097 84 (just ) 86 SB
-
-1712 2097 35 (a ) 37 SB
-
-1749 2097 141 (matter ) 143 SB
-
-1892 2097 54 (of ) 56 SB
-
-1948 2097 99 (time ) 101 SB
-
-2049 2097 126 (before) 126 SB
-
-225 2156 74 (the ) 81 SB
-
-306 2156 242 (commercial ) 249 SB
-
-555 2156 79 (use ) 86 SB
-
-641 2156 137 (would ) 144 SB
-
-785 2156 59 (be ) 66 SB
-
-851 2156 170 (evident. ) 177 SB
-
-1028 2156 13 ( ) 20 SB
-
-1048 2156 265 (Performance ) 272 SB
-
-1320 2156 145 (testing ) 152 SB
-
-1472 2156 54 (of ) 61 SB
-
-1533 2156 180 (different ) 187 SB
-
-1720 2156 198 (hardware ) 205 SB
-
-1925 2156 201 (platforms ) 209 SB
-
-2134 2156 41 (as) 41 SB
-
-225 2215 95 (well ) 96 SB
-
-321 2215 54 (as ) 55 SB
-
-376 2215 180 (different ) 182 SB
-
-558 2215 337 (implementations ) 339 SB
-
-897 2215 54 (of ) 56 SB
-
-953 2215 139 (HTTP ) 141 SB
-
-1094 2215 78 (has ) 80 SB
-
-1174 2215 119 (made ) 121 SB
-
-1295 2215 40 (it ) 42 SB
-
-1337 2215 203 (necessary ) 205 SB
-
-1542 2215 54 (to ) 56 SB
-
-1598 2215 133 (create ) 135 SB
-
-1733 2215 35 (a ) 37 SB
-
-1770 2215 95 (new ) 97 SB
-
-1867 2215 230 (benchmark ) 232 SB
-
-2099 2215 76 (that) 76 SB
-
-225 2274 85 (will ) 92 SB
-
-317 2274 121 (allow ) 128 SB
-
-445 2274 35 (a ) 43 SB
-
-488 2274 196 (customer ) 204 SB
-
-692 2274 123 (easily ) 131 SB
-
-823 2274 54 (to ) 62 SB
-
-885 2274 231 (understand ) 239 SB
-
-1124 2274 74 (the ) 82 SB
-
-1206 2274 262 (performance ) 270 SB
-
-1476 2274 271 (characterizes ) 279 SB
-
-1755 2274 54 (of ) 62 SB
-
-1817 2274 180 (different ) 188 SB
-
-2005 2274 170 (vendors.) 170 SB
-
-225 2333 90 (The ) 107 SB
-
-332 2333 280 (WebSTONE, ) 297 SB
-
-629 2333 35 (a ) 52 SB
-
-681 2333 95 (web ) 112 SB
-
-793 2333 156 (serving ) 173 SB
-
-966 2333 230 (benchmark ) 247 SB
-
-1213 2333 78 (has ) 95 SB
-
-1308 2333 105 (been ) 122 SB
-
-1430 2333 216 (developed ) 233 SB
-
-1663 2333 49 (in ) 66 SB
-
-1729 2333 59 (an ) 77 SB
-
-1806 2333 164 (attempt ) 182 SB
-
-1988 2333 54 (to ) 72 SB
-
-2060 2333 115 (better) 115 SB
-
-225 2392 231 (understand ) 237 SB
-
-462 2392 74 (the ) 81 SB
-
-543 2392 262 (performance ) 269 SB
-
-812 2392 249 (characterics ) 256 SB
-
-1068 2392 54 (of ) 61 SB
-
-1129 2392 102 (both ) 109 SB
-
-1238 2392 198 (hardware ) 205 SB
-
-1443 2392 84 (and ) 91 SB
-
-1534 2392 198 (software. ) 205 SB
-
-1739 2392 13 ( ) 20 SB
-
-1759 2392 90 (The ) 97 SB
-
-1856 2392 201 (following ) 208 SB
-
-2064 2392 111 (paper) 111 SB
-
-225 2451 195 (describes ) 203 SB
-
-428 2451 74 (the ) 82 SB
-
-510 2451 230 (benchmark ) 239 SB
-
-749 2451 49 (in ) 58 SB
-
-807 2451 188 (technical ) 197 SB
-
-1004 2451 121 (detail ) 130 SB
-
-1134 2451 84 (and ) 93 SB
-
-1227 2451 129 (issues ) 138 SB
-
-1365 2451 182 (involved ) 191 SB
-
-1556 2451 49 (in ) 58 SB
-
-1614 2451 230 (developing ) 239 SB
-
-1853 2451 83 (this ) 92 SB
-
-1945 2451 230 (benchmark.) 230 SB
-
-225 2510 99 (This ) 100 SB
-
-325 2510 230 (benchmark ) 231 SB
-
-556 2510 90 (was ) 91 SB
-
-647 2510 216 (developed ) 217 SB
-
-864 2510 169 (because ) 170 SB
-
-1034 2510 113 (there ) 114 SB
-
-1148 2510 44 (is ) 46 SB
-
-1194 2510 190 (currently ) 192 SB
-
-1386 2510 63 (no ) 65 SB
-
-1451 2510 117 (other ) 119 SB
-
-1570 2510 94 (way ) 96 SB
-
-1666 2510 54 (of ) 56 SB
-
-1722 2510 145 (testing ) 147 SB
-
-1869 2510 74 (the ) 76 SB
-
-1945 2510 230 (application.) 230 SB
-
-225 2569 1891 (This benchmark is intended for free distribution both this white paper and code. It is the intent ) 1892 SB
-
-2117 2569 58 (for) 58 SB
-
-225 2628 83 (this ) 89 SB
-
-314 2628 230 (benchmark ) 236 SB
-
-550 2628 54 (to ) 60 SB
-
-610 2628 117 (grow ) 123 SB
-
-733 2628 84 (and ) 90 SB
-
-823 2628 128 (better ) 134 SB
-
-957 2628 96 (help ) 102 SB
-
-1059 2628 84 (test ) 90 SB
-
-1149 2628 148 (system ) 154 SB
-
-1303 2628 262 (performance ) 268 SB
-
-1571 2628 71 (for ) 77 SB
-
-1648 2628 132 (future ) 138 SB
-
-1786 2628 167 (systems ) 173 SB
-
-1959 2628 84 (and ) 90 SB
-
-2049 2628 126 (HTTP) 126 SB
-
-225 2687 337 (implementations.) 337 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 2 2
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 21 50 2154 2899 CB
-
-2154 2901 21 (2) 21 SB
-
-gr
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Roman
-
-%%Page: 3 3
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 21 50 2154 2899 CB
-
-2154 2901 21 (3) 21 SB
-
-gr
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 406 285 (Contents) 285 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-225 581 29 (1) 29 SB
-
-375 581 369 (Web Overview) 369 SB
-
-1575 581 160 (page 5) 160 SB
-
-225 719 29 (2) 29 SB
-
-375 719 549 (WebSTONE overview) 549 SB
-
-1575 719 160 (page 5) 160 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 797 63 (2.1) 63 SB
-
-525 797 818 (The WebSTONE as a performance tester) 818 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 788 160 (page 6) 160 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 866 76 (2.2 ) 76 SB
-
-525 866 533 (WebSTONE\222s measure of ) 533 SB
-
-1058 866 386 (server Performance) 386 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 857 160 (page 6) 160 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 935 63 (2.3) 63 SB
-
-525 935 692 (What the WebSTONE doesn\222t test) 692 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 926 160 (page 7) 160 SB
-
-225 1064 29 (3) 29 SB
-
-375 1064 642 (WebSTONE Architecture) 642 SB
-
-1575 1064 160 (page 7) 160 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1142 63 (3.1) 63 SB
-
-525 1142 448 (WebSTONE Software) 448 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1133 160 (page 8) 160 SB
-
-225 1261 29 (4) 29 SB
-
-375 1261 649 (Configuration Parameters) 649 SB
-
-1575 1261 160 (page 9) 160 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1339 63 (4.1) 63 SB
-
-525 1339 274 (Duration test) 274 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1330 160 (page 9) 160 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1408 63 (4.2) 63 SB
-
-525 1408 303 (Repetition test) 303 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1399 160 (page 9) 160 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1477 63 (4.3) 63 SB
-
-525 1477 308 (Number of files) 308 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1468 160 (page 9) 160 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1546 63 (4.4) 63 SB
-
-525 1546 341 (Number of pages) 341 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1537 189 (page 10) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1615 63 (4.5) 63 SB
-
-525 1615 875 (Server software and hardware configuration) 875 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1606 189 (page 10) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1684 63 (4.6) 63 SB
-
-525 1684 478 (Number of Webchildren) 478 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1675 189 (page 10) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1753 63 (4.7) 63 SB
-
-525 1753 412 (Number of networks) 412 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1744 189 (page 10) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1822 63 (4.8) 63 SB
-
-525 1822 354 (Number of clients) 354 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1813 189 (page 11) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1891 63 (4.9) 63 SB
-
-525 1891 379 (Workload of pages) 379 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1882 189 (page 11) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1960 88 (4.10) 88 SB
-
-525 1960 167 (Logging) 167 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1951 189 (page 11) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2029 88 (4.11) 88 SB
-
-525 2029 218 (Debugging) 218 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 2020 189 (page 11) 189 SB
-
-225 2158 29 (5) 29 SB
-
-375 2158 551 (Workload Parameters) 551 SB
-
-1575 2158 189 (page 11) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2236 63 (5.1) 63 SB
-
-525 2236 401 (General modem mix) 401 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 2227 189 (page 11) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2305 63 (5.2) 63 SB
-
-525 2305 241 (General mix) 241 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 2296 189 (page 12) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2374 63 (5.3) 63 SB
-
-525 2374 299 (Media rich mix) 299 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 2365 189 (page 12) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2443 63 (5.4) 63 SB
-
-525 2443 544 (General and media rich mix) 544 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 2434 189 (page 12) 189 SB
-
-225 2572 29 (6) 29 SB
-
-375 2572 420 (Load Generation) 420 SB
-
-1575 2572 189 (page 12) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2650 76 (6.1 ) 76 SB
-
-525 2650 284 (Page selection) 284 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 2641 189 (page 12) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2719 63 (6.2) 63 SB
-
-525 2719 236 (Page access) 236 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 2710 189 (page 13) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2788 63 (6.3) 63 SB
-
-525 2788 389 (Duration of the test) 389 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 2779 189 (page 13) 189 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 4 4
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 21 50 2154 2899 CB
-
-2154 2901 21 (4) 21 SB
-
-gr
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-225 238 29 (7) 29 SB
-
-375 238 482 (Benchmark Results) 482 SB
-
-1575 238 189 (page 13) 189 SB
-
-225 307 73 (7.1) 73 SB
-
-375 307 485 (Summary of results) 485 SB
-
-1575 307 189 (page 20) 189 SB
-
-225 445 29 (8) 29 SB
-
-375 445 327 (Future Work) 327 SB
-
-1575 445 189 (page 21) 189 SB
-
-225 583 29 (9) 29 SB
-
-375 583 449 (Acknowledgments) 449 SB
-
-1575 583 189 (page 22) 189 SB
-
-225 721 58 (10) 58 SB
-
-375 721 491 (Author Information) 491 SB
-
-1575 721 189 (page 22) 189 SB
-
-225 859 58 (11) 58 SB
-
-375 859 114 (Refe) 114 SB
-
-489 859 158 (rences) 158 SB
-
-1575 859 189 (page 22) 189 SB
-
-225 997 58 (12) 58 SB
-
-375 997 309 (Trademarks) 309 SB
-
-1575 997 189 (page 22) 189 SB
-
-225 1135 187 (Figures) 187 SB
-
-225 1263 208 (Figure 3) 208 SB
-
-675 1263 798 (A WebSTONE test environment) 798 SB
-
-1575 1263 160 (page 7) 160 SB
-
-225 1332 267 (Figure 3.1 ) 267 SB
-
-675 1332 484 (Webchildren client ) 484 SB
-
-1575 1332 160 (page 8) 160 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 5 5
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 21 50 2154 2899 CB
-
-2154 2901 21 (5) 21 SB
-
-gr
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 347 551 (1. Web Overview) 551 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 522 108 (Since) 108 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-483 498 19 ( ) 25 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-508 522 74 (the ) 80 SB
-
-588 522 145 (advent ) 151 SB
-
-739 522 54 (of ) 60 SB
-
-799 522 74 (the ) 81 SB
-
-880 522 164 (internet ) 171 SB
-
-1051 522 102 (over ) 109 SB
-
-1160 522 63 (20 ) 70 SB
-
-1230 522 116 (years ) 123 SB
-
-1353 522 99 (ago, ) 106 SB
-
-1459 522 113 (there ) 120 SB
-
-1579 522 78 (has ) 85 SB
-
-1664 522 78 (not ) 85 SB
-
-1749 522 105 (been ) 112 SB
-
-1861 522 59 (an ) 66 SB
-
-1927 522 99 (easy ) 106 SB
-
-2033 522 94 (way ) 101 SB
-
-2134 522 41 (to) 41 SB
-
-225 581 139 (access ) 140 SB
-
-365 581 243 (information ) 244 SB
-
-609 581 63 (on ) 64 SB
-
-673 581 74 (the ) 75 SB
-
-748 581 178 (network ) 179 SB
-
-927 581 134 (unless ) 135 SB
-
-1062 581 87 (you ) 88 SB
-
-1150 581 110 (were ) 111 SB
-
-1261 581 203 (proficient ) 204 SB
-
-1465 581 100 (with ) 101 SB
-
-1566 581 35 (a ) 37 SB
-
-1603 581 162 (number ) 164 SB
-
-1767 581 54 (of ) 56 SB
-
-1823 581 138 (UNIX ) 140 SB
-
-1963 581 212 (commands) 212 SB
-
-225 640 84 (and ) 86 SB
-
-311 640 237 (understood ) 239 SB
-
-550 640 99 (how ) 101 SB
-
-651 640 74 (the ) 76 SB
-
-727 640 178 (network ) 180 SB
-
-907 640 236 (functioned. ) 238 SB
-
-1145 640 13 ( ) 16 SB
-
-1161 640 86 (But ) 89 SB
-
-1250 640 112 (now, ) 115 SB
-
-1365 640 142 (thanks ) 145 SB
-
-1510 640 54 (to ) 57 SB
-
-1567 640 152 (HTTP, ) 155 SB
-
-1722 640 74 (the ) 77 SB
-
-1799 640 133 (ability ) 136 SB
-
-1935 640 54 (to ) 57 SB
-
-1992 640 183 (reference) 183 SB
-
-225 699 1548 (information and to travel the net \(known as surfing\) has been made incredibly ) 1549 SB
-
-1774 699 153 (simple. ) 154 SB
-
-1928 699 13 ( ) 14 SB
-
-1942 699 48 (A ) 49 SB
-
-1991 699 96 (user ) 97 SB
-
-2088 699 87 (with) 87 SB
-
-225 758 35 (a ) 39 SB
-
-264 758 102 (GUI ) 106 SB
-
-370 758 211 (\(graphical ) 215 SB
-
-585 758 96 (user ) 101 SB
-
-686 758 13 ( ) 18 SB
-
-704 758 201 (interface\) ) 206 SB
-
-910 758 81 (can ) 86 SB
-
-996 758 179 (navigate ) 184 SB
-
-1180 758 169 (through ) 174 SB
-
-1354 758 74 (the ) 79 SB
-
-1433 758 164 (internet ) 169 SB
-
-1602 758 54 (as ) 59 SB
-
-1661 758 123 (easily ) 128 SB
-
-1789 758 54 (as ) 59 SB
-
-1848 758 97 (they ) 102 SB
-
-1950 758 64 (do ) 69 SB
-
-2019 758 156 (through) 156 SB
-
-225 817 1438 (their windows based personal computers with the click of mouse button.) 1438 SB
-
-375 935 139 (HTTP ) 148 SB
-
-523 935 44 (is ) 53 SB
-
-576 935 59 (an ) 68 SB
-
-644 935 339 (application-level ) 348 SB
-
-992 935 182 (protocol ) 191 SB
-
-1183 935 100 (with ) 109 SB
-
-1292 935 87 (low ) 96 SB
-
-1388 935 195 (overhead ) 204 SB
-
-1592 935 84 (and ) 93 SB
-
-1685 935 74 (the ) 83 SB
-
-1768 935 126 (speed ) 136 SB
-
-1904 935 203 (necessary ) 213 SB
-
-2117 935 58 (for) 58 SB
-
-225 994 237 (distributed, ) 248 SB
-
-473 994 282 (collaborative, ) 293 SB
-
-766 994 242 (hypermedia ) 254 SB
-
-1020 994 243 (information ) 255 SB
-
-1275 994 180 (systems. ) 192 SB
-
-1467 994 13 ( ) 25 SB
-
-1492 994 45 (It ) 57 SB
-
-1549 994 44 (is ) 56 SB
-
-1605 994 35 (a ) 47 SB
-
-1652 994 170 (generic, ) 182 SB
-
-1834 994 191 (stateless, ) 203 SB
-
-2037 994 138 (object-) 138 SB
-
-225 1053 176 (oriented ) 178 SB
-
-403 1053 182 (protocol ) 185 SB
-
-588 1053 131 (which ) 134 SB
-
-722 1053 81 (can ) 84 SB
-
-806 1053 59 (be ) 62 SB
-
-868 1053 104 (used ) 107 SB
-
-975 1053 71 (for ) 74 SB
-
-1049 1053 119 (many ) 122 SB
-
-1171 1053 126 (tasks, ) 129 SB
-
-1300 1053 103 (such ) 106 SB
-
-1406 1053 54 (as ) 57 SB
-
-1463 1053 118 (name ) 121 SB
-
-1584 1053 153 (servers ) 156 SB
-
-1740 1053 84 (and ) 87 SB
-
-1827 1053 224 (distributed ) 227 SB
-
-2054 1053 121 (object) 121 SB
-
-225 1112 1768 (management systems, through extensions of its request methods \(commands\). A feature ) 1769 SB
-
-1994 1112 54 (of ) 55 SB
-
-2049 1112 126 (HTTP) 126 SB
-
-225 1171 44 (is ) 45 SB
-
-270 1171 74 (the ) 75 SB
-
-345 1171 137 (typing ) 138 SB
-
-483 1171 84 (and ) 85 SB
-
-568 1171 236 (negotiation ) 238 SB
-
-806 1171 54 (of ) 56 SB
-
-862 1171 97 (data ) 99 SB
-
-961 1171 308 (representation, ) 310 SB
-
-1271 1171 182 (allowing ) 184 SB
-
-1455 1171 167 (systems ) 169 SB
-
-1624 1171 54 (to ) 56 SB
-
-1680 1171 59 (be ) 61 SB
-
-1741 1171 101 (built ) 103 SB
-
-1844 1171 288 (independently ) 290 SB
-
-2134 1171 41 (of) 41 SB
-
-225 1230 74 (the ) 85 SB
-
-310 1230 97 (data ) 108 SB
-
-418 1230 120 (being ) 131 SB
-
-549 1230 241 (transferred. ) 252 SB
-
-801 1230 13 ( ) 24 SB
-
-825 1230 90 (The ) 101 SB
-
-926 1230 182 (protocol ) 193 SB
-
-1119 1230 44 (is ) 55 SB
-
-1174 1230 179 (typically ) 191 SB
-
-1365 1230 156 (layered ) 168 SB
-
-1533 1230 63 (on ) 75 SB
-
-1608 1230 79 (top ) 91 SB
-
-1699 1230 54 (of ) 66 SB
-
-1765 1230 164 (TCP/IP ) 176 SB
-
-1941 1230 49 (in ) 61 SB
-
-2002 1230 120 (order ) 132 SB
-
-2134 1230 41 (to) 41 SB
-
-225 1289 207 (guarantee ) 213 SB
-
-438 1289 97 (data ) 103 SB
-
-541 1289 177 (transfer. ) 183 SB
-
-724 1289 13 ( ) 19 SB
-
-743 1289 127 (Other ) 133 SB
-
-876 1289 181 (methods ) 188 SB
-
-1064 1289 54 (of ) 61 SB
-
-1125 1289 97 (data ) 104 SB
-
-1229 1289 164 (transfer ) 171 SB
-
-1400 1289 141 (maybe ) 148 SB
-
-1548 1289 117 (used, ) 124 SB
-
-1672 1289 90 (but, ) 97 SB
-
-1769 1289 74 (the ) 81 SB
-
-1850 1289 93 (vast ) 100 SB
-
-1950 1289 177 (majority ) 184 SB
-
-2134 1289 41 (of) 41 SB
-
-225 1348 982 (existing systems use TCP/IP for HTTP transfers. ) 983 SB
-
-1208 1348 13 ( ) 14 SB
-
-1222 1348 90 (The ) 91 SB
-
-1313 1348 182 (protocol ) 183 SB
-
-1496 1348 169 (consists ) 170 SB
-
-1666 1348 54 (of ) 55 SB
-
-1721 1348 35 (a ) 36 SB
-
-1757 1348 158 (request ) 159 SB
-
-1916 1348 84 (and ) 85 SB
-
-2001 1348 174 (response) 174 SB
-
-225 1407 1182 (paradigm. See reference for further information on HTTP.) 1182 SB
-
-375 1525 117 (Once ) 119 SB
-
-494 1525 35 (a ) 37 SB
-
-531 1525 161 (content ) 163 SB
-
-694 1525 56 (or ) 58 SB
-
-752 1525 242 (commercial ) 244 SB
-
-996 1525 181 (provider ) 183 SB
-
-1179 1525 78 (has ) 80 SB
-
-1259 1525 103 (their ) 105 SB
-
-1364 1525 139 (HTTP ) 141 SB
-
-1505 1525 134 (server ) 136 SB
-
-1641 1525 63 (on ) 65 SB
-
-1706 1525 74 (the ) 76 SB
-
-1782 1525 169 (Internet ) 171 SB
-
-1953 1525 35 (a ) 37 SB
-
-1990 1525 96 (user ) 98 SB
-
-2088 1525 87 (with) 87 SB
-
-225 1584 74 (the ) 79 SB
-
-304 1584 79 (use ) 84 SB
-
-388 1584 54 (of ) 59 SB
-
-447 1584 59 (an ) 65 SB
-
-512 1584 164 (internet ) 170 SB
-
-682 1584 174 (browser ) 180 SB
-
-862 1584 13 ( ) 19 SB
-
-881 1584 44 (is ) 50 SB
-
-931 1584 93 (able ) 99 SB
-
-1030 1584 54 (to ) 60 SB
-
-1090 1584 139 (access ) 145 SB
-
-1235 1584 74 (the ) 80 SB
-
-1315 1584 181 (provider ) 187 SB
-
-1502 1584 100 (with ) 106 SB
-
-1608 1584 35 (a ) 41 SB
-
-1649 1584 185 (common ) 191 SB
-
-1840 1584 184 (interface ) 190 SB
-
-2030 1584 145 (defined) 145 SB
-
-225 1643 169 (through ) 179 SB
-
-404 1643 74 (the ) 84 SB
-
-488 1643 136 (Hyper ) 146 SB
-
-634 1643 105 (Text ) 115 SB
-
-749 1643 171 (Markup ) 182 SB
-
-931 1643 208 (Language ) 219 SB
-
-1150 1643 201 (\(HTML\), ) 212 SB
-
-1362 1643 131 (which ) 142 SB
-
-1504 1643 44 (is ) 55 SB
-
-1559 1643 35 (a ) 46 SB
-
-1605 1643 137 (subset ) 148 SB
-
-1753 1643 54 (of ) 65 SB
-
-1818 1643 151 (SGML ) 162 SB
-
-1980 1643 195 (\(Standard) 195 SB
-
-225 1702 645 (Generalized Markup Language\).) 645 SB
-
-375 1820 1335 (HTML is a simple markup language used to create documents that ) 1336 SB
-
-1711 1820 95 (may ) 96 SB
-
-1807 1820 59 (be ) 60 SB
-
-1867 1820 142 (shared ) 143 SB
-
-2010 1820 165 (between) 165 SB
-
-225 1879 180 (different ) 183 SB
-
-408 1879 214 (platforms. ) 217 SB
-
-625 1879 13 ( ) 16 SB
-
-641 1879 90 (The ) 94 SB
-
-735 1879 190 (language ) 194 SB
-
-929 1879 140 (allows ) 144 SB
-
-1073 1879 102 (text, ) 106 SB
-
-1179 1879 110 (data, ) 114 SB
-
-1293 1879 192 (graphics, ) 196 SB
-
-1489 1879 127 (news, ) 131 SB
-
-1620 1879 96 (mail ) 100 SB
-
-1720 1879 84 (and ) 88 SB
-
-1808 1879 35 (a ) 39 SB
-
-1847 1879 162 (number ) 166 SB
-
-2013 1879 54 (of ) 58 SB
-
-2071 1879 104 (other) 104 SB
-
-225 1938 157 (utilities ) 159 SB
-
-384 1938 54 (to ) 57 SB
-
-441 1938 162 (interact ) 165 SB
-
-606 1938 100 (with ) 103 SB
-
-709 1938 74 (the ) 77 SB
-
-786 1938 139 (HTTP ) 142 SB
-
-928 1938 134 (server ) 137 SB
-
-1065 1938 84 (and ) 87 SB
-
-1152 1938 187 (browser. ) 190 SB
-
-1342 1938 13 ( ) 16 SB
-
-1358 1938 99 (This ) 102 SB
-
-1460 1938 115 (gives ) 118 SB
-
-1578 1938 74 (the ) 77 SB
-
-1655 1938 96 (user ) 99 SB
-
-1754 1938 74 (the ) 77 SB
-
-1831 1938 177 (freedom ) 180 SB
-
-2011 1938 54 (to ) 57 SB
-
-2068 1938 107 (enjoy) 107 SB
-
-225 1997 1501 (the benefits of the provider without having to know how it is accomplished.) 1501 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 2234 57 (2.) 57 SB
-
-375 2234 708 (WebSTONE overview) 708 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2409 90 (The ) 92 SB
-
-467 2409 267 (WebSTONE ) 269 SB
-
-736 2409 44 (is ) 46 SB
-
-782 2409 35 (a ) 38 SB
-
-820 2409 95 (new ) 98 SB
-
-918 2409 230 (benchmark ) 233 SB
-
-1151 2409 89 (that ) 92 SB
-
-1243 2409 103 (tests ) 106 SB
-
-1349 2409 74 (the ) 77 SB
-
-1426 2409 262 (performance ) 265 SB
-
-1691 2409 54 (of ) 57 SB
-
-1748 2409 139 (HTTP ) 142 SB
-
-1890 2409 13 ( ) 16 SB
-
-1906 2409 49 (in ) 52 SB
-
-1958 2409 173 (contrast ) 176 SB
-
-2134 2409 41 (to) 41 SB
-
-225 2468 435 (server platform\222s and ) 436 SB
-
-661 2468 180 (different ) 181 SB
-
-842 2468 337 (implementations ) 338 SB
-
-1180 2468 54 (of ) 55 SB
-
-1235 2468 152 (HTTP. ) 153 SB
-
-1388 2468 13 ( ) 14 SB
-
-1402 2468 178 (Because ) 179 SB
-
-1581 2468 113 (there ) 114 SB
-
-1695 2468 74 (are ) 75 SB
-
-1770 2468 119 (many ) 120 SB
-
-1890 2468 180 (different ) 181 SB
-
-2071 2468 104 (types) 104 SB
-
-225 2527 54 (of ) 55 SB
-
-280 2527 134 (server ) 135 SB
-
-415 2527 185 (software ) 186 SB
-
-601 2527 89 (that ) 90 SB
-
-691 2527 44 (is ) 45 SB
-
-736 2527 190 (currently ) 191 SB
-
-927 2527 198 (available, ) 199 SB
-
-1126 2527 13 ( ) 15 SB
-
-1141 2527 54 (as ) 56 SB
-
-1197 2527 95 (well ) 97 SB
-
-1294 2527 54 (as ) 56 SB
-
-1350 2527 180 (different ) 182 SB
-
-1532 2527 198 (hardware ) 200 SB
-
-1732 2527 214 (platforms, ) 216 SB
-
-1948 2527 113 (there ) 115 SB
-
-2063 2527 112 (needs) 112 SB
-
-225 2586 54 (to ) 55 SB
-
-280 2586 59 (be ) 60 SB
-
-340 2586 35 (a ) 36 SB
-
-376 2586 232 (mechanism ) 233 SB
-
-609 2586 71 (for ) 72 SB
-
-681 2586 145 (testing ) 146 SB
-
-827 2586 291 (benchmarking ) 293 SB
-
-1120 2586 134 (server ) 136 SB
-
-1256 2586 185 (software ) 187 SB
-
-1443 2586 84 (and ) 86 SB
-
-1529 2586 198 (hardware ) 200 SB
-
-1729 2586 182 (platform ) 184 SB
-
-1913 2586 262 (performance.) 262 SB
-
-225 2645 90 (The ) 99 SB
-
-324 2645 267 (WebSTONE ) 276 SB
-
-600 2645 44 (is ) 53 SB
-
-653 2645 35 (a ) 44 SB
-
-697 2645 230 (benchmark ) 239 SB
-
-936 2645 89 (that ) 98 SB
-
-1034 2645 183 (attempts ) 192 SB
-
-1226 2645 54 (to ) 63 SB
-
-1289 2645 64 (do ) 73 SB
-
-1362 2645 96 (this. ) 105 SB
-
-1467 2645 13 ( ) 23 SB
-
-1490 2645 67 (As ) 77 SB
-
-1567 2645 100 (with ) 110 SB
-
-1677 2645 82 (any ) 92 SB
-
-1769 2645 95 (new ) 105 SB
-
-1874 2645 230 (benchmark ) 240 SB
-
-2114 2645 61 (the) 61 SB
-
-225 2704 267 (WebSTONE ) 269 SB
-
-494 2704 44 (is ) 46 SB
-
-540 2704 35 (a ) 37 SB
-
-577 2704 162 (starting ) 164 SB
-
-741 2704 128 (point. ) 130 SB
-
-871 2704 13 ( ) 15 SB
-
-886 2704 117 (Once ) 119 SB
-
-1005 2704 74 (the ) 76 SB
-
-1081 2704 230 (benchmark ) 232 SB
-
-1313 2704 44 (is ) 46 SB
-
-1359 2704 226 (introduced ) 228 SB
-
-1587 2704 90 (into ) 92 SB
-
-1679 2704 74 (the ) 76 SB
-
-1755 2704 157 (general ) 159 SB
-
-1914 2704 13 ( ) 15 SB
-
-1929 2704 139 (World ) 141 SB
-
-2070 2704 105 (Wide) 105 SB
-
-225 2763 1669 (Web \(WWW\) community, improvements and enhancements will be made to further ) 1670 SB
-
-1895 2763 74 (the ) 75 SB
-
-1970 2763 79 (use ) 80 SB
-
-2050 2763 54 (of ) 55 SB
-
-2105 2763 70 (this) 70 SB
-
-225 2822 1068 (benchmark in support of better end user performance.) 1068 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 6 6
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 21 50 2154 2899 CB
-
-2154 2901 21 (6) 21 SB
-
-gr
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 219 121 (Since ) 125 SB
-
-500 219 74 (the ) 78 SB
-
-578 219 260 (functionality ) 264 SB
-
-842 219 54 (of ) 58 SB
-
-900 219 74 (the ) 78 SB
-
-978 219 105 (Web ) 109 SB
-
-1087 219 44 (is ) 48 SB
-
-1135 219 144 (similar ) 148 SB
-
-1283 219 54 (to ) 58 SB
-
-1341 219 74 (the ) 78 SB
-
-1419 219 260 (functionality ) 265 SB
-
-1684 219 54 (of ) 59 SB
-
-1743 219 166 (NFS\231, ) 171 SB
-
-1914 219 74 (the ) 79 SB
-
-1993 219 182 (LADDIS) 182 SB
-
-225 278 230 (benchmark ) 233 SB
-
-458 278 90 (was ) 93 SB
-
-551 278 193 (reviewed ) 196 SB
-
-747 278 71 (for ) 74 SB
-
-821 278 13 ( ) 16 SB
-
-837 278 172 (possible ) 175 SB
-
-1012 278 54 (as ) 57 SB
-
-1069 278 74 (the ) 77 SB
-
-1146 278 95 (web ) 98 SB
-
-1244 278 243 (benchmark. ) 246 SB
-
-1490 278 13 ( ) 16 SB
-
-1506 278 302 (Unfortunately, ) 305 SB
-
-1811 278 113 (there ) 117 SB
-
-1928 278 90 (was ) 94 SB
-
-2022 278 63 (no ) 67 SB
-
-2089 278 86 (easy) 86 SB
-
-225 337 94 (way ) 97 SB
-
-322 337 54 (to ) 57 SB
-
-379 337 122 (adapt ) 125 SB
-
-504 337 83 (this ) 86 SB
-
-590 337 243 (benchmark. ) 246 SB
-
-836 337 13 ( ) 16 SB
-
-852 337 209 (However, ) 212 SB
-
-1064 337 195 (LADDIS ) 198 SB
-
-1262 337 75 (did ) 78 SB
-
-1340 337 108 (offer ) 111 SB
-
-1451 337 35 (a ) 38 SB
-
-1489 337 238 (perspective ) 241 SB
-
-1730 337 63 (on ) 67 SB
-
-1797 337 99 (how ) 103 SB
-
-1900 337 54 (to ) 58 SB
-
-1958 337 217 (benchmark) 217 SB
-
-225 396 255 (client/server ) 258 SB
-
-483 396 273 (environment. ) 276 SB
-
-759 396 13 ( ) 16 SB
-
-775 396 90 (The ) 93 SB
-
-868 396 267 (WebSTONE ) 270 SB
-
-1138 396 44 (is ) 47 SB
-
-1185 396 104 (used ) 107 SB
-
-1292 396 54 (to ) 58 SB
-
-1350 396 177 (measure ) 181 SB
-
-1531 396 207 (maximum ) 211 SB
-
-1742 396 84 (and ) 88 SB
-
-1830 396 167 (average ) 171 SB
-
-2001 396 174 (response) 174 SB
-
-225 455 118 (times ) 133 SB
-
-358 455 71 (for ) 87 SB
-
-445 455 229 (connecting ) 245 SB
-
-690 455 54 (to ) 70 SB
-
-760 455 74 (the ) 90 SB
-
-850 455 147 (server. ) 163 SB
-
-1013 455 13 ( ) 29 SB
-
-1042 455 54 (In ) 70 SB
-
-1112 455 174 (addition ) 190 SB
-
-1302 455 234 (throughput ) 250 SB
-
-1552 455 97 (data ) 113 SB
-
-1665 455 44 (is ) 60 SB
-
-1725 455 92 (also ) 108 SB
-
-1833 455 220 (generated. ) 236 SB
-
-2069 455 13 ( ) 29 SB
-
-2098 455 77 (The) 77 SB
-
-225 514 267 (WebSTONE ) 268 SB
-
-493 514 13 ( ) 14 SB
-
-507 514 44 (is ) 45 SB
-
-552 514 190 (executed ) 191 SB
-
-743 514 306 (simultaneously ) 307 SB
-
-1050 514 63 (on ) 64 SB
-
-1114 514 85 (one ) 86 SB
-
-1200 514 56 (or ) 57 SB
-
-1257 514 115 (more ) 116 SB
-
-1373 514 139 (clients ) 141 SB
-
-1514 514 169 (resident ) 171 SB
-
-1685 514 63 (on ) 65 SB
-
-1750 514 74 (the ) 76 SB
-
-1826 514 169 (server\222s ) 171 SB
-
-1997 514 178 (network.) 178 SB
-
-225 573 112 (Each ) 118 SB
-
-343 573 120 (client ) 126 SB
-
-469 573 44 (is ) 50 SB
-
-519 573 93 (able ) 99 SB
-
-618 573 54 (to ) 60 SB
-
-678 573 142 (launch ) 148 SB
-
-826 573 35 (a ) 41 SB
-
-867 573 162 (number ) 169 SB
-
-1036 573 54 (of ) 61 SB
-
-1097 573 171 (children ) 178 SB
-
-1275 573 145 (\(called ) 152 SB
-
-1427 573 280 (Webchildren\) ) 287 SB
-
-1714 573 217 (depending ) 224 SB
-
-1938 573 63 (on ) 70 SB
-
-2008 573 99 (how ) 106 SB
-
-2114 573 61 (the) 61 SB
-
-225 632 290 (system load is ) 291 SB
-
-516 632 239 (configured. ) 240 SB
-
-756 632 13 ( ) 14 SB
-
-770 632 112 (Each ) 113 SB
-
-883 632 263 (Webchildren ) 264 SB
-
-1147 632 44 (is ) 45 SB
-
-1192 632 93 (able ) 94 SB
-
-1286 632 54 (to ) 55 SB
-
-1341 632 158 (request ) 159 SB
-
-1500 632 243 (information ) 244 SB
-
-1744 632 108 (from ) 109 SB
-
-1853 632 74 (the ) 75 SB
-
-1928 632 134 (server ) 135 SB
-
-2063 632 112 (based) 112 SB
-
-225 691 63 (on ) 70 SB
-
-295 691 35 (a ) 42 SB
-
-337 691 120 (given ) 127 SB
-
-464 691 74 (file ) 81 SB
-
-545 691 111 (load. ) 118 SB
-
-663 691 13 ( ) 20 SB
-
-683 691 90 (The ) 97 SB
-
-780 691 267 (WebSTONE ) 274 SB
-
-1054 691 44 (is ) 51 SB
-
-1105 691 154 (written ) 161 SB
-
-1266 691 54 (to ) 62 SB
-
-1328 691 59 (be ) 67 SB
-
-1395 691 253 (independent ) 261 SB
-
-1656 691 54 (of ) 62 SB
-
-1718 691 74 (the ) 82 SB
-
-1800 691 134 (server ) 142 SB
-
-1942 691 182 (platform ) 190 SB
-
-2132 691 43 (or) 43 SB
-
-225 750 1347 (software running on it. In essence it treats the server as a blackbox.) 1347 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 869 95 (2.1) 95 SB
-
-375 869 1477 (The WebSTONE as a measure of performance) 1477 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1044 54 (In ) 59 SB
-
-434 1044 174 (addition ) 179 SB
-
-613 1044 54 (to ) 59 SB
-
-672 1044 35 (a ) 40 SB
-
-712 1044 230 (benchmark ) 236 SB
-
-948 1044 89 (that ) 95 SB
-
-1043 1044 201 (generates ) 207 SB
-
-1250 1044 263 (standardized ) 269 SB
-
-1519 1044 97 (data ) 103 SB
-
-1622 1044 71 (for ) 77 SB
-
-1699 1044 243 (comparison ) 249 SB
-
-1948 1044 54 (of ) 60 SB
-
-2008 1044 167 (different) 167 SB
-
-225 1103 1542 (platforms, the WebSTONE is also a performance tester and maybe used as a ) 1543 SB
-
-1768 1103 92 (tool ) 93 SB
-
-1861 1103 54 (to ) 55 SB
-
-1916 1103 13 ( ) 14 SB
-
-1930 1103 96 (help ) 97 SB
-
-2027 1103 148 (identify) 148 SB
-
-225 1162 262 (performance ) 265 SB
-
-490 1162 348 (characterizations ) 351 SB
-
-841 1162 54 (of ) 57 SB
-
-898 1162 134 (server ) 137 SB
-
-1035 1162 214 (platforms. ) 217 SB
-
-1252 1162 13 ( ) 16 SB
-
-1268 1162 45 (It ) 48 SB
-
-1316 1162 44 (is ) 48 SB
-
-1364 1162 81 (our ) 85 SB
-
-1449 1162 98 (goal ) 102 SB
-
-1551 1162 89 (that ) 93 SB
-
-1644 1162 74 (the ) 78 SB
-
-1722 1162 230 (benchmark ) 234 SB
-
-1956 1162 85 (will ) 89 SB
-
-2045 1162 130 (evolve) 130 SB
-
-225 1221 1687 (and will help define a standard the WWW community may use when comparing data.) 1687 SB
-
-375 1339 115 (Used ) 122 SB
-
-497 1339 54 (as ) 61 SB
-
-558 1339 35 (a ) 42 SB
-
-600 1339 262 (performance ) 270 SB
-
-870 1339 92 (tool ) 100 SB
-
-970 1339 74 (the ) 82 SB
-
-1052 1339 280 (WebSTONE, ) 288 SB
-
-1340 1339 98 (uses ) 106 SB
-
-1446 1339 202 (workload ) 210 SB
-
-1656 1339 231 (parameters ) 239 SB
-
-1895 1339 84 (and ) 92 SB
-
-1987 1339 139 (clients ) 147 SB
-
-2134 1339 41 (to) 41 SB
-
-225 1398 182 (generate ) 185 SB
-
-410 1398 139 (HTTP ) 142 SB
-
-552 1398 131 (traffic ) 134 SB
-
-686 1398 89 (that ) 92 SB
-
-778 1398 140 (allows ) 144 SB
-
-922 1398 59 (an ) 63 SB
-
-985 1398 139 (HTTP ) 143 SB
-
-1128 1398 134 (server ) 138 SB
-
-1266 1398 54 (to ) 58 SB
-
-1324 1398 59 (be ) 63 SB
-
-1387 1398 171 (stressed ) 175 SB
-
-1562 1398 49 (in ) 53 SB
-
-1615 1398 35 (a ) 39 SB
-
-1654 1398 162 (number ) 166 SB
-
-1820 1398 54 (of ) 58 SB
-
-1878 1398 180 (different ) 184 SB
-
-2062 1398 113 (ways.) 113 SB
-
-225 1457 1867 (This can gives insight into the server\222s behavior and performance in a variety of environments.) 1867 SB
-
-375 1575 129 (There ) 131 SB
-
-506 1575 96 (four ) 98 SB
-
-604 1575 180 (different ) 182 SB
-
-786 1575 221 (workloads ) 223 SB
-
-1009 1575 89 (that ) 91 SB
-
-1100 1575 196 (represent ) 198 SB
-
-1298 1575 35 (a ) 37 SB
-
-1335 1575 150 (sample ) 152 SB
-
-1487 1575 54 (of ) 57 SB
-
-1544 1575 74 (the ) 77 SB
-
-1621 1575 166 (existing ) 169 SB
-
-1790 1575 153 (servers ) 156 SB
-
-1946 1575 190 (currently ) 193 SB
-
-2139 1575 36 (in) 36 SB
-
-225 1634 311 (use on the web.) 311 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-225 1691 36 (\267 ) 75 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 1696 1647 (The first one is a workload for general use actives that is sensitive to modem users.) 1647 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-225 1753 36 (\267 ) 75 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 1758 90 (The ) 93 SB
-
-393 1758 151 (second ) 154 SB
-
-547 1758 202 (workload ) 205 SB
-
-752 1758 44 (is ) 47 SB
-
-799 1758 35 (a ) 39 SB
-
-838 1758 157 (general ) 161 SB
-
-999 1758 86 (mix ) 90 SB
-
-1089 1758 89 (that ) 93 SB
-
-1182 1758 44 (is ) 48 SB
-
-1230 1758 78 (not ) 82 SB
-
-1312 1758 54 (as ) 58 SB
-
-1370 1758 217 (concerned ) 221 SB
-
-1591 1758 100 (with ) 104 SB
-
-1695 1758 74 (the ) 78 SB
-
-1773 1758 160 (modem ) 164 SB
-
-1937 1758 109 (user, ) 113 SB
-
-2050 1758 90 (but, ) 94 SB
-
-2144 1758 31 (is) 31 SB
-
-300 1817 646 (still sensitive to download times.) 646 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-225 1874 36 (\267 ) 75 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 1879 1204 (The third mix is a media rich mix that has very large content.) 1204 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-225 1936 36 (\267 ) 75 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 1941 1228 (the fourth mix is a combination of both the first and third mix.) 1228 SB
-
-375 2059 45 (It ) 50 SB
-
-425 2059 144 (should ) 149 SB
-
-574 2059 59 (be ) 64 SB
-
-638 2059 125 (noted ) 130 SB
-
-768 2059 89 (that ) 94 SB
-
-862 2059 112 (since ) 117 SB
-
-979 2059 74 (the ) 79 SB
-
-1058 2059 95 (web ) 100 SB
-
-1158 2059 44 (is ) 49 SB
-
-1207 2059 83 (still ) 89 SB
-
-1296 2059 49 (in ) 55 SB
-
-1351 2059 59 (its ) 65 SB
-
-1416 2059 155 (infancy ) 161 SB
-
-1577 2059 40 (it ) 46 SB
-
-1623 2059 85 (will ) 91 SB
-
-1714 2059 97 (take ) 103 SB
-
-1817 2059 99 (time ) 105 SB
-
-1922 2059 54 (to ) 60 SB
-
-1982 2059 105 (have ) 111 SB
-
-2093 2059 82 (well) 82 SB
-
-225 2118 158 (defined ) 165 SB
-
-390 2118 127 (mixes ) 134 SB
-
-524 2118 89 (that ) 96 SB
-
-620 2118 85 (will ) 93 SB
-
-713 2118 59 (be ) 67 SB
-
-780 2118 227 (considered ) 235 SB
-
-1015 2118 195 (standard. ) 203 SB
-
-1218 2118 13 ( ) 21 SB
-
-1239 2118 45 (It ) 53 SB
-
-1292 2118 92 (also ) 100 SB
-
-1392 2118 144 (should ) 152 SB
-
-1544 2118 59 (be ) 67 SB
-
-1611 2118 125 (noted ) 133 SB
-
-1744 2118 89 (that ) 97 SB
-
-1841 2118 113 (there ) 121 SB
-
-1962 2118 44 (is ) 52 SB
-
-2014 2118 92 (also ) 100 SB
-
-2114 2118 61 (the) 61 SB
-
-225 2177 149 (chance ) 152 SB
-
-377 2177 89 (that ) 92 SB
-
-469 2177 113 (there ) 116 SB
-
-585 2177 85 (will ) 88 SB
-
-673 2177 59 (be ) 62 SB
-
-735 2177 63 (no ) 66 SB
-
-801 2177 103 (such ) 106 SB
-
-907 2177 13 ( ) 16 SB
-
-923 2177 113 (thing ) 116 SB
-
-1039 2177 54 (as ) 57 SB
-
-1096 2177 35 (a ) 38 SB
-
-1134 2177 182 (standard ) 185 SB
-
-1319 2177 86 (mix ) 89 SB
-
-1408 2177 84 (and ) 87 SB
-
-1495 2177 103 (each ) 106 SB
-
-1601 2177 196 (customer ) 199 SB
-
-1800 2177 85 (will ) 88 SB
-
-1888 2177 105 (have ) 109 SB
-
-1997 2177 54 (to ) 58 SB
-
-2055 2177 120 (define) 120 SB
-
-225 2236 1681 (their own mix based on individual sites and run the test against the selected systems.) 1681 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 2414 1578 (2.2 WebSTONE\222s measure of server performance) 1578 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2589 90 (The ) 96 SB
-
-471 2589 267 (WebSTONE ) 273 SB
-
-744 2589 44 (is ) 51 SB
-
-795 2589 35 (a ) 42 SB
-
-837 2589 259 (configurable ) 266 SB
-
-1103 2589 230 (benchmark ) 237 SB
-
-1340 2589 89 (that ) 96 SB
-
-1436 2589 140 (allows ) 147 SB
-
-1583 2589 262 (performance ) 269 SB
-
-1852 2589 275 (measurement ) 282 SB
-
-2134 2589 41 (of) 41 SB
-
-225 2648 646 (the server in the following ways:) 646 SB
-
-225 2707 755 (- Average and maximum connect time) 755 SB
-
-225 2766 774 (- Average and maximum response time) 774 SB
-
-225 2825 448 (- Data throughput rate) 448 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Symbol
-
-%%+ font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 7 7
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 21 50 2154 2899 CB
-
-2154 2901 21 (7) 21 SB
-
-gr
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-225 169 560 (- Number of pages retrieved) 560 SB
-
-225 228 527 (- Number of files retrieved) 527 SB
-
-375 346 1572 (The benchmark\222s goal is to control as much of the clients running environment ) 1573 SB
-
-1948 346 54 (as ) 55 SB
-
-2003 346 172 (possible.) 172 SB
-
-225 405 1192 (The WebSTONE has no interest in the server configuration.) 1192 SB
-
-375 523 121 (Since ) 122 SB
-
-497 523 74 (the ) 76 SB
-
-573 523 134 (object ) 136 SB
-
-709 523 44 (is ) 46 SB
-
-755 523 54 (to ) 56 SB
-
-811 523 155 (control ) 157 SB
-
-968 523 54 (as ) 56 SB
-
-1024 523 121 (much ) 123 SB
-
-1147 523 54 (of ) 56 SB
-
-1203 523 74 (the ) 76 SB
-
-1279 523 120 (client ) 122 SB
-
-1401 523 260 (environment ) 262 SB
-
-1663 523 54 (as ) 56 SB
-
-1719 523 172 (possible ) 174 SB
-
-1893 523 71 (we ) 73 SB
-
-1966 523 166 (decided ) 168 SB
-
-2134 523 41 (to) 41 SB
-
-225 582 44 (is ) 50 SB
-
-275 582 115 (write ) 121 SB
-
-396 582 74 (the ) 80 SB
-
-476 582 230 (benchmark ) 236 SB
-
-712 582 49 (in ) 55 SB
-
-767 582 46 (C ) 52 SB
-
-819 582 84 (and ) 90 SB
-
-909 582 78 (not ) 84 SB
-
-993 582 54 (to ) 60 SB
-
-1053 582 79 (use ) 85 SB
-
-1138 582 166 (existing ) 172 SB
-
-1310 582 108 (code ) 114 SB
-
-1424 582 170 (libraries ) 176 SB
-
-1600 582 54 (as ) 60 SB
-
-1660 582 97 (they ) 103 SB
-
-1763 582 74 (are ) 80 SB
-
-1843 582 78 (not ) 84 SB
-
-1927 582 154 (written ) 161 SB
-
-2088 582 87 (with) 87 SB
-
-225 641 262 (performance ) 264 SB
-
-489 641 49 (in ) 51 SB
-
-540 641 124 (mind. ) 126 SB
-
-666 641 13 ( ) 15 SB
-
-681 641 90 (The ) 92 SB
-
-773 641 230 (benchmark ) 232 SB
-
-1005 641 122 (sends ) 124 SB
-
-1129 641 139 (HTTP ) 141 SB
-
-1270 641 177 (requests ) 179 SB
-
-1449 641 54 (to ) 56 SB
-
-1505 641 74 (the ) 77 SB
-
-1582 641 134 (server ) 137 SB
-
-1719 641 84 (and ) 87 SB
-
-1806 641 98 (then ) 101 SB
-
-1907 641 204 (processes ) 207 SB
-
-2114 641 61 (the) 61 SB
-
-225 700 262 (performance ) 269 SB
-
-494 700 97 (data ) 104 SB
-
-598 700 119 (when ) 126 SB
-
-724 700 123 (done. ) 130 SB
-
-854 700 13 ( ) 20 SB
-
-874 700 99 (This ) 106 SB
-
-980 700 151 (insures ) 159 SB
-
-1139 700 89 (that ) 97 SB
-
-1236 700 98 (only ) 106 SB
-
-1342 700 74 (the ) 82 SB
-
-1424 700 108 (code ) 116 SB
-
-1540 700 203 (necessary ) 211 SB
-
-1751 700 54 (to ) 62 SB
-
-1813 700 165 (execute ) 173 SB
-
-1986 700 74 (the ) 82 SB
-
-2068 700 107 (given) 107 SB
-
-225 759 879 (request is performed in the most direct path.) 879 SB
-
-375 877 168 (Though ) 178 SB
-
-553 877 113 (there ) 123 SB
-
-676 877 85 (will ) 95 SB
-
-771 877 147 (always ) 157 SB
-
-928 877 59 (be ) 69 SB
-
-997 877 132 (added ) 142 SB
-
-1139 877 195 (overhead ) 205 SB
-
-1344 877 49 (in ) 59 SB
-
-1403 877 74 (the ) 84 SB
-
-1487 877 230 (benchmark ) 240 SB
-
-1727 877 83 (this ) 94 SB
-
-1821 877 161 (ensures ) 172 SB
-
-1993 877 74 (the ) 85 SB
-
-2078 877 97 (most) 97 SB
-
-225 936 155 (control ) 160 SB
-
-385 936 102 (over ) 107 SB
-
-492 936 74 (the ) 79 SB
-
-571 936 188 (accuracy ) 193 SB
-
-764 936 54 (of ) 59 SB
-
-823 936 74 (the ) 79 SB
-
-902 936 243 (benchmark. ) 248 SB
-
-1150 936 13 ( ) 18 SB
-
-1168 936 110 (With ) 116 SB
-
-1284 936 83 (this ) 89 SB
-
-1373 936 162 (method ) 168 SB
-
-1541 936 74 (the ) 80 SB
-
-1621 936 109 (layer ) 115 SB
-
-1736 936 54 (of ) 60 SB
-
-1796 936 166 (existing ) 172 SB
-
-1968 936 170 (libraries ) 176 SB
-
-2144 936 31 (is) 31 SB
-
-225 995 1754 (removed and only what is needed to measure the pure performance of the server is used.) 1754 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1114 95 (2.3) 95 SB
-
-375 1114 1185 (Metrics the WebSTONE doesn\222t test) 1185 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1289 121 (Since ) 134 SB
-
-509 1289 83 (this ) 96 SB
-
-605 1289 230 (benchmark ) 243 SB
-
-848 1289 44 (is ) 57 SB
-
-905 1289 217 (concerned ) 230 SB
-
-1135 1289 98 (only ) 111 SB
-
-1246 1289 100 (with ) 113 SB
-
-1359 1289 74 (the ) 87 SB
-
-1446 1289 134 (server ) 147 SB
-
-1593 1289 185 (software ) 198 SB
-
-1791 1289 84 (and ) 98 SB
-
-1889 1289 211 (hardware, ) 225 SB
-
-2114 1289 61 (the) 61 SB
-
-225 1348 267 (WebSTONE ) 273 SB
-
-498 1348 105 (does ) 111 SB
-
-609 1348 78 (not ) 84 SB
-
-693 1348 84 (test ) 91 SB
-
-784 1348 74 (the ) 81 SB
-
-865 1348 174 (browser ) 181 SB
-
-1046 1348 56 (or ) 63 SB
-
-1109 1348 120 (client ) 127 SB
-
-1236 1348 91 (side ) 98 SB
-
-1334 1348 249 (applications ) 256 SB
-
-1590 1348 56 (or ) 63 SB
-
-1653 1348 183 (libraries. ) 190 SB
-
-1843 1348 13 ( ) 20 SB
-
-1863 1348 13 ( ) 20 SB
-
-1883 1348 168 (Though ) 175 SB
-
-2058 1348 49 (in ) 56 SB
-
-2114 1348 61 (the) 61 SB
-
-225 1407 132 (future ) 138 SB
-
-363 1407 40 (it ) 46 SB
-
-409 1407 126 (might ) 132 SB
-
-541 1407 59 (be ) 65 SB
-
-606 1407 54 (of ) 60 SB
-
-666 1407 159 (interest ) 165 SB
-
-831 1407 54 (to ) 61 SB
-
-892 1407 85 (add ) 92 SB
-
-984 1407 83 (this ) 90 SB
-
-1074 1407 54 (to ) 61 SB
-
-1135 1407 74 (the ) 81 SB
-
-1216 1407 243 (benchmark. ) 250 SB
-
-1466 1407 13 ( ) 20 SB
-
-1486 1407 138 (Please ) 145 SB
-
-1631 1407 76 (see ) 83 SB
-
-1714 1407 132 (future ) 139 SB
-
-1853 1407 193 (additions ) 200 SB
-
-2053 1407 54 (to ) 61 SB
-
-2114 1407 61 (the) 61 SB
-
-225 1466 654 (benchmark in chapter 8, later on ) 655 SB
-
-880 1466 49 (in ) 50 SB
-
-930 1466 83 (this ) 84 SB
-
-1014 1466 124 (paper ) 125 SB
-
-1139 1466 71 (for ) 72 SB
-
-1211 1466 117 (other ) 118 SB
-
-1329 1466 157 (metrics ) 158 SB
-
-1487 1466 89 (that ) 90 SB
-
-1577 1466 83 (this ) 84 SB
-
-1661 1466 230 (benchmark ) 231 SB
-
-1892 1466 190 (currently ) 191 SB
-
-2083 1466 92 (does) 92 SB
-
-225 1525 837 (not test but will need to in the near future.) 837 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1673 57 (3.) 57 SB
-
-375 1673 826 (WebSTONE Architecture) 826 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1848 90 (The ) 92 SB
-
-467 1848 267 (WebSTONE ) 269 SB
-
-736 1848 248 (architecture ) 251 SB
-
-987 1848 44 (is ) 47 SB
-
-1034 1848 142 (shown ) 145 SB
-
-1179 1848 49 (in ) 52 SB
-
-1231 1848 129 (figure ) 132 SB
-
-1363 1848 93 (2-1. ) 96 SB
-
-1459 1848 13 ( ) 16 SB
-
-1475 1848 90 (The ) 93 SB
-
-1568 1848 263 (Webchildren ) 266 SB
-
-1834 1848 74 (are ) 77 SB
-
-1911 1848 214 (controlled ) 217 SB
-
-2128 1848 47 (by) 47 SB
-
-225 1907 74 (the ) 76 SB
-
-301 1907 320 (WebMASTER. ) 322 SB
-
-623 1907 13 ( ) 15 SB
-
-638 1907 90 (The ) 92 SB
-
-730 1907 307 (WebMASTER ) 309 SB
-
-1039 1907 174 (controls ) 177 SB
-
-1216 1907 74 (the ) 77 SB
-
-1293 1907 202 (operation ) 205 SB
-
-1498 1907 54 (of ) 57 SB
-
-1555 1907 74 (the ) 77 SB
-
-1632 1907 230 (benchmark ) 233 SB
-
-1865 1907 92 (run. ) 95 SB
-
-1960 1907 13 ( ) 16 SB
-
-1976 1907 67 (As ) 70 SB
-
-2046 1907 129 (shown) 129 SB
-
-225 1966 49 (in ) 50 SB
-
-275 1966 129 (figure ) 130 SB
-
-405 1966 80 (2-1 ) 81 SB
-
-486 1966 113 (there ) 114 SB
-
-600 1966 74 (are ) 75 SB
-
-675 1966 38 (4 ) 39 SB
-
-714 1966 263 (Webchildren ) 264 SB
-
-978 1966 215 (connected ) 216 SB
-
-1194 1966 54 (to ) 55 SB
-
-1249 1966 74 (the ) 75 SB
-
-1324 1966 139 (HTTP ) 140 SB
-
-1464 1966 134 (server ) 135 SB
-
-1599 1966 102 (over ) 103 SB
-
-1702 1966 35 (a ) 36 SB
-
-1738 1966 203 (dedicated ) 204 SB
-
-1942 1966 114 (LAN ) 115 SB
-
-2057 1966 118 (\(LAN) 118 SB
-
-225 2025 68 (1\). ) 77 SB
-
-302 2025 13 ( ) 22 SB
-
-324 2025 90 (The ) 99 SB
-
-423 2025 307 (WebMASTER ) 316 SB
-
-739 2025 44 (is ) 53 SB
-
-792 2025 190 (executed ) 199 SB
-
-991 2025 63 (on ) 72 SB
-
-1063 2025 35 (a ) 44 SB
-
-1107 2025 177 (separate ) 186 SB
-
-1293 2025 148 (system ) 158 SB
-
-1451 2025 157 (outside ) 167 SB
-
-1618 2025 54 (of ) 64 SB
-
-1682 2025 74 (the ) 84 SB
-
-1766 2025 276 (Webchildren. ) 286 SB
-
-2052 2025 13 ( ) 23 SB
-
-2075 2025 13 ( ) 23 SB
-
-2098 2025 77 (The) 77 SB
-
-225 2084 307 (WebMASTER ) 317 SB
-
-542 2084 81 (can ) 91 SB
-
-633 2084 59 (be ) 69 SB
-
-702 2084 79 (run ) 89 SB
-
-791 2084 63 (on ) 73 SB
-
-864 2084 85 (one ) 95 SB
-
-959 2084 54 (of ) 64 SB
-
-1023 2084 74 (the ) 85 SB
-
-1108 2084 139 (clients ) 150 SB
-
-1258 2084 56 (or ) 67 SB
-
-1325 2084 63 (on ) 74 SB
-
-1399 2084 35 (a ) 46 SB
-
-1445 2084 177 (separate ) 188 SB
-
-1633 2084 189 (machine. ) 200 SB
-
-1833 2084 13 ( ) 24 SB
-
-1857 2084 90 (The ) 101 SB
-
-1958 2084 217 (benchmark) 217 SB
-
-225 2143 190 (currently ) 191 SB
-
-416 2143 44 (is ) 45 SB
-
-461 2143 226 (configured ) 227 SB
-
-688 2143 54 (to ) 55 SB
-
-743 2143 79 (run ) 80 SB
-
-823 2143 74 (the ) 75 SB
-
-898 2143 307 (WebMASTER ) 308 SB
-
-1206 2143 63 (on ) 64 SB
-
-1270 2143 35 (a ) 36 SB
-
-1306 2143 176 (machine ) 177 SB
-
-1483 2143 89 (that ) 90 SB
-
-1573 2143 44 (is ) 45 SB
-
-1618 2143 78 (not ) 80 SB
-
-1698 2143 63 (on ) 65 SB
-
-1763 2143 74 (the ) 76 SB
-
-1839 2143 113 (same ) 115 SB
-
-1954 2143 178 (network ) 180 SB
-
-2134 2143 41 (as) 41 SB
-
-225 2202 505 (the clients and the server.) 505 SB
-
-255 255 255 fC
-
-/fm 256 def
-
-150 60 1185 2533 B
-
-1 F
-
-n
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-gs 143 53 1189 2537 CB
-
-1189 2539 117 (LAN 1) 117 SB
-
-gr
-
-255 255 255 fC
-
-/fm 256 def
-
-150 60 705 2533 B
-
-1 F
-
-n
-
-0 0 0 fC
-
-gs 143 53 709 2537 CB
-
-709 2539 117 (LAN 2) 117 SB
-
-gr
-
-0 lc
-
-0 lj
-
-0 0 0 pC
-
-0 3 SP
-
-255 255 255 fC
-
-/fm 256 def
-
-240 420 1695 2383 B
-
-1 F
-
-S
-
-n
-
-0 0 0 fC
-
-gs 229 409 1701 2389 CB
-
-1763 2491 104 (HTTP) 104 SB
-
-gr
-
-gs 229 409 1701 2389 CB
-
-1761 2541 109 (Server) 109 SB
-
-gr
-
-255 255 255 fC
-
-/fm 256 def
-
-210 90 1245 2413 B
-
-1 F
-
-S
-
-n
-
-32 0 0 33 33 0 0 0 29 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-gs 199 79 1251 2419 CB
-
-1251 2420 166 (Webchildren) 166 SB
-
-gr
-
-255 255 255 fC
-
-/fm 256 def
-
-210 90 975 2413 B
-
-1 F
-
-S
-
-n
-
-0 0 0 fC
-
-gs 199 79 981 2419 CB
-
-981 2420 166 (Webchildren) 166 SB
-
-gr
-
-255 255 255 fC
-
-/fm 256 def
-
-210 90 1245 2683 B
-
-1 F
-
-S
-
-n
-
-0 0 0 fC
-
-gs 199 79 1251 2689 CB
-
-1251 2690 166 (Webchildren) 166 SB
-
-gr
-
-255 255 255 fC
-
-/fm 256 def
-
-210 90 975 2683 B
-
-1 F
-
-S
-
-n
-
-0 0 0 fC
-
-gs 199 79 981 2689 CB
-
-981 2690 166 (Webchildren) 166 SB
-
-gr
-
-255 255 255 fC
-
-/fm 256 def
-
-210 240 465 2473 B
-
-1 F
-
-S
-
-n
-
-0 0 0 fC
-
-gs 199 229 471 2479 CB
-
-473 2580 194 (WebMASTER) 194 SB
-
-gr
-
-1 lc
-
-1 lj
-
-1065 2503 M 0 180 1 PP
-
-S
-
-n
-
-1365 2503 M 0 180 1 PP
-
-S
-
-n
-
-1065 2593 M 630 0 1 PP
-
-S
-
-n
-
-885 2593 M 0 -240 1 PP
-
-S
-
-n
-
-885 2593 M 0 240 1 PP
-
-S
-
-n
-
-1065 2353 M 0 60 1 PP
-
-S
-
-n
-
-1335 2353 M 0 60 1 PP
-
-S
-
-n
-
-1365 2833 M 0 -60 1 PP
-
-S
-
-n
-
-1065 2833 M 0 -60 1 PP
-
-S
-
-n
-
-675 2593 M 210 0 1 PP
-
-S
-
-n
-
-885 2833 M 480 0 1 PP
-
-S
-
-n
-
-885 2353 M 450 0 1 PP
-
-S
-
-n
-
-255 255 255 fC
-
-/fm 256 def
-
-1050 90 435 2903 B
-
-1 F
-
-n
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-0 0 0 fC
-
-gs 1043 83 439 2907 CB
-
-439 2909 1021 (Figure 3 A WebSTONE test environment) 1021 SB
-
-gr
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 8 8
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 21 50 2154 2899 CB
-
-2154 2901 21 (8) 21 SB
-
-gr
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 307 110 (With ) 116 SB
-
-491 307 74 (the ) 80 SB
-
-571 307 133 (ability ) 139 SB
-
-710 307 54 (to ) 60 SB
-
-770 307 105 (have ) 111 SB
-
-881 307 74 (the ) 80 SB
-
-961 307 307 (WebMASTER ) 313 SB
-
-1274 307 63 (on ) 70 SB
-
-1344 307 35 (a ) 42 SB
-
-1386 307 180 (different ) 187 SB
-
-1573 307 148 (system ) 155 SB
-
-1728 307 115 (gives ) 122 SB
-
-1850 307 74 (the ) 81 SB
-
-1931 307 196 (flexibility ) 203 SB
-
-2134 307 41 (to) 41 SB
-
-225 366 1845 (have different networks talking to the same server and to have different client configurations.) 1845 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 485 95 (3.1) 95 SB
-
-375 485 709 (WebSTONE Software) 709 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 660 90 (The ) 110 SB
-
-485 660 267 (WebSTONE ) 287 SB
-
-772 660 44 (is ) 64 SB
-
-836 660 35 (a ) 55 SB
-
-891 660 237 (distributed, ) 257 SB
-
-1148 660 281 (multi-process ) 302 SB
-
-1450 660 243 (benchmark. ) 264 SB
-
-1714 660 13 ( ) 34 SB
-
-1748 660 90 (The ) 111 SB
-
-1859 660 145 (master ) 166 SB
-
-2025 660 150 (process) 150 SB
-
-225 719 341 (\(WebMASTER\) ) 360 SB
-
-585 719 118 (reads ) 137 SB
-
-722 719 74 (the ) 93 SB
-
-815 719 120 (client ) 140 SB
-
-955 719 278 (configuration ) 298 SB
-
-1253 719 93 (files ) 113 SB
-
-1366 719 54 (as ) 74 SB
-
-1440 719 95 (well ) 115 SB
-
-1555 719 54 (as ) 74 SB
-
-1629 719 74 (the ) 94 SB
-
-1723 719 206 (command ) 226 SB
-
-1949 719 96 (line. ) 116 SB
-
-2065 719 13 ( ) 33 SB
-
-2098 719 77 (The) 77 SB
-
-225 778 307 (WebMASTER ) 311 SB
-
-536 778 98 (then ) 103 SB
-
-639 778 217 (constructs ) 222 SB
-
-861 778 35 (a ) 40 SB
-
-901 778 206 (command ) 211 SB
-
-1112 778 83 (line ) 88 SB
-
-1200 778 71 (for ) 76 SB
-
-1276 778 103 (each ) 108 SB
-
-1384 778 276 (Webchildren. ) 281 SB
-
-1665 778 13 ( ) 18 SB
-
-1683 778 90 (The ) 95 SB
-
-1778 778 307 (WebMASTER ) 312 SB
-
-2090 778 85 (then) 85 SB
-
-225 837 187 (remotely ) 193 SB
-
-418 837 158 (spawns ) 164 SB
-
-582 837 74 (the ) 80 SB
-
-662 837 276 (Webchildren. ) 282 SB
-
-944 837 13 ( ) 19 SB
-
-963 837 112 (Each ) 118 SB
-
-1081 837 54 (of ) 60 SB
-
-1141 837 74 (the ) 80 SB
-
-1221 837 263 (Webchildren ) 269 SB
-
-1490 837 98 (then ) 105 SB
-
-1595 837 118 (reads ) 125 SB
-
-1720 837 74 (the ) 81 SB
-
-1801 837 206 (command ) 213 SB
-
-2014 837 83 (line ) 90 SB
-
-2104 837 71 (and) 71 SB
-
-225 896 151 (startup ) 156 SB
-
-381 896 317 (communication ) 322 SB
-
-703 896 100 (with ) 105 SB
-
-808 896 74 (the ) 79 SB
-
-887 896 320 (WebMASTER. ) 325 SB
-
-1212 896 13 ( ) 18 SB
-
-1230 896 117 (After ) 122 SB
-
-1352 896 59 (all ) 64 SB
-
-1416 896 74 (the ) 79 SB
-
-1495 896 263 (Webchildren ) 268 SB
-
-1763 896 105 (have ) 111 SB
-
-1874 896 105 (been ) 111 SB
-
-1985 896 190 (initialized) 190 SB
-
-225 955 1482 (the WebMASTER instructs the Webchildren to commence the benchmark.) 1482 SB
-
-375 1073 67 (As ) 69 SB
-
-444 1073 103 (each ) 105 SB
-
-549 1073 263 (Webchildren ) 265 SB
-
-814 1073 160 (finishes ) 163 SB
-
-977 1073 59 (its ) 62 SB
-
-1039 1073 79 (run ) 82 SB
-
-1121 1073 74 (the ) 77 SB
-
-1198 1073 307 (WebMASTER ) 310 SB
-
-1508 1073 163 (collects ) 166 SB
-
-1674 1073 74 (the ) 77 SB
-
-1751 1073 97 (data ) 100 SB
-
-1851 1073 108 (from ) 111 SB
-
-1962 1073 103 (each ) 106 SB
-
-2068 1073 107 (client) 107 SB
-
-225 1132 84 (and ) 89 SB
-
-314 1132 199 (coalesces ) 204 SB
-
-518 1132 74 (the ) 79 SB
-
-597 1132 97 (data ) 102 SB
-
-699 1132 90 (into ) 96 SB
-
-795 1132 35 (a ) 41 SB
-
-836 1132 148 (report. ) 154 SB
-
-990 1132 13 ( ) 19 SB
-
-1009 1132 152 (During ) 158 SB
-
-1167 1132 74 (the ) 80 SB
-
-1247 1132 79 (run ) 85 SB
-
-1332 1132 74 (the ) 80 SB
-
-1412 1132 263 (Webchildren ) 269 SB
-
-1681 1132 74 (are ) 80 SB
-
-1761 1132 258 (autonomous ) 264 SB
-
-2025 1132 54 (of ) 60 SB
-
-2085 1132 90 (each) 90 SB
-
-225 1191 582 (other and the WebMASTER.) 582 SB
-
-375 1309 141 (Figure ) 142 SB
-
-517 1309 76 (3.1 ) 77 SB
-
-594 1309 137 (shows ) 139 SB
-
-733 1309 59 (an ) 61 SB
-
-794 1309 177 (example ) 179 SB
-
-973 1309 54 (of ) 56 SB
-
-1029 1309 35 (a ) 37 SB
-
-1066 1309 144 (typical ) 146 SB
-
-1212 1309 120 (client ) 122 SB
-
-1334 1309 164 (running ) 166 SB
-
-1500 1309 38 (3 ) 40 SB
-
-1540 1309 276 (Webchildren. ) 278 SB
-
-1818 1309 13 ( ) 15 SB
-
-1833 1309 90 (The ) 92 SB
-
-1925 1309 250 (Webchildren) 250 SB
-
-225 1368 74 (are ) 78 SB
-
-303 1368 186 (spawned ) 190 SB
-
-493 1368 60 (by ) 64 SB
-
-557 1368 74 (the ) 78 SB
-
-635 1368 320 (WebMASTER. ) 324 SB
-
-959 1368 13 ( ) 18 SB
-
-977 1368 112 (Each ) 117 SB
-
-1094 1368 200 (Webchild ) 205 SB
-
-1299 1368 98 (then ) 103 SB
-
-1402 1368 118 (reads ) 123 SB
-
-1525 1368 59 (its ) 64 SB
-
-1589 1368 278 (configuration ) 283 SB
-
-1872 1368 93 (files ) 98 SB
-
-1970 1368 84 (and ) 89 SB
-
-2059 1368 116 (opens) 116 SB
-
-225 1427 513 (log files if part of the test.) 513 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 241 121 1515 1683 CB
-
-1515 1685 104 (HTTP) 104 SB
-
-gr
-
-gs 241 121 1515 1683 CB
-
-1515 1735 109 (Server) 109 SB
-
-gr
-
-1 lc
-
-1 lj
-
-0 0 0 pC
-
-0 1 SP
-
-gs 151 1 675 1683 CB
-
-825 1683 M -150 0 1 PP
-
-S
-
-n
-
-gr
-
-gs 1 301 1215 1653 CB
-
-1215 1653 M 0 300 1 PP
-
-S
-
-n
-
-gr
-
-gs 1 541 675 1683 CB
-
-675 1683 M 0 540 1 PP
-
-S
-
-n
-
-gr
-
-255 255 255 fC
-
-/fm 256 def
-
-210 60 855 1653 B
-
-1 F
-
-n
-
-32 0 0 33 33 0 0 0 29 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-gs 211 61 855 1653 CB
-
-855 1654 166 (Webchildren) 166 SB
-
-gr
-
-120 45 944 1667 E
-
-S
-
-n
-
-255 255 255 fC
-
-/fm 256 def
-
-210 60 855 1773 B
-
-1 F
-
-n
-
-0 0 0 fC
-
-gs 211 61 855 1773 CB
-
-855 1774 166 (Webchildren) 166 SB
-
-gr
-
-120 45 944 1787 E
-
-S
-
-n
-
-255 255 255 fC
-
-/fm 256 def
-
-210 60 855 1923 B
-
-1 F
-
-n
-
-0 0 0 fC
-
-gs 211 61 855 1923 CB
-
-855 1924 166 (Webchildren) 166 SB
-
-gr
-
-120 45 944 1937 E
-
-S
-
-n
-
-0 lc
-
-0 lj
-
-0 3 SP
-
-930 750 555 1593 B
-
-S
-
-n
-
-255 255 255 fC
-
-/fm 256 def
-
-90 120 915 2133 B
-
-1 F
-
-n
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-gs 83 113 919 2137 CB
-
-919 2139 66 (Log) 66 SB
-
-gr
-
-gs 83 113 919 2137 CB
-
-919 2189 71 (files) 71 SB
-
-gr
-
-1 lc
-
-1 lj
-
-255 255 255 fC
-
-/fm 256 def
-
-45 30 959 2102 E
-
-1 F
-
-S
-
-n
-
-1005 2103 M 0 180 1 PP
-
-S
-
-n
-
-915 2103 M 0 180 1 PP
-
-S
-
-n
-
-/fm 256 def
-
-45 30 959 2282 E
-
-1 F
-
-S
-
-n
-
-814 1653 M -368 0 1 PP
-
-S
-
-n
-
-0 1 SP
-
-0 0 0 fC
-
-/fm 256 def
-
-450 1663 M 15 10 -15 10 0 -20 3 PP
-
-1 F
-
-S
-
-n
-
-/fm 256 def
-
-810 1643 M -15 -10 15 -10 0 20 3 PP
-
-1 F
-
-S
-
-n
-
-0 3 SP
-
-814 1773 M -368 0 1 PP
-
-S
-
-n
-
-0 1 SP
-
-/fm 256 def
-
-450 1783 M 15 10 -15 9 0 -19 3 PP
-
-1 F
-
-S
-
-n
-
-/fm 256 def
-
-810 1764 M -15 -9 15 -10 0 19 3 PP
-
-1 F
-
-S
-
-n
-
-0 3 SP
-
-814 1923 M -368 0 1 PP
-
-S
-
-n
-
-0 1 SP
-
-/fm 256 def
-
-450 1933 M 15 10 -15 10 0 -20 3 PP
-
-1 F
-
-S
-
-n
-
-/fm 256 def
-
-810 1913 M -15 -10 15 -10 0 20 3 PP
-
-1 F
-
-S
-
-n
-
-32 0 0 38 38 0 0 0 34 /Times-Roman /font32 ANSIFont font
-
-gs 241 61 315 1593 CB
-
-315 1595 233 ( WebMASTER) 233 SB
-
-gr
-
-gs 241 61 315 1711 CB
-
-315 1713 233 ( WebMASTER) 233 SB
-
-gr
-
-gs 241 61 315 1863 CB
-
-315 1865 233 ( WebMASTER) 233 SB
-
-gr
-
-0 3 SP
-
-1076 1653 M 128 0 1 PP
-
-S
-
-n
-
-0 1 SP
-
-/fm 256 def
-
-1200 1643 M -15 -10 15 -10 0 20 3 PP
-
-1 F
-
-S
-
-n
-
-/fm 256 def
-
-1080 1663 M 15 10 -15 10 0 -20 3 PP
-
-1 F
-
-S
-
-n
-
-0 3 SP
-
-1076 1803 M 128 0 1 PP
-
-S
-
-n
-
-0 1 SP
-
-/fm 256 def
-
-1200 1794 M -15 -9 15 -10 0 19 3 PP
-
-1 F
-
-S
-
-n
-
-/fm 256 def
-
-1080 1813 M 15 10 -15 9 0 -19 3 PP
-
-1 F
-
-S
-
-n
-
-0 3 SP
-
-1076 1953 M 128 0 1 PP
-
-S
-
-n
-
-0 1 SP
-
-/fm 256 def
-
-1200 1943 M -15 -10 15 -10 0 20 3 PP
-
-1 F
-
-S
-
-n
-
-/fm 256 def
-
-1080 1963 M 15 10 -15 10 0 -20 3 PP
-
-1 F
-
-S
-
-n
-
-0 3 SP
-
-1226 1803 M 428 0 1 PP
-
-S
-
-n
-
-0 1 SP
-
-/fm 256 def
-
-1650 1794 M -15 -9 15 -10 0 19 3 PP
-
-1 F
-
-S
-
-n
-
-/fm 256 def
-
-1230 1813 M 15 10 -15 9 0 -19 3 PP
-
-1 F
-
-S
-
-n
-
-gs 151 1 675 1803 CB
-
-825 1803 M -150 0 1 PP
-
-S
-
-n
-
-gr
-
-gs 151 1 675 1953 CB
-
-825 1953 M -150 0 1 PP
-
-S
-
-n
-
-gr
-
-0 3 SP
-
-675 2223 M 229 0 1 PP
-
-S
-
-n
-
-0 1 SP
-
-/fm 256 def
-
-900 2213 M -15 -10 15 -10 0 20 3 PP
-
-1 F
-
-S
-
-n
-
-255 255 255 fC
-
-/fm 256 def
-
-120 120 1155 2133 B
-
-1 F
-
-n
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-gs 113 113 1159 2137 CB
-
-1159 2139 106 (config) 106 SB
-
-gr
-
-gs 113 113 1159 2137 CB
-
-1159 2189 71 (files) 71 SB
-
-gr
-
-0 3 SP
-
-255 255 255 fC
-
-/fm 256 def
-
-60 30 1214 2102 E
-
-1 F
-
-S
-
-n
-
-1275 2103 M 0 180 1 PP
-
-S
-
-n
-
-1155 2103 M 0 180 1 PP
-
-S
-
-n
-
-/fm 256 def
-
-60 30 1214 2282 E
-
-1 F
-
-S
-
-n
-
-1215 2073 M -146 -380 1 PP
-
-S
-
-n
-
-0 1 SP
-
-0 0 0 fC
-
-/fm 256 def
-
-1061 1701 M -4 18 -14 -10 18 -8 3 PP
-
-1 F
-
-S
-
-n
-
-0 3 SP
-
-1185 2073 M -144 -230 1 PP
-
-S
-
-n
-
-0 1 SP
-
-/fm 256 def
-
-1034 1851 M -1 18 -16 -8 17 -10 3 PP
-
-1 F
-
-S
-
-n
-
-0 3 SP
-
-1155 2103 M -112 -112 1 PP
-
-S
-
-n
-
-0 1 SP
-
-/fm 256 def
-
-1038 2000 M 3 17 -17 -4 14 -13 3 PP
-
-1 F
-
-S
-
-n
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-gs 691 91 645 2373 CB
-
-645 2375 587 (Figure 3.1 Webchildren) 587 SB
-
-gr
-
-gs 691 91 645 2373 CB
-
-645 2444 134 (client) 134 SB
-
-gr
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 9 9
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 21 50 2154 2899 CB
-
-2154 2901 21 (9) 21 SB
-
-gr
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 170 912 (4. Configuration Parameters) 912 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 326 1800 (Since the WebSTONE can has many variables this gives the flexibility to configure and run) 1800 SB
-
-225 385 119 (many ) 123 SB
-
-348 385 180 (different ) 184 SB
-
-532 385 138 (suites. ) 142 SB
-
-674 385 13 ( ) 17 SB
-
-691 385 90 (The ) 94 SB
-
-785 385 182 (standard ) 186 SB
-
-971 385 86 (mix ) 90 SB
-
-1061 385 54 (of ) 58 SB
-
-1119 385 93 (files ) 97 SB
-
-1216 385 85 (will ) 89 SB
-
-1305 385 96 (give ) 100 SB
-
-1405 385 35 (a ) 40 SB
-
-1445 385 157 (general ) 162 SB
-
-1607 385 262 (performance ) 267 SB
-
-1874 385 201 (indicator. ) 206 SB
-
-2080 385 13 ( ) 18 SB
-
-2098 385 77 (The) 77 SB
-
-225 444 979 (parameters that are configurable are listed below:) 979 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 639 23 (\267) 24 SB
-
-250 639 13 ( ) 51 SB
-
-225 639 23 (\267) 24 SB
-
-249 639 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 643 336 (Duration of test) 336 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 700 23 (\267) 24 SB
-
-250 700 13 ( ) 51 SB
-
-225 700 23 (\267) 24 SB
-
-249 700 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 704 365 (Repetition of test) 365 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 761 23 (\267) 24 SB
-
-250 761 13 ( ) 51 SB
-
-225 761 23 (\267) 24 SB
-
-249 761 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 765 327 (Number of files) 327 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 822 23 (\267) 24 SB
-
-250 822 13 ( ) 51 SB
-
-225 822 23 (\267) 24 SB
-
-249 822 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 826 362 (Number of pages) 362 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 883 23 (\267) 24 SB
-
-250 883 13 ( ) 51 SB
-
-225 883 23 (\267) 24 SB
-
-249 883 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 887 947 (Server software and hardware configuration) 947 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 944 23 (\267) 24 SB
-
-250 944 13 ( ) 51 SB
-
-225 944 23 (\267) 24 SB
-
-249 944 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 948 519 (Number of Webchildren) 519 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 1005 23 (\267) 24 SB
-
-250 1005 13 ( ) 51 SB
-
-225 1005 23 (\267) 24 SB
-
-249 1005 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 1009 438 (Number of networks) 438 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 1066 23 (\267) 24 SB
-
-250 1066 13 ( ) 51 SB
-
-225 1066 23 (\267) 24 SB
-
-249 1066 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 1070 378 (Number of clients) 378 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 1127 23 (\267) 24 SB
-
-250 1127 13 ( ) 51 SB
-
-225 1127 23 (\267) 24 SB
-
-249 1127 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 1131 400 (Workload of pages) 400 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 1188 23 (\267) 24 SB
-
-250 1188 13 ( ) 51 SB
-
-225 1188 23 (\267) 24 SB
-
-249 1188 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 1192 175 (Logging) 175 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 1249 23 (\267) 24 SB
-
-250 1249 13 ( ) 51 SB
-
-225 1249 23 (\267) 24 SB
-
-249 1249 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 1253 231 (Debugging) 231 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1382 615 (4.1 Duration of test) 615 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1557 1219 (The WebSTONE is designed to run for a specified duration. ) 1220 SB
-
-1595 1557 48 (A ) 49 SB
-
-1644 1557 120 (given ) 121 SB
-
-1765 1557 84 (test ) 85 SB
-
-1850 1557 44 (is ) 45 SB
-
-1895 1557 79 (run ) 80 SB
-
-1975 1557 49 (in ) 50 SB
-
-2025 1557 108 (units ) 109 SB
-
-2134 1557 41 (of) 41 SB
-
-225 1616 180 (minutes. ) 189 SB
-
-414 1616 90 (The ) 99 SB
-
-513 1616 207 (maximum ) 216 SB
-
-729 1616 164 (running ) 173 SB
-
-902 1616 99 (time ) 108 SB
-
-1010 1616 44 (is ) 53 SB
-
-1063 1616 217 (dependent ) 226 SB
-
-1289 1616 63 (on ) 72 SB
-
-1361 1616 104 (your ) 113 SB
-
-1474 1616 120 (client ) 129 SB
-
-1603 1616 175 (memory ) 184 SB
-
-1787 1616 84 (and ) 93 SB
-
-1880 1616 74 (the ) 83 SB
-
-1963 1616 162 (number ) 171 SB
-
-2134 1616 41 (of) 41 SB
-
-225 1675 515 (Webchildren to be spawn.) 515 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1794 576 (4.2 Repetition test) 576 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1969 90 (The ) 91 SB
-
-466 1969 267 (WebSTONE ) 268 SB
-
-734 1969 78 (has ) 80 SB
-
-814 1969 74 (the ) 76 SB
-
-890 1969 133 (ability ) 135 SB
-
-1025 1969 54 (to ) 56 SB
-
-1081 1969 79 (run ) 81 SB
-
-1162 1969 71 (for ) 73 SB
-
-1235 1969 35 (a ) 37 SB
-
-1272 1969 162 (number ) 164 SB
-
-1436 1969 54 (of ) 56 SB
-
-1492 1969 210 (iterations. ) 212 SB
-
-1704 1969 13 ( ) 15 SB
-
-1719 1969 99 (This ) 101 SB
-
-1820 1969 44 (is ) 46 SB
-
-1866 1969 181 (basically ) 183 SB
-
-2049 1969 35 (a ) 37 SB
-
-2086 1969 89 (loop) 89 SB
-
-225 2028 177 (counter. ) 178 SB
-
-403 2028 13 ( ) 14 SB
-
-417 2028 83 (For ) 84 SB
-
-501 2028 191 (example: ) 192 SB
-
-693 2028 13 ( ) 14 SB
-
-707 2028 45 (If ) 46 SB
-
-753 2028 74 (the ) 75 SB
-
-828 2028 84 (test ) 85 SB
-
-913 2028 169 (consists ) 170 SB
-
-1083 2028 54 (of ) 55 SB
-
-1138 2028 35 (a ) 36 SB
-
-1174 2028 69 (set ) 71 SB
-
-1245 2028 54 (of ) 56 SB
-
-1301 2028 38 (4 ) 40 SB
-
-1341 2028 93 (files ) 95 SB
-
-1436 2028 84 (and ) 86 SB
-
-1522 2028 74 (the ) 76 SB
-
-1598 2028 84 (test ) 86 SB
-
-1684 2028 54 (to ) 56 SB
-
-1740 2028 59 (be ) 61 SB
-
-1801 2028 79 (run ) 81 SB
-
-1882 2028 90 (was ) 92 SB
-
-1974 2028 54 (to ) 56 SB
-
-2030 2028 145 (request) 145 SB
-
-225 2087 103 (each ) 105 SB
-
-330 2087 74 (file ) 76 SB
-
-406 2087 38 (1 ) 40 SB
-
-446 2087 99 (time ) 101 SB
-
-547 2087 84 (and ) 86 SB
-
-633 2087 98 (then ) 100 SB
-
-733 2087 135 (report ) 137 SB
-
-870 2087 106 (back ) 108 SB
-
-978 2087 74 (the ) 76 SB
-
-1054 2087 128 (status ) 131 SB
-
-1185 2087 54 (of ) 57 SB
-
-1242 2087 89 (that ) 92 SB
-
-1334 2087 79 (run ) 82 SB
-
-1416 2087 74 (the ) 77 SB
-
-1493 2087 230 (benchmark ) 233 SB
-
-1726 2087 137 (would ) 140 SB
-
-1866 2087 98 (then ) 101 SB
-
-1967 2087 164 (attempt ) 167 SB
-
-2134 2087 41 (to) 41 SB
-
-225 2146 1427 (retrieve each file one time and then generate a report based on this data.) 1427 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 2265 605 (4.3 Number of files) 605 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2440 1019 (There are two different ways to read files or UIL\222s ) 1020 SB
-
-1395 2440 90 (into ) 91 SB
-
-1486 2440 74 (the ) 75 SB
-
-1561 2440 243 (benchmark. ) 244 SB
-
-1805 2440 13 ( ) 14 SB
-
-1819 2440 90 (The ) 91 SB
-
-1910 2440 265 (configuration) 265 SB
-
-225 2499 712 (file \223filelist\224 contains a list of pages ) 713 SB
-
-938 2499 84 (and ) 85 SB
-
-1023 2499 93 (files ) 94 SB
-
-1117 2499 89 (that ) 90 SB
-
-1207 2499 74 (are ) 75 SB
-
-1282 2499 156 (already ) 157 SB
-
-1439 2499 303 (preconfigured. ) 304 SB
-
-1743 2499 13 ( ) 14 SB
-
-1757 2499 129 (There ) 130 SB
-
-1887 2499 44 (is ) 45 SB
-
-1932 2499 35 (a ) 36 SB
-
-1968 2499 101 (limit ) 102 SB
-
-2070 2499 54 (of ) 55 SB
-
-2125 2499 50 (50) 50 SB
-
-225 2558 1240 (files per page in the current implementation of this benchmark.) 1240 SB
-
-375 2676 90 (The ) 91 SB
-
-466 2676 117 (other ) 118 SB
-
-584 2676 94 (way ) 95 SB
-
-679 2676 54 (to ) 55 SB
-
-734 2676 99 (read ) 100 SB
-
-834 2676 93 (files ) 94 SB
-
-928 2676 90 (into ) 91 SB
-
-1019 2676 74 (the ) 75 SB
-
-1094 2676 79 (run ) 80 SB
-
-1174 2676 44 (is ) 45 SB
-
-1219 2676 50 (at ) 51 SB
-
-1270 2676 74 (the ) 75 SB
-
-1345 2676 206 (command ) 207 SB
-
-1552 2676 96 (line. ) 97 SB
-
-1649 2676 13 ( ) 14 SB
-
-1663 2676 90 (The ) 91 SB
-
-1754 2676 96 (user ) 97 SB
-
-1851 2676 95 (may ) 96 SB
-
-1947 2676 71 (list ) 72 SB
-
-2019 2676 74 (the ) 76 SB
-
-2095 2676 80 (files) 80 SB
-
-225 2735 54 (to ) 59 SB
-
-284 2735 59 (be ) 64 SB
-
-348 2735 131 (tested ) 136 SB
-
-484 2735 63 (on ) 68 SB
-
-552 2735 74 (the ) 79 SB
-
-631 2735 206 (command ) 211 SB
-
-842 2735 96 (line. ) 102 SB
-
-944 2735 13 ( ) 19 SB
-
-963 2735 99 (This ) 105 SB
-
-1068 2735 44 (is ) 50 SB
-
-1118 2735 148 (limited ) 154 SB
-
-1272 2735 60 (by ) 66 SB
-
-1338 2735 74 (the ) 80 SB
-
-1418 2735 162 (number ) 168 SB
-
-1586 2735 54 (of ) 60 SB
-
-1646 2735 219 (arguments ) 225 SB
-
-1871 2735 168 (allowed ) 174 SB
-
-2045 2735 63 (on ) 69 SB
-
-2114 2735 61 (the) 61 SB
-
-225 2794 289 (command line.) 289 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Symbol
-
-%%+ font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 10 10
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (10) 42 SB
-
-gr
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 239 654 (4.4 Number of pages) 654 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 414 261 (At this point ) 262 SB
-
-637 414 74 (the ) 75 SB
-
-712 414 169 (concept ) 170 SB
-
-882 414 54 (of ) 55 SB
-
-937 414 35 (a ) 36 SB
-
-973 414 107 (page ) 108 SB
-
-1081 414 125 (needs ) 126 SB
-
-1207 414 54 (to ) 55 SB
-
-1262 414 59 (be ) 60 SB
-
-1322 414 239 (introduced. ) 240 SB
-
-1562 414 13 ( ) 14 SB
-
-1576 414 121 (Since ) 122 SB
-
-1698 414 74 (the ) 75 SB
-
-1773 414 169 (concept ) 170 SB
-
-1943 414 54 (of ) 55 SB
-
-1998 414 35 (a ) 36 SB
-
-2034 414 141 (HTML) 141 SB
-
-225 473 209 (document ) 214 SB
-
-439 473 44 (is ) 49 SB
-
-488 473 85 (one ) 90 SB
-
-578 473 89 (that ) 94 SB
-
-672 473 78 (has ) 83 SB
-
-755 473 89 (text ) 94 SB
-
-849 473 100 (with ) 105 SB
-
-954 473 119 (inline ) 124 SB
-
-1078 473 150 (images ) 155 SB
-
-1233 473 84 (like ) 89 SB
-
-1322 473 93 (GIF ) 98 SB
-
-1420 473 84 (and ) 89 SB
-
-1509 473 127 (JPEG ) 132 SB
-
-1641 473 49 (in ) 54 SB
-
-1695 473 53 (it, ) 58 SB
-
-1753 473 113 (there ) 118 SB
-
-1871 473 44 (is ) 49 SB
-
-1920 473 35 (a ) 40 SB
-
-1960 473 215 (conceptual) 215 SB
-
-225 532 107 (view ) 108 SB
-
-333 532 89 (that ) 90 SB
-
-423 532 35 (a ) 36 SB
-
-459 532 107 (page ) 108 SB
-
-567 532 44 (is ) 45 SB
-
-612 532 74 (the ) 75 SB
-
-687 532 154 (HTML ) 155 SB
-
-842 532 89 (text ) 90 SB
-
-932 532 94 (plus ) 95 SB
-
-1027 532 59 (all ) 61 SB
-
-1088 532 74 (the ) 76 SB
-
-1164 532 93 (GIF ) 95 SB
-
-1259 532 84 (and ) 86 SB
-
-1345 532 127 (JPEG ) 129 SB
-
-1474 532 93 (files ) 95 SB
-
-1569 532 89 (that ) 91 SB
-
-1660 532 74 (are ) 76 SB
-
-1736 532 217 (associated ) 219 SB
-
-1955 532 100 (with ) 102 SB
-
-2057 532 40 (it ) 42 SB
-
-2099 532 76 (that) 76 SB
-
-225 591 119 (make ) 120 SB
-
-345 591 54 (to ) 55 SB
-
-400 591 133 (whole ) 134 SB
-
-534 591 222 (document. ) 223 SB
-
-757 591 13 ( ) 14 SB
-
-771 591 99 (This ) 100 SB
-
-871 591 196 (approach ) 197 SB
-
-1068 591 90 (was ) 91 SB
-
-1159 591 121 (taken ) 122 SB
-
-1281 591 54 (to ) 55 SB
-
-1336 591 133 (mimic ) 134 SB
-
-1470 591 54 (as ) 55 SB
-
-1525 591 149 (closely ) 150 SB
-
-1675 591 54 (to ) 55 SB
-
-1730 591 35 (a ) 36 SB
-
-1766 591 86 (real ) 87 SB
-
-1853 591 74 (life ) 75 SB
-
-1928 591 247 (environment) 247 SB
-
-225 650 126 (usage ) 128 SB
-
-353 650 148 (patters ) 150 SB
-
-503 650 134 (where ) 137 SB
-
-640 650 93 (GIF ) 96 SB
-
-736 650 84 (and ) 87 SB
-
-823 650 127 (JPEG ) 130 SB
-
-953 650 144 (inlined ) 147 SB
-
-1100 650 150 (images ) 153 SB
-
-1253 650 74 (are ) 77 SB
-
-1330 650 278 (automatically ) 281 SB
-
-1611 650 124 (down ) 127 SB
-
-1738 650 98 (load ) 101 SB
-
-1839 650 113 (upon ) 116 SB
-
-1955 650 176 (retrieval ) 179 SB
-
-2134 650 41 (of) 41 SB
-
-225 709 74 (the ) 78 SB
-
-303 709 154 (HTML ) 158 SB
-
-461 709 89 (text ) 93 SB
-
-554 709 120 (page. ) 125 SB
-
-679 709 13 ( ) 18 SB
-
-697 709 209 (Therefore ) 214 SB
-
-911 709 108 (from ) 113 SB
-
-1024 709 83 (this ) 88 SB
-
-1112 709 115 (point ) 120 SB
-
-1232 709 63 (on ) 68 SB
-
-1300 709 35 (a ) 40 SB
-
-1340 709 107 (page ) 112 SB
-
-1452 709 85 (will ) 90 SB
-
-1542 709 59 (be ) 64 SB
-
-1606 709 227 (considered ) 232 SB
-
-1838 709 74 (the ) 79 SB
-
-1917 709 69 (set ) 74 SB
-
-1991 709 54 (of ) 59 SB
-
-2050 709 93 (files ) 98 SB
-
-2148 709 27 (it) 27 SB
-
-225 768 116 (takes ) 117 SB
-
-342 768 54 (to ) 55 SB
-
-397 768 133 (create ) 134 SB
-
-531 768 59 (an ) 60 SB
-
-591 768 154 (HTML ) 155 SB
-
-746 768 187 (viewable ) 188 SB
-
-934 768 222 (document. ) 223 SB
-
-1157 768 13 ( ) 14 SB
-
-1171 768 126 (Note: ) 127 SB
-
-1298 768 13 ( ) 14 SB
-
-1312 768 168 (Though ) 169 SB
-
-1481 768 49 (in ) 50 SB
-
-1531 768 86 (real ) 87 SB
-
-1618 768 74 (life ) 76 SB
-
-1694 768 59 (an ) 61 SB
-
-1755 768 249 (applications ) 251 SB
-
-2006 768 169 (program) 169 SB
-
-225 827 137 (would ) 142 SB
-
-367 827 74 (lite ) 79 SB
-
-446 827 69 (off ) 74 SB
-
-520 827 59 (all ) 64 SB
-
-584 827 74 (the ) 79 SB
-
-663 827 158 (request ) 163 SB
-
-826 827 71 (for ) 76 SB
-
-902 827 74 (the ) 79 SB
-
-981 827 93 (files ) 98 SB
-
-1079 827 50 (at ) 55 SB
-
-1134 827 85 (one ) 90 SB
-
-1224 827 112 (time, ) 117 SB
-
-1341 827 40 (it ) 45 SB
-
-1386 827 90 (was ) 95 SB
-
-1481 827 166 (decided ) 171 SB
-
-1652 827 89 (that ) 94 SB
-
-1746 827 83 (this ) 88 SB
-
-1834 827 90 (was ) 95 SB
-
-1929 827 78 (not ) 84 SB
-
-2013 827 59 (an ) 65 SB
-
-2078 827 97 (issue) 97 SB
-
-225 886 112 (since ) 129 SB
-
-354 886 173 (multiple ) 190 SB
-
-544 886 171 (children ) 188 SB
-
-732 886 79 (run ) 96 SB
-
-828 886 63 (on ) 80 SB
-
-908 886 103 (each ) 120 SB
-
-1028 886 120 (client ) 138 SB
-
-1166 886 84 (and ) 102 SB
-
-1268 886 89 (that ) 107 SB
-
-1375 886 74 (the ) 92 SB
-
-1467 886 183 (acquired ) 201 SB
-
-1668 886 124 (affect ) 142 SB
-
-1810 886 54 (of ) 72 SB
-
-1882 886 293 (simultaneously) 293 SB
-
-225 945 609 (connections is stilled achieved.) 609 SB
-
-375 1092 90 (The ) 91 SB
-
-466 1092 267 (WebSTONE ) 268 SB
-
-734 1092 44 (is ) 45 SB
-
-779 1092 187 (designed ) 188 SB
-
-967 1092 54 (to ) 55 SB
-
-1022 1092 79 (use ) 80 SB
-
-1102 1092 74 (the ) 75 SB
-
-1177 1092 169 (concept ) 170 SB
-
-1347 1092 54 (of ) 55 SB
-
-1402 1092 126 (pages ) 127 SB
-
-1529 1092 141 (during ) 142 SB
-
-1671 1092 158 (testing. ) 159 SB
-
-1830 1092 90 (The ) 91 SB
-
-1921 1092 254 (WebSTONE) 254 SB
-
-225 1151 1104 (is able to handle up to 100 pages with 50 files per page.) 1104 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1270 1837 (4.5 All of the server software and hardware configuration) 1837 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1445 168 (Though ) 186 SB
-
-561 1445 74 (the ) 92 SB
-
-653 1445 267 (WebSTONE ) 285 SB
-
-938 1445 44 (is ) 62 SB
-
-1000 1445 140 (design ) 158 SB
-
-1158 1445 54 (to ) 72 SB
-
-1230 1445 84 (test ) 102 SB
-
-1332 1445 180 (different ) 198 SB
-
-1530 1445 134 (server ) 153 SB
-
-1683 1445 185 (software ) 204 SB
-
-1887 1445 84 (and ) 103 SB
-
-1990 1445 185 (hardware) 185 SB
-
-225 1504 297 (configurations ) 300 SB
-
-525 1504 74 (the ) 77 SB
-
-602 1504 230 (benchmark ) 233 SB
-
-835 1504 49 (in ) 52 SB
-
-887 1504 108 (itself ) 111 SB
-
-998 1504 105 (does ) 108 SB
-
-1106 1504 78 (not ) 81 SB
-
-1187 1504 252 (discriminate ) 255 SB
-
-1442 1504 54 (as ) 57 SB
-
-1499 1504 54 (to ) 57 SB
-
-1556 1504 291 (configuration. ) 294 SB
-
-1850 1504 13 ( ) 17 SB
-
-1867 1504 99 (This ) 103 SB
-
-1970 1504 140 (allows ) 144 SB
-
-2114 1504 61 (the) 61 SB
-
-225 1563 123 (tester ) 134 SB
-
-359 1563 54 (to ) 65 SB
-
-424 1563 68 (try ) 80 SB
-
-504 1563 180 (different ) 192 SB
-
-696 1563 297 (configurations ) 309 SB
-
-1005 1563 49 (in ) 61 SB
-
-1066 1563 120 (order ) 132 SB
-
-1198 1563 54 (to ) 66 SB
-
-1264 1563 161 (achieve ) 173 SB
-
-1437 1563 162 (optimal ) 174 SB
-
-1611 1563 262 (performance ) 274 SB
-
-1885 1563 71 (for ) 83 SB
-
-1968 1563 74 (the ) 86 SB
-
-2054 1563 121 (server) 121 SB
-
-225 1622 185 (software ) 189 SB
-
-414 1622 84 (and ) 88 SB
-
-502 1622 211 (hardware. ) 215 SB
-
-717 1622 13 ( ) 17 SB
-
-734 1622 161 (NOTE: ) 165 SB
-
-899 1622 54 (In ) 58 SB
-
-957 1622 163 (fairness ) 167 SB
-
-1124 1622 74 (the ) 78 SB
-
-1202 1622 103 (tests ) 107 SB
-
-1309 1622 144 (should ) 148 SB
-
-1457 1622 59 (be ) 63 SB
-
-1520 1622 79 (run ) 83 SB
-
-1603 1622 100 (with ) 104 SB
-
-1707 1622 74 (the ) 78 SB
-
-1785 1622 113 (same ) 117 SB
-
-1902 1622 198 (hardware ) 202 SB
-
-2104 1622 71 (and) 71 SB
-
-225 1681 544 (software as reported in the ) 545 SB
-
-770 1681 84 (test ) 85 SB
-
-855 1681 155 (results. ) 156 SB
-
-1011 1681 13 ( ) 14 SB
-
-1025 1681 72 (All ) 73 SB
-
-1098 1681 198 (hardware ) 199 SB
-
-1297 1681 84 (and ) 85 SB
-
-1382 1681 117 (sever ) 118 SB
-
-1500 1681 185 (software ) 186 SB
-
-1686 1681 297 (configurations ) 298 SB
-
-1984 1681 144 (should ) 145 SB
-
-2129 1681 46 (be) 46 SB
-
-225 1740 651 (disclosed when a test is released.) 651 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1869 1018 (4.6 The number of Webchildren) 1018 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2044 296 (On each client ) 297 SB
-
-672 2044 97 (host ) 98 SB
-
-770 2044 74 (the ) 75 SB
-
-845 2044 162 (number ) 163 SB
-
-1008 2044 54 (of ) 55 SB
-
-1063 2044 263 (Webchildren ) 264 SB
-
-1327 2044 219 (requesting ) 220 SB
-
-1547 2044 126 (pages ) 127 SB
-
-1674 2044 56 (or ) 57 SB
-
-1731 2044 93 (files ) 94 SB
-
-1825 2044 108 (from ) 109 SB
-
-1934 2044 74 (the ) 75 SB
-
-2009 2044 134 (server ) 135 SB
-
-2144 2044 31 (is) 31 SB
-
-225 2103 272 (configurable. ) 276 SB
-
-501 2103 13 ( ) 17 SB
-
-518 2103 112 (Note ) 116 SB
-
-634 2103 89 (that ) 93 SB
-
-727 2103 54 (as ) 59 SB
-
-786 2103 74 (the ) 79 SB
-
-865 2103 162 (number ) 167 SB
-
-1032 2103 54 (of ) 59 SB
-
-1091 2103 263 (Webchildren ) 268 SB
-
-1359 2103 173 (increase ) 178 SB
-
-1537 2103 85 (less ) 90 SB
-
-1627 2103 175 (memory ) 180 SB
-
-1807 2103 44 (is ) 49 SB
-
-1856 2103 185 (available ) 190 SB
-
-2046 2103 63 (on ) 68 SB
-
-2114 2103 61 (the) 61 SB
-
-225 2162 120 (client ) 121 SB
-
-346 2162 116 (hosts ) 117 SB
-
-463 2162 71 (for ) 72 SB
-
-535 2162 164 (running ) 165 SB
-
-700 2162 103 (tests ) 104 SB
-
-804 2162 84 (and ) 85 SB
-
-889 2162 113 (there ) 114 SB
-
-1003 2162 123 (could ) 124 SB
-
-1127 2162 59 (be ) 60 SB
-
-1187 2162 35 (a ) 37 SB
-
-1224 2162 262 (performance ) 264 SB
-
-1488 2162 156 (penalty ) 158 SB
-
-1646 2162 217 (depending ) 219 SB
-
-1865 2162 63 (on ) 65 SB
-
-1930 2162 74 (the ) 76 SB
-
-2006 2162 126 (speed ) 128 SB
-
-2134 2162 41 (of) 41 SB
-
-225 2221 731 (the clients running on the client host.) 731 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 2369 770 (4.7 Number of networks) 770 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2544 45 (It ) 48 SB
-
-423 2544 44 (is ) 47 SB
-
-470 2544 172 (possible ) 175 SB
-
-645 2544 54 (to ) 57 SB
-
-702 2544 105 (have ) 108 SB
-
-810 2544 115 (more ) 118 SB
-
-928 2544 98 (then ) 102 SB
-
-1030 2544 85 (one ) 89 SB
-
-1119 2544 178 (network ) 182 SB
-
-1301 2544 215 (connected ) 219 SB
-
-1520 2544 54 (to ) 58 SB
-
-1578 2544 74 (the ) 78 SB
-
-1656 2544 134 (server ) 138 SB
-
-1794 2544 84 (and ) 88 SB
-
-1882 2544 54 (to ) 58 SB
-
-1940 2544 105 (have ) 109 SB
-
-2049 2544 126 (clients) 126 SB
-
-225 2603 63 (on ) 68 SB
-
-293 2603 180 (different ) 185 SB
-
-478 2603 197 (networks ) 202 SB
-
-680 2603 164 (running ) 169 SB
-
-849 2603 74 (the ) 79 SB
-
-928 2603 243 (benchmark. ) 248 SB
-
-1176 2603 13 ( ) 18 SB
-
-1194 2603 168 (Though ) 173 SB
-
-1367 2603 83 (this ) 88 SB
-
-1455 2603 90 (was ) 95 SB
-
-1550 2603 78 (not ) 83 SB
-
-1633 2603 110 (done ) 115 SB
-
-1748 2603 49 (in ) 54 SB
-
-1802 2603 83 (this ) 89 SB
-
-1891 2603 157 (version ) 163 SB
-
-2054 2603 54 (of ) 60 SB
-
-2114 2603 61 (the) 61 SB
-
-225 2662 1491 (benchmark there should be no reason that it would not work provided that ) 1492 SB
-
-1717 2662 74 (the ) 75 SB
-
-1792 2662 134 (server ) 135 SB
-
-1927 2662 97 (host ) 98 SB
-
-2025 2662 118 (name ) 119 SB
-
-2144 2662 31 (is) 31 SB
-
-225 2721 522 (the same on all the clients.) 522 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 11 11
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (11) 42 SB
-
-gr
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 170 679 (4.8 Number of clients) 679 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 345 90 (The ) 94 SB
-
-469 345 267 (WebSTONE ) 271 SB
-
-740 345 184 (supports ) 188 SB
-
-928 345 74 (the ) 78 SB
-
-1006 345 133 (ability ) 137 SB
-
-1143 345 54 (to ) 58 SB
-
-1201 345 105 (have ) 109 SB
-
-1310 345 54 (as ) 59 SB
-
-1369 345 119 (many ) 124 SB
-
-1493 345 171 (children ) 176 SB
-
-1669 345 63 (on ) 68 SB
-
-1737 345 103 (each ) 108 SB
-
-1845 345 120 (client ) 125 SB
-
-1970 345 54 (as ) 59 SB
-
-2029 345 100 (long ) 105 SB
-
-2134 345 41 (as) 41 SB
-
-225 404 113 (there ) 119 SB
-
-344 404 44 (is ) 51 SB
-
-395 404 159 (enough ) 166 SB
-
-561 404 175 (memory ) 182 SB
-
-743 404 63 (on ) 70 SB
-
-813 404 102 (both ) 109 SB
-
-922 404 74 (the ) 81 SB
-
-1003 404 307 (WebMASTER ) 314 SB
-
-1317 404 84 (and ) 91 SB
-
-1408 404 120 (client ) 127 SB
-
-1535 404 180 (systems. ) 187 SB
-
-1722 404 13 ( ) 20 SB
-
-1742 404 112 (Note ) 119 SB
-
-1861 404 113 (there ) 120 SB
-
-1981 404 141 (maybe ) 148 SB
-
-2129 404 46 (an) 46 SB
-
-225 463 802 (issue of performance bottlenecks on the ) 803 SB
-
-1028 463 120 (client ) 121 SB
-
-1149 463 91 (side ) 92 SB
-
-1241 463 40 (if ) 41 SB
-
-1282 463 113 (there ) 114 SB
-
-1396 463 74 (are ) 75 SB
-
-1471 463 80 (too ) 81 SB
-
-1552 463 119 (many ) 120 SB
-
-1672 463 263 (Webchildren ) 264 SB
-
-1936 463 56 (or ) 57 SB
-
-1993 463 74 (the ) 75 SB
-
-2068 463 107 (client) 107 SB
-
-225 522 150 (is slow.) 150 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 651 712 (4.9 Workload of pages) 712 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 738 112 (Each ) 114 SB
-
-489 738 107 (page ) 109 SB
-
-598 738 49 (in ) 52 SB
-
-650 738 74 (the ) 77 SB
-
-727 738 267 (WebSTONE ) 270 SB
-
-997 738 78 (has ) 81 SB
-
-1078 738 35 (a ) 38 SB
-
-1116 738 147 (weight ) 150 SB
-
-1266 738 217 (associated ) 220 SB
-
-1486 738 100 (with ) 103 SB
-
-1589 738 53 (it. ) 56 SB
-
-1645 738 13 ( ) 16 SB
-
-1661 738 48 (A ) 51 SB
-
-1712 738 107 (page ) 110 SB
-
-1822 738 95 (may ) 98 SB
-
-1920 738 59 (be ) 62 SB
-
-1982 738 108 (from ) 111 SB
-
-2093 738 38 (1 ) 41 SB
-
-2134 738 41 (to) 41 SB
-
-225 797 130 (100% ) 133 SB
-
-358 797 54 (of ) 57 SB
-
-415 797 74 (the ) 77 SB
-
-492 797 97 (test. ) 100 SB
-
-592 797 13 ( ) 16 SB
-
-608 797 85 (See ) 88 SB
-
-696 797 74 (the ) 77 SB
-
-773 797 132 (filelist ) 135 SB
-
-908 797 71 (for ) 74 SB
-
-982 797 148 (further ) 151 SB
-
-1133 797 243 (information ) 246 SB
-
-1379 797 63 (on ) 66 SB
-
-1445 797 291 (configuration. ) 294 SB
-
-1739 797 13 ( ) 17 SB
-
-1756 797 218 (Weighting ) 222 SB
-
-1978 797 44 (is ) 48 SB
-
-2026 797 104 (used ) 108 SB
-
-2134 797 41 (to) 41 SB
-
-225 856 177 (simulate ) 180 SB
-
-405 856 89 (that ) 92 SB
-
-497 856 158 (activity ) 161 SB
-
-658 856 54 (of ) 57 SB
-
-715 856 35 (a ) 38 SB
-
-753 856 120 (given ) 123 SB
-
-876 856 120 (page. ) 123 SB
-
-999 856 13 ( ) 16 SB
-
-1015 856 90 (The ) 93 SB
-
-1108 856 137 (higher ) 140 SB
-
-1248 856 74 (the ) 77 SB
-
-1325 856 229 (percentage ) 233 SB
-
-1558 856 74 (the ) 78 SB
-
-1636 856 115 (more ) 119 SB
-
-1755 856 115 (often ) 119 SB
-
-1874 856 74 (the ) 78 SB
-
-1952 856 107 (page ) 111 SB
-
-2063 856 44 (is ) 48 SB
-
-2111 856 64 (hit.) 64 SB
-
-225 915 1182 (The lower the percentage the less often the page will be hit.) 1182 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1113 415 (4.10 Logging) 415 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1288 180 (Logging ) 189 SB
-
-564 1288 44 (is ) 54 SB
-
-618 1288 132 (added ) 142 SB
-
-760 1288 54 (to ) 64 SB
-
-824 1288 74 (the ) 84 SB
-
-908 1288 243 (benchmark, ) 253 SB
-
-1161 1288 77 (but ) 87 SB
-
-1248 1288 159 (caution ) 169 SB
-
-1417 1288 144 (should ) 154 SB
-
-1571 1288 59 (be ) 69 SB
-
-1640 1288 198 (exercised ) 208 SB
-
-1848 1288 119 (when ) 129 SB
-
-1977 1288 118 (using ) 128 SB
-
-2105 1288 70 (this) 70 SB
-
-225 1347 141 (option ) 151 SB
-
-376 1347 54 (as ) 64 SB
-
-440 1347 103 (each ) 113 SB
-
-553 1347 263 (Webchildren ) 273 SB
-
-826 1347 95 (logs ) 105 SB
-
-931 1347 121 (every ) 131 SB
-
-1062 1347 230 (connection ) 240 SB
-
-1302 1347 84 (and ) 94 SB
-
-1396 1347 171 (relevant ) 181 SB
-
-1577 1347 97 (data ) 107 SB
-
-1684 1347 49 (in ) 59 SB
-
-1743 1347 35 (a ) 45 SB
-
-1788 1347 177 (separate ) 188 SB
-
-1976 1347 87 (file. ) 98 SB
-
-2074 1347 13 ( ) 24 SB
-
-2098 1347 77 (The) 77 SB
-
-225 1406 1859 (logging information contains additional information that is not returned to the WebMASTER.) 1859 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1585 497 (4.11 Debugging) 497 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1760 231 (Debugging ) 235 SB
-
-610 1760 44 (is ) 48 SB
-
-658 1760 132 (added ) 136 SB
-
-794 1760 54 (to ) 58 SB
-
-852 1760 96 (help ) 100 SB
-
-952 1760 206 (debugged ) 210 SB
-
-1162 1760 40 (if ) 44 SB
-
-1206 1760 113 (there ) 118 SB
-
-1324 1760 44 (is ) 49 SB
-
-1373 1760 35 (a ) 40 SB
-
-1413 1760 176 (problem ) 181 SB
-
-1594 1760 100 (with ) 105 SB
-
-1699 1760 74 (the ) 79 SB
-
-1778 1760 134 (server ) 139 SB
-
-1917 1760 56 (or ) 61 SB
-
-1978 1760 133 (client. ) 138 SB
-
-2116 1760 13 ( ) 18 SB
-
-2134 1760 41 (In) 41 SB
-
-225 1819 1454 (debugging mode the HTTP header is display for each request that is sent.) 1454 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1938 864 (5. Workload configuration) 864 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2113 95 (One ) 100 SB
-
-475 2113 54 (of ) 59 SB
-
-534 2113 74 (the ) 79 SB
-
-613 2113 117 (goals ) 122 SB
-
-735 2113 71 (for ) 76 SB
-
-811 2113 74 (the ) 79 SB
-
-890 2113 267 (WebSTONE ) 272 SB
-
-1162 2113 44 (is ) 49 SB
-
-1211 2113 54 (to ) 59 SB
-
-1270 2113 135 (model ) 140 SB
-
-1410 2113 35 (a ) 40 SB
-
-1450 2113 86 (real ) 91 SB
-
-1541 2113 129 (world ) 134 SB
-
-1675 2113 202 (workload ) 207 SB
-
-1882 2113 71 (via ) 76 SB
-
-1958 2113 35 (a ) 41 SB
-
-1999 2113 176 (synthetic) 176 SB
-
-225 2172 1678 (workloads based on data gathered from different sites \(Hotwired, IUMA, Netscape, ) 1679 SB
-
-1904 2172 84 (and ) 85 SB
-
-1989 2172 54 (of ) 55 SB
-
-2044 2172 131 (course) 131 SB
-
-225 2231 553 (SGI\). Unfortunately this is ) 554 SB
-
-779 2231 115 (small ) 116 SB
-
-895 2231 97 (data ) 98 SB
-
-993 2231 69 (set ) 70 SB
-
-1063 2231 54 (to ) 55 SB
-
-1118 2231 87 (pull ) 88 SB
-
-1206 2231 108 (from ) 109 SB
-
-1315 2231 90 (but, ) 91 SB
-
-1406 2231 40 (it ) 41 SB
-
-1447 2231 78 (has ) 79 SB
-
-1526 2231 105 (been ) 106 SB
-
-1632 2231 128 (found ) 129 SB
-
-1761 2231 89 (that ) 90 SB
-
-1851 2231 40 (it ) 41 SB
-
-1892 2231 105 (does ) 106 SB
-
-1998 2231 177 (currently) 177 SB
-
-225 2290 215 (represents ) 217 SB
-
-442 2290 74 (the ) 76 SB
-
-518 2290 157 (general ) 159 SB
-
-677 2290 79 (use ) 81 SB
-
-758 2290 54 (of ) 56 SB
-
-814 2290 152 (HTTP. ) 154 SB
-
-968 2290 13 ( ) 15 SB
-
-983 2290 54 (In ) 56 SB
-
-1039 2290 83 (this ) 85 SB
-
-1124 2290 230 (benchmark ) 232 SB
-
-1356 2290 113 (there ) 116 SB
-
-1472 2290 74 (are ) 77 SB
-
-1549 2290 38 (4 ) 41 SB
-
-1590 2290 180 (different ) 183 SB
-
-1773 2290 127 (mixes ) 130 SB
-
-1903 2290 108 (from ) 111 SB
-
-2014 2290 74 (the ) 77 SB
-
-2091 2290 84 (data) 84 SB
-
-225 2349 478 (gather from those sites.) 478 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 2468 759 (5.1 General modem mix) 759 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2643 772 (The General modem mix is a synthetic ) 773 SB
-
-1148 2643 107 (page ) 108 SB
-
-1256 2643 86 (mix ) 87 SB
-
-1343 2643 89 (that ) 90 SB
-
-1433 2643 137 (would ) 138 SB
-
-1571 2643 59 (be ) 60 SB
-
-1631 2643 104 (used ) 105 SB
-
-1736 2643 40 (if ) 41 SB
-
-1777 2643 160 (modem ) 161 SB
-
-1938 2643 115 (users ) 116 SB
-
-2054 2643 121 (where) 121 SB
-
-225 2702 1596 (to be considered. Two concerns to a potential server site should be the size of ) 1597 SB
-
-1822 2702 74 (the ) 75 SB
-
-1897 2702 126 (pages ) 127 SB
-
-2024 2702 89 (that ) 90 SB
-
-2114 2702 61 (are) 61 SB
-
-225 2761 63 (on ) 69 SB
-
-294 2761 103 (their ) 110 SB
-
-404 2761 148 (system ) 155 SB
-
-559 2761 84 (and ) 91 SB
-
-650 2761 98 (type ) 105 SB
-
-755 2761 54 (of ) 61 SB
-
-816 2761 139 (access ) 146 SB
-
-962 2761 54 (to ) 61 SB
-
-1023 2761 74 (the ) 81 SB
-
-1104 2761 147 (server. ) 154 SB
-
-1258 2761 13 ( ) 20 SB
-
-1278 2761 45 (If ) 52 SB
-
-1330 2761 35 (a ) 42 SB
-
-1372 2761 84 (end ) 91 SB
-
-1463 2761 96 (user ) 103 SB
-
-1566 2761 44 (is ) 51 SB
-
-1617 2761 200 (accessing ) 207 SB
-
-1824 2761 74 (the ) 81 SB
-
-1905 2761 134 (server ) 141 SB
-
-2046 2761 100 (with ) 107 SB
-
-2153 2761 22 (a) 22 SB
-
-225 2820 169 (14.4kbs ) 170 SB
-
-395 2820 160 (modem ) 161 SB
-
-556 2820 98 (then ) 99 SB
-
-655 2820 40 (it ) 41 SB
-
-696 2820 137 (would ) 138 SB
-
-834 2820 59 (be ) 60 SB
-
-894 2820 49 (in ) 50 SB
-
-944 2820 74 (the ) 76 SB
-
-1020 2820 93 (best ) 95 SB
-
-1115 2820 159 (interest ) 161 SB
-
-1276 2820 54 (of ) 56 SB
-
-1332 2820 74 (the ) 76 SB
-
-1408 2820 81 (site ) 83 SB
-
-1491 2820 54 (to ) 56 SB
-
-1547 2820 105 (have ) 107 SB
-
-1654 2820 115 (small ) 117 SB
-
-1771 2820 126 (pages ) 128 SB
-
-1899 2820 54 (as ) 56 SB
-
-1955 2820 54 (to ) 56 SB
-
-2011 2820 78 (not ) 80 SB
-
-2091 2820 84 (take) 84 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 12 12
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (12) 42 SB
-
-gr
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-225 169 35 (a ) 37 SB
-
-262 169 100 (long ) 103 SB
-
-365 169 99 (time ) 102 SB
-
-467 169 54 (to ) 57 SB
-
-524 169 209 (download ) 212 SB
-
-736 169 74 (the ) 77 SB
-
-813 169 110 (data. ) 113 SB
-
-926 169 13 ( ) 16 SB
-
-942 169 99 (This ) 102 SB
-
-1044 169 86 (mix ) 89 SB
-
-1133 169 116 (takes ) 119 SB
-
-1252 169 74 (the ) 77 SB
-
-1329 169 84 (end ) 87 SB
-
-1416 169 96 (user ) 99 SB
-
-1515 169 89 (that ) 92 SB
-
-1607 169 78 (has ) 81 SB
-
-1688 169 54 (to ) 57 SB
-
-1745 169 79 (use ) 82 SB
-
-1827 169 35 (a ) 38 SB
-
-1865 169 160 (modem ) 163 SB
-
-2028 169 54 (as ) 57 SB
-
-2085 169 90 (their) 90 SB
-
-225 228 230 (connection ) 235 SB
-
-460 228 90 (into ) 95 SB
-
-555 228 182 (account. ) 187 SB
-
-742 228 13 ( ) 19 SB
-
-761 228 99 (This ) 105 SB
-
-866 228 86 (mix ) 92 SB
-
-958 228 85 (will ) 91 SB
-
-1049 228 150 (consist ) 156 SB
-
-1205 228 54 (of ) 60 SB
-
-1265 228 115 (small ) 121 SB
-
-1386 228 126 (pages ) 132 SB
-
-1518 228 89 (that ) 95 SB
-
-1613 228 74 (are ) 80 SB
-
-1693 228 85 (less ) 91 SB
-
-1784 228 98 (then ) 104 SB
-
-1888 228 88 (20k ) 94 SB
-
-1982 228 116 (bytes ) 122 SB
-
-2104 228 71 (and) 71 SB
-
-225 287 741 (mainly text with sparse graphics files.) 741 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 435 509 (5.2 General mix) 509 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 581 90 (The ) 101 SB
-
-476 581 168 (General ) 179 SB
-
-655 581 86 (mix ) 97 SB
-
-752 581 44 (is ) 55 SB
-
-807 581 85 (one ) 96 SB
-
-903 581 89 (that ) 100 SB
-
-1003 581 44 (is ) 55 SB
-
-1058 581 78 (not ) 90 SB
-
-1148 581 217 (concerned ) 229 SB
-
-1377 581 100 (with ) 112 SB
-
-1489 581 147 (modem) 147 SB
-
-1636 581 13 ( ) 25 SB
-
-1661 581 115 (users ) 127 SB
-
-1788 581 197 (however, ) 209 SB
-
-1997 581 40 (it ) 52 SB
-
-2049 581 44 (is ) 56 SB
-
-2105 581 70 (still) 70 SB
-
-225 640 960 (concerned with the network responsiveness and ) 961 SB
-
-1186 640 247 (throughput. ) 248 SB
-
-1434 640 13 ( ) 14 SB
-
-1448 640 86 (File ) 87 SB
-
-1535 640 107 (sizes ) 108 SB
-
-1643 640 49 (in ) 50 SB
-
-1693 640 83 (this ) 84 SB
-
-1777 640 86 (mix ) 87 SB
-
-1864 640 85 (will ) 86 SB
-
-1950 640 59 (be ) 60 SB
-
-2010 640 165 (between) 165 SB
-
-225 699 351 (1 and 100k bytes.) 351 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 847 604 (5.3 Media rich mix) 604 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1022 138 (Media ) 141 SB
-
-516 1022 88 (rich ) 91 SB
-
-607 1022 44 (is ) 47 SB
-
-654 1022 158 (defined ) 161 SB
-
-815 1022 60 (by ) 63 SB
-
-878 1022 74 (the ) 77 SB
-
-955 1022 98 (type ) 101 SB
-
-1056 1022 84 (and ) 88 SB
-
-1144 1022 88 (size ) 92 SB
-
-1236 1022 54 (of ) 58 SB
-
-1294 1022 97 (data ) 101 SB
-
-1395 1022 150 (stored. ) 154 SB
-
-1549 1022 13 ( ) 17 SB
-
-1566 1022 138 (Media ) 142 SB
-
-1708 1022 169 (referees ) 173 SB
-
-1881 1022 54 (to ) 58 SB
-
-1939 1022 236 (multi-media) 236 SB
-
-225 1081 161 (content ) 164 SB
-
-389 1081 103 (such ) 106 SB
-
-495 1081 68 (as: ) 71 SB
-
-566 1081 13 ( ) 16 SB
-
-582 1081 152 (MPEG ) 155 SB
-
-737 1081 84 (and ) 87 SB
-
-824 1081 219 (Quicktime ) 222 SB
-
-1046 1081 134 (movie ) 137 SB
-
-1183 1081 106 (files, ) 110 SB
-
-1293 1081 152 (MPEG ) 156 SB
-
-1449 1081 84 (and ) 88 SB
-
-1537 1081 77 (aiff ) 81 SB
-
-1618 1081 111 (..etc. ) 115 SB
-
-1733 1081 132 (sound ) 136 SB
-
-1869 1081 116 (clips, ) 120 SB
-
-1989 1081 84 (and ) 88 SB
-
-2077 1081 98 (large) 98 SB
-
-225 1140 179 (graphics ) 183 SB
-
-408 1140 106 (files. ) 111 SB
-
-519 1140 13 ( ) 18 SB
-
-537 1140 138 (Media ) 143 SB
-
-680 1140 88 (rich ) 93 SB
-
-773 1140 161 (content ) 166 SB
-
-939 1140 100 (sites ) 105 SB
-
-1044 1140 74 (are ) 79 SB
-
-1123 1140 78 (not ) 83 SB
-
-1206 1140 168 (worried ) 173 SB
-
-1379 1140 125 (about ) 130 SB
-
-1509 1140 74 (the ) 79 SB
-
-1588 1140 88 (size ) 93 SB
-
-1681 1140 54 (of ) 59 SB
-
-1740 1140 103 (their ) 108 SB
-
-1848 1140 106 (files. ) 111 SB
-
-1959 1140 131 (These ) 136 SB
-
-2095 1140 80 (files) 80 SB
-
-225 1199 151 (usually ) 155 SB
-
-380 1199 150 (consist ) 154 SB
-
-534 1199 54 (of ) 58 SB
-
-592 1199 134 (movie ) 138 SB
-
-730 1199 103 (clips ) 107 SB
-
-837 1199 84 (and ) 88 SB
-
-925 1199 132 (sound ) 136 SB
-
-1061 1199 106 (files. ) 110 SB
-
-1171 1199 13 ( ) 17 SB
-
-1188 1199 99 (This ) 104 SB
-
-1292 1199 86 (mix ) 91 SB
-
-1383 1199 44 (is ) 49 SB
-
-1432 1199 104 (used ) 109 SB
-
-1541 1199 54 (to ) 59 SB
-
-1600 1199 124 (cover ) 129 SB
-
-1729 1199 83 (this ) 88 SB
-
-1817 1199 119 (need. ) 124 SB
-
-1941 1199 13 ( ) 18 SB
-
-1959 1199 131 (These ) 136 SB
-
-2095 1199 80 (files) 80 SB
-
-225 1258 732 (range in size from 20k to megabytes.) 732 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1406 1005 (5.4 General and media rich mix) 1005 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1552 929 (To cover the combination of a site that wishes ) 930 SB
-
-1305 1552 54 (to ) 55 SB
-
-1360 1552 134 (server ) 135 SB
-
-1495 1552 102 (both ) 103 SB
-
-1598 1552 115 (small ) 116 SB
-
-1714 1552 161 (content ) 162 SB
-
-1876 1552 84 (and ) 85 SB
-
-1961 1552 138 (Media ) 139 SB
-
-2100 1552 75 (rich) 75 SB
-
-225 1611 1279 (content this mix was created. This mix will most suite this need.) 1279 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1759 619 (6. Load Generation) 619 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1934 90 (The ) 98 SB
-
-473 1934 155 (current ) 163 SB
-
-636 1934 98 (load ) 106 SB
-
-742 1934 222 (generation ) 230 SB
-
-972 1934 54 (of ) 62 SB
-
-1034 1934 74 (the ) 82 SB
-
-1116 1934 267 (WebSTONE ) 275 SB
-
-1391 1934 44 (is ) 52 SB
-
-1443 1934 54 (to ) 62 SB
-
-1505 1934 158 (request ) 166 SB
-
-1671 1934 126 (pages ) 134 SB
-
-1805 1934 84 (and ) 92 SB
-
-1897 1934 93 (files ) 101 SB
-
-1998 1934 108 (from ) 116 SB
-
-2114 1934 61 (the) 61 SB
-
-225 1993 134 (server ) 142 SB
-
-367 1993 54 (as ) 62 SB
-
-429 1993 84 (fast ) 92 SB
-
-521 1993 54 (as ) 62 SB
-
-583 1993 74 (the ) 82 SB
-
-665 1993 134 (server ) 142 SB
-
-807 1993 81 (can ) 89 SB
-
-896 1993 103 (send ) 111 SB
-
-1007 1993 124 (them. ) 132 SB
-
-1139 1993 13 ( ) 21 SB
-
-1160 1993 215 (Reflecting ) 223 SB
-
-1383 1993 74 (the ) 82 SB
-
-1465 1993 155 (current ) 163 SB
-
-1628 1993 260 (environment ) 268 SB
-
-1896 1993 49 (in ) 58 SB
-
-1954 1993 74 (the ) 83 SB
-
-2037 1993 138 (WWW) 138 SB
-
-225 2052 1376 (community. To generate a load there are four things that are needed.) 1376 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-225 2109 36 (\267 ) 75 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 2114 48 (A ) 51 SB
-
-351 2114 162 (number ) 165 SB
-
-516 2114 54 (of ) 57 SB
-
-573 2114 276 (Webchildern. ) 279 SB
-
-852 2114 13 ( ) 16 SB
-
-868 2114 90 (The ) 93 SB
-
-961 2114 115 (more ) 118 SB
-
-1079 2114 263 (Webchildern ) 266 SB
-
-1345 2114 89 (that ) 92 SB
-
-1437 2114 74 (are ) 77 SB
-
-1514 2114 219 (requesting ) 222 SB
-
-1736 2114 126 (pages ) 129 SB
-
-1865 2114 108 (from ) 111 SB
-
-1976 2114 74 (the ) 78 SB
-
-2054 2114 121 (server) 121 SB
-
-300 2173 667 (the more load that this will cause.) 667 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-225 2230 36 (\267 ) 75 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 2235 1764 (The type of page. This is mainly determined by the page size and the weight of the page.) 1764 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-225 2292 36 (\267 ) 75 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 2297 174 (Number ) 175 SB
-
-475 2297 54 (of ) 55 SB
-
-530 2297 152 (clients. ) 153 SB
-
-683 2297 13 ( ) 14 SB
-
-697 2297 90 (The ) 91 SB
-
-788 2297 115 (more ) 116 SB
-
-904 2297 139 (clients ) 140 SB
-
-1044 2297 89 (that ) 90 SB
-
-1134 2297 74 (are ) 75 SB
-
-1209 2297 49 (in ) 50 SB
-
-1259 2297 74 (the ) 75 SB
-
-1334 2297 84 (test ) 85 SB
-
-1419 2297 74 (the ) 75 SB
-
-1494 2297 115 (more ) 116 SB
-
-1610 2297 263 (Webchildern ) 264 SB
-
-1874 2297 89 (that ) 90 SB
-
-1964 2297 74 (are ) 75 SB
-
-2039 2297 93 (able ) 95 SB
-
-2134 2297 41 (to) 41 SB
-
-300 2356 651 (be brought to bear on the server.) 651 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-225 2413 36 (\267 ) 75 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 2418 1703 (The number of pages. The more pages that are requested test other aspects of server.) 1703 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 2596 579 (6.1 Page selection) 579 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2771 1140 (Each page in the mix has a percentage associated with it. ) 1141 SB
-
-1516 2771 13 ( ) 14 SB
-
-1530 2771 99 (This ) 100 SB
-
-1630 2771 229 (percentage ) 230 SB
-
-1860 2771 44 (is ) 45 SB
-
-1905 2771 74 (the ) 75 SB
-
-1980 2771 195 (weighting) 195 SB
-
-225 2830 143 (factor. ) 151 SB
-
-376 2830 13 ( ) 21 SB
-
-397 2830 90 (The ) 98 SB
-
-495 2830 137 (higher ) 145 SB
-
-640 2830 74 (the ) 82 SB
-
-722 2830 162 (number ) 170 SB
-
-892 2830 74 (the ) 82 SB
-
-974 2830 115 (more ) 123 SB
-
-1097 2830 178 (frequent ) 186 SB
-
-1283 2830 74 (the ) 82 SB
-
-1365 2830 107 (page ) 115 SB
-
-1480 2830 85 (will ) 93 SB
-
-1573 2830 59 (be ) 67 SB
-
-1640 2830 77 (hit. ) 85 SB
-
-1725 2830 13 ( ) 21 SB
-
-1746 2830 48 (A ) 56 SB
-
-1802 2830 164 (random ) 172 SB
-
-1974 2830 162 (number ) 170 SB
-
-2144 2830 31 (is) 31 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Symbol
-
-%%+ font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 13 13
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (13) 42 SB
-
-gr
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-225 169 833 (generated and then compared to the page ) 834 SB
-
-1059 169 160 (weight. ) 161 SB
-
-1220 169 13 ( ) 14 SB
-
-1234 169 45 (If ) 46 SB
-
-1280 169 74 (the ) 75 SB
-
-1355 169 164 (random ) 165 SB
-
-1520 169 162 (number ) 163 SB
-
-1683 169 174 (matches ) 175 SB
-
-1858 169 74 (the ) 75 SB
-
-1933 169 107 (page ) 108 SB
-
-2041 169 134 (weight) 134 SB
-
-225 228 98 (then ) 100 SB
-
-325 228 89 (that ) 91 SB
-
-416 228 142 (pages\222 ) 144 SB
-
-560 228 93 (files ) 95 SB
-
-655 228 74 (are ) 76 SB
-
-731 228 189 (retrieved ) 192 SB
-
-923 228 85 (one ) 88 SB
-
-1011 228 50 (at ) 53 SB
-
-1064 228 35 (a ) 38 SB
-
-1102 228 112 (time. ) 115 SB
-
-1217 228 13 ( ) 16 SB
-
-1233 228 112 (Each ) 115 SB
-
-1348 228 263 (Webchildren ) 266 SB
-
-1614 228 78 (has ) 81 SB
-
-1695 228 59 (its ) 62 SB
-
-1757 228 99 (own ) 102 SB
-
-1859 228 164 (random ) 167 SB
-
-2026 228 149 (number) 149 SB
-
-225 287 194 (sequence.) 194 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 406 498 (6.2 Page Access) 498 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 581 117 (After ) 119 SB
-
-494 581 35 (a ) 38 SB
-
-532 581 107 (page ) 110 SB
-
-642 581 44 (is ) 47 SB
-
-689 581 172 (selected ) 175 SB
-
-864 581 60 (by ) 63 SB
-
-927 581 164 (random ) 167 SB
-
-1094 581 147 (weight ) 150 SB
-
-1244 581 98 (then ) 101 SB
-
-1345 581 103 (each ) 106 SB
-
-1451 581 200 (Webchild ) 203 SB
-
-1654 581 178 (contacts ) 181 SB
-
-1835 581 74 (the ) 77 SB
-
-1912 581 139 (HTTP ) 142 SB
-
-2054 581 121 (server) 121 SB
-
-225 640 84 (and ) 88 SB
-
-313 640 177 (requests ) 181 SB
-
-494 640 74 (the ) 78 SB
-
-572 640 91 (first ) 95 SB
-
-667 640 74 (file ) 78 SB
-
-745 640 54 (of ) 58 SB
-
-803 640 74 (the ) 78 SB
-
-881 640 120 (page. ) 124 SB
-
-1005 640 13 ( ) 17 SB
-
-1022 640 117 (After ) 121 SB
-
-1143 640 74 (the ) 78 SB
-
-1221 640 200 (Webchild ) 204 SB
-
-1425 640 173 (receives ) 177 SB
-
-1602 640 74 (the ) 78 SB
-
-1680 640 91 (first ) 95 SB
-
-1775 640 107 (page ) 112 SB
-
-1887 640 40 (it ) 45 SB
-
-1932 640 177 (requests ) 182 SB
-
-2114 640 61 (the) 61 SB
-
-225 699 98 (next ) 101 SB
-
-326 699 85 (one ) 89 SB
-
-415 699 101 (until ) 105 SB
-
-520 699 59 (all ) 63 SB
-
-583 699 74 (the ) 78 SB
-
-661 699 93 (files ) 97 SB
-
-758 699 71 (for ) 75 SB
-
-833 699 89 (that ) 93 SB
-
-926 699 107 (page ) 111 SB
-
-1037 699 105 (have ) 109 SB
-
-1146 699 105 (been ) 109 SB
-
-1255 699 218 (requested. ) 222 SB
-
-1477 699 13 ( ) 17 SB
-
-1494 699 73 (On ) 77 SB
-
-1571 699 103 (each ) 107 SB
-
-1678 699 107 (page ) 111 SB
-
-1789 699 74 (the ) 78 SB
-
-1867 699 99 (time ) 103 SB
-
-1970 699 40 (it ) 44 SB
-
-2014 699 116 (takes ) 120 SB
-
-2134 699 41 (to) 41 SB
-
-225 758 1465 (connect and down load the file is recorded and log if logging is turned on.) 1465 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 936 733 (6.3 Duration of the test) 733 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1111 90 (The ) 100 SB
-
-475 1111 267 (WebSTONE ) 277 SB
-
-752 1111 44 (is ) 54 SB
-
-806 1111 187 (designed ) 197 SB
-
-1003 1111 54 (to ) 64 SB
-
-1067 1111 79 (run ) 89 SB
-
-1156 1111 101 (until ) 112 SB
-
-1268 1111 74 (the ) 85 SB
-
-1353 1111 139 (clients ) 150 SB
-
-1503 1111 79 (run ) 90 SB
-
-1593 1111 79 (out ) 90 SB
-
-1683 1111 54 (of ) 65 SB
-
-1748 1111 175 (memory ) 186 SB
-
-1934 1111 56 (or ) 67 SB
-
-2001 1111 74 (the ) 85 SB
-
-2086 1111 89 (loop) 89 SB
-
-225 1170 164 (counter ) 165 SB
-
-390 1170 83 (hits ) 84 SB
-
-474 1170 151 (20000. ) 152 SB
-
-626 1170 13 ( ) 14 SB
-
-640 1170 90 (The ) 91 SB
-
-731 1170 102 (loop ) 103 SB
-
-834 1170 164 (counter ) 165 SB
-
-999 1170 44 (is ) 45 SB
-
-1044 1170 74 (the ) 75 SB
-
-1119 1170 133 (ability ) 134 SB
-
-1253 1170 54 (to ) 55 SB
-
-1308 1170 79 (run ) 80 SB
-
-1388 1170 35 (a ) 36 SB
-
-1424 1170 84 (test ) 85 SB
-
-1509 1170 49 (in ) 50 SB
-
-1559 1170 203 (repetition ) 204 SB
-
-1763 1170 54 (as ) 55 SB
-
-1818 1170 54 (to ) 56 SB
-
-1874 1170 112 (time. ) 114 SB
-
-1988 1170 13 ( ) 15 SB
-
-2003 1170 99 (This ) 101 SB
-
-2104 1170 71 (test) 71 SB
-
-225 1229 44 (is ) 45 SB
-
-270 1229 148 (limited ) 149 SB
-
-419 1229 169 (because ) 170 SB
-
-589 1229 54 (of ) 55 SB
-
-644 1229 13 ( ) 14 SB
-
-658 1229 120 (client ) 121 SB
-
-779 1229 188 (memory. ) 189 SB
-
-968 1229 13 ( ) 14 SB
-
-982 1229 45 (If ) 46 SB
-
-1028 1229 120 (client ) 121 SB
-
-1149 1229 175 (memory ) 176 SB
-
-1325 1229 44 (is ) 45 SB
-
-1370 1229 78 (not ) 79 SB
-
-1449 1229 59 (an ) 60 SB
-
-1509 1229 110 (issue ) 111 SB
-
-1620 1229 83 (this ) 84 SB
-
-1704 1229 162 (number ) 163 SB
-
-1867 1229 81 (can ) 83 SB
-
-1950 1229 59 (be ) 61 SB
-
-2011 1229 164 (changed) 164 SB
-
-225 1288 1483 (and the benchmark recompiled. Most tests do not last longer than 1 hour..) 1483 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1466 696 (7. Benchmark Results) 696 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1641 90 (The ) 91 SB
-
-466 1641 201 (following ) 202 SB
-
-668 1641 44 (is ) 45 SB
-
-713 1641 35 (a ) 36 SB
-
-749 1641 144 (typical ) 145 SB
-
-894 1641 79 (run ) 80 SB
-
-974 1641 54 (of ) 55 SB
-
-1029 1641 74 (the ) 75 SB
-
-1104 1641 243 (benchmark. ) 244 SB
-
-1348 1641 13 ( ) 14 SB
-
-1362 1641 90 (The ) 91 SB
-
-1453 1641 91 (first ) 92 SB
-
-1545 1641 79 (run ) 81 SB
-
-1626 1641 44 (is ) 46 SB
-
-1672 1641 54 (of ) 56 SB
-
-1728 1641 74 (the ) 76 SB
-
-1804 1641 230 (benchmark ) 232 SB
-
-2036 1641 139 (against) 139 SB
-
-225 1700 962 (the Netsite server followed by the NCSA server.) 962 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-225 1847 943 (The following parameters were modified to run the test:) 943 SB
-
-225 1897 204 (nm_clusters) 204 SB
-
-225 1947 279 (somaxconn = 50) 279 SB
-
-225 1997 334 (nm_clusters = 4000) 334 SB
-
-225 2047 371 (tcp_keepidle = \(1200\)) 371 SB
-
-225 2097 488 (tcp_keep_timer_in_close = 1) 488 SB
-
-225 2197 333 (Hardware platform:) 333 SB
-
-225 2297 459 (1 150 MHZ IP22 Processor) 459 SB
-
-225 2347 897 (FPU: MIPS R4010 Floating Point Chip Revision: 0.0) 897 SB
-
-225 2397 822 (CPU: MIPS R4400 Processor Chip Revision: 5.0) 822 SB
-
-225 2447 403 (On-board serial ports: 2) 403 SB
-
-225 2497 617 (On-board bi-directional parallel port) 617 SB
-
-225 2547 453 (Data cache size: 16 Kbytes) 453 SB
-
-225 2597 557 (Instruction cache size: 16 Kbytes) 557 SB
-
-225 2647 924 (Secondary unified instruction/data cache size: 1 Mbyte) 924 SB
-
-225 2697 534 (Main memory size: 256 Mbytes) 534 SB
-
-225 2747 934 (Integral ISDN: Basic Rate Interface unit 0, revision 1.0) 934 SB
-
-225 2797 1077 (XPI FDDI controller: xpi0, firmware version 9411032038, SAS) 1077 SB
-
-225 2847 546 (Integral Ethernet: ec3, version 1) 546 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 14 14
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (14) 42 SB
-
-gr
-
-225 169 546 (Integral Ethernet: ec0, version 1) 546 SB
-
-225 219 1215 (Integral SCSI controller 5: Version WD33C95A, differential, revision 0) 1215 SB
-
-225 269 657 (Disk drive: unit 4 on SCSI controller 5) 657 SB
-
-225 319 657 (Disk drive: unit 3 on SCSI controller 5) 657 SB
-
-225 369 657 (Disk drive: unit 2 on SCSI controller 5) 657 SB
-
-225 419 657 (Disk drive: unit 1 on SCSI controller 5) 657 SB
-
-225 469 1215 (Integral SCSI controller 4: Version WD33C95A, differential, revision 0) 1215 SB
-
-225 519 1012 (Integral SCSI controller 0: Version WD33C93B, revision D) 1012 SB
-
-225 569 657 (Disk drive: unit 5 on SCSI controller 0) 657 SB
-
-225 619 633 (CDROM: unit 4 on SCSI controller 0) 633 SB
-
-225 669 657 (Disk drive: unit 2 on SCSI controller 0) 657 SB
-
-225 769 1633 (The file set used for this test is listed below. In this case a general and media rich mix was used.) 1633 SB
-
-225 869 1097 (#This file is used to configure the pages and files to be tested for.) 1097 SB
-
-225 919 21 (6) 21 SB
-
-225 969 74 (40 3) 74 SB
-
-225 1019 199 (/file3k.html) 199 SB
-
-225 1069 199 (/file4k.html) 199 SB
-
-225 1119 199 (/file5k.html) 199 SB
-
-225 1169 53 (5 3) 53 SB
-
-225 1219 220 (/file10k.html) 220 SB
-
-225 1269 220 (/file17k.html) 220 SB
-
-225 1319 220 (/file20k.html) 220 SB
-
-225 1369 53 (5 2) 53 SB
-
-225 1419 211 (/file5m.html) 211 SB
-
-225 1469 211 (/file1m.html) 211 SB
-
-225 1519 74 (20 3) 74 SB
-
-225 1569 199 (/file6k.html) 199 SB
-
-225 1619 199 (/file7k.html) 199 SB
-
-225 1669 241 (/file200k.html) 241 SB
-
-225 1719 74 (20 2) 74 SB
-
-225 1769 211 (/file3m.html) 211 SB
-
-225 1819 220 (/file21k.html) 220 SB
-
-225 1869 74 (10 2) 74 SB
-
-225 1919 241 (/file500k.html) 241 SB
-
-225 1969 220 (/file13k.html) 220 SB
-
-225 2069 1890 (What follows is the results of a test ran for 10 minutes with the above page sets. The first set of data is from the) 1890 SB
-
-225 2119 242 (Netsite server.) 242 SB
-
-225 2219 182 (Netsite 1.0) 182 SB
-
-225 2269 1428 (********************************************************************) 1428 SB
-
-225 2319 1239 (/usr/local/bin/webstone -w xpi0-alfalfa -c sulu:2959 -u filelist -t 35 -n %d) 1239 SB
-
-225 2369 773 (Client: gateweb-indy8 Number of Clients: 6) 773 SB
-
-225 2419 773 (Client: gateweb-indy9 Number of Clients: 6) 773 SB
-
-225 2469 783 (Client: gateweb-indy10 Number of Clients: 6) 783 SB
-
-225 2519 783 (Client: gateweb-indy11 Number of Clients: 6) 783 SB
-
-225 2619 616 (Waiting for READY from 24 clients) 616 SB
-
-225 2669 375 (All READYs received) 375 SB
-
-225 2719 428 (Sending GO to all clients) 428 SB
-
-225 2769 793 (All clients started at Fri Mar 17 11:23:10 1995) 793 SB
-
-225 2819 516 (Waiting for clients completion) 516 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Roman
-
-%%Page: 15 15
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (15) 42 SB
-
-gr
-
-225 169 780 (All clients ended at Fri Mar 17 11:58:34 1995) 780 SB
-
-225 219 145 (Page # 0) 145 SB
-
-225 269 1944 (=================================================================================) 1944 SB
-
-225 319 692 (Total number of times page was hit 6649) 692 SB
-
-225 369 560 (Total time 4238.492450 seconds) 560 SB
-
-225 419 611 (Maximum Response time 2.071999) 611 SB
-
-225 469 666 (Total connect time for page 77.660191) 666 SB
-
-225 519 615 (Maximum time to connect 0.052151) 615 SB
-
-225 569 655 (Total amount of data moved 81702912) 655 SB
-
-225 619 273 (Page size 12288) 273 SB
-
-225 669 546 (Total number of connects 19947) 546 SB
-
-225 719 1944 (=================================================================================) 1944 SB
-
-225 819 145 (Page # 1) 145 SB
-
-225 869 1944 (=================================================================================) 1944 SB
-
-225 919 671 (Total number of times page was hit 607) 671 SB
-
-225 969 539 (Total time 526.552497 seconds) 539 SB
-
-225 1019 611 (Maximum Response time 1.805497) 611 SB
-
-225 1069 645 (Total connect time for page 8.111734) 645 SB
-
-225 1119 615 (Maximum time to connect 0.036912) 615 SB
-
-225 1169 655 (Total amount of data moved 29213696) 655 SB
-
-225 1219 273 (Page size 48128) 273 SB
-
-225 1269 525 (Total number of connects 1821) 525 SB
-
-225 1319 1944 (=================================================================================) 1944 SB
-
-225 1419 145 (Page # 2) 145 SB
-
-225 1469 1944 (=================================================================================) 1944 SB
-
-225 1519 671 (Total number of times page was hit 980) 671 SB
-
-225 1569 581 (Total time 15710.908864 seconds) 581 SB
-
-225 1619 632 (Maximum Response time 22.764984) 632 SB
-
-225 1669 666 (Total connect time for page 19.605667) 666 SB
-
-225 1719 615 (Maximum time to connect 5.785718) 615 SB
-
-225 1769 697 (Total amount of data moved 6165626880) 697 SB
-
-225 1819 315 (Page size 6291456) 315 SB
-
-225 1869 525 (Total number of connects 1960) 525 SB
-
-225 1919 1944 (=================================================================================) 1944 SB
-
-225 2019 145 (Page # 3) 145 SB
-
-225 2069 1944 (=================================================================================) 1944 SB
-
-225 2119 692 (Total number of times page was hit 2866) 692 SB
-
-225 2169 560 (Total time 2581.663009 seconds) 560 SB
-
-225 2219 611 (Maximum Response time 3.341992) 611 SB
-
-225 2269 666 (Total connect time for page 33.253920) 666 SB
-
-225 2319 615 (Maximum time to connect 0.046310) 615 SB
-
-225 2369 676 (Total amount of data moved 625108992) 676 SB
-
-225 2419 294 (Page size 218112) 294 SB
-
-225 2469 525 (Total number of connects 8598) 525 SB
-
-225 2519 1944 (=================================================================================) 1944 SB
-
-225 2619 145 (Page # 4) 145 SB
-
-225 2669 1944 (=================================================================================) 1944 SB
-
-225 2719 692 (Total number of times page was hit 3040) 692 SB
-
-225 2769 581 (Total time 25083.667145 seconds) 581 SB
-
-225 2819 632 (Maximum Response time 11.803875) 632 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Roman
-
-%%Page: 16 16
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (16) 42 SB
-
-gr
-
-225 169 666 (Total connect time for page 26.375753) 666 SB
-
-225 219 615 (Maximum time to connect 0.036555) 615 SB
-
-225 269 697 (Total amount of data moved 9628385280) 697 SB
-
-225 319 315 (Page size 3167232) 315 SB
-
-225 369 525 (Total number of connects 6080) 525 SB
-
-225 419 1944 (=================================================================================) 1944 SB
-
-225 519 145 (Page # 5) 145 SB
-
-225 569 1944 (=================================================================================) 1944 SB
-
-225 619 692 (Total number of times page was hit 1628) 692 SB
-
-225 669 560 (Total time 2148.113647 seconds) 560 SB
-
-225 719 611 (Maximum Response time 2.793287) 611 SB
-
-225 769 666 (Total connect time for page 14.345538) 666 SB
-
-225 819 615 (Maximum time to connect 0.036117) 615 SB
-
-225 869 676 (Total amount of data moved 855207936) 676 SB
-
-225 919 294 (Page size 525312) 294 SB
-
-225 969 525 (Total number of connects 3256) 525 SB
-
-225 1019 1944 (=================================================================================) 1944 SB
-
-225 1119 816 (==================================) 816 SB
-
-225 1169 453 (WEBSTONE number: 450) 453 SB
-
-225 1219 459 (Total number of clients: 24) 459 SB
-
-225 1269 1051 (Total cumulative time of test for all hosts \(sec\): 50333.931099) 1051 SB
-
-225 1319 872 (Total number of pages retrieved from server: 15770) 872 SB
-
-225 1369 583 (Total number of errors to server: 0) 583 SB
-
-225 1419 714 (Total number of connects to server: 41672) 714 SB
-
-225 1469 756 (Average time per connect: 0.004304 seconds) 756 SB
-
-225 1519 769 (Maximum time to connect: 5.782854 seconds) 769 SB
-
-225 1569 711 (Total mount of data moved: 17409474560) 711 SB
-
-225 1619 1438 (Total bytes of body moved: 17401507840 bytes.Total bytes of header moved 7966720) 1438 SB
-
-225 1669 1081 (Average body size: 417583 bytes. Average retrieval size 417774) 1081 SB
-
-225 1719 470 (Thruput = 345879 bytes/sec) 470 SB
-
-225 1769 719 (Average Response time: 1.207859 seconds) 719 SB
-
-225 1819 775 (Maximum Response time: 19.524160 seconds) 775 SB
-
-225 1969 1491 (***********************************************************************) 1491 SB
-
-225 2019 175 (NCSA 1.3) 175 SB
-
-225 2069 1512 (************************************************************************) 1512 SB
-
-225 2169 1380 (/usr/local/bin/webstone -w xpi0-alfalfa -c sulu:2920 -p 1081 -u filelist -t 35 -n %d) 1380 SB
-
-225 2219 773 (Client: gateweb-indy8 Number of Clients: 6) 773 SB
-
-225 2269 773 (Client: gateweb-indy9 Number of Clients: 6) 773 SB
-
-225 2319 783 (Client: gateweb-indy10 Number of Clients: 6) 783 SB
-
-225 2369 783 (Client: gateweb-indy11 Number of Clients: 6) 783 SB
-
-225 2469 616 (Waiting for READY from 24 clients) 616 SB
-
-225 2519 375 (All READYs received) 375 SB
-
-225 2569 428 (Sending GO to all clients) 428 SB
-
-225 2619 793 (All clients started at Fri Mar 17 10:46:38 1995) 793 SB
-
-225 2669 516 (Waiting for clients completion) 516 SB
-
-225 2719 780 (All clients ended at Fri Mar 17 11:22:02 1995) 780 SB
-
-225 2769 145 (Page # 0) 145 SB
-
-225 2819 1944 (=================================================================================) 1944 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Roman
-
-%%Page: 17 17
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (17) 42 SB
-
-gr
-
-225 169 692 (Total number of times page was hit 1414) 692 SB
-
-225 219 581 (Total time 16772.472590 seconds) 581 SB
-
-225 269 632 (Maximum Response time 23.797445) 632 SB
-
-225 319 666 (Total connect time for page 93.585630) 666 SB
-
-225 369 615 (Maximum time to connect 5.997783) 615 SB
-
-225 419 655 (Total amount of data moved 17375232) 655 SB
-
-225 469 273 (Page size 12288) 273 SB
-
-225 519 525 (Total number of connects 4242) 525 SB
-
-225 569 1944 (=================================================================================) 1944 SB
-
-225 669 145 (Page # 1) 145 SB
-
-225 719 1944 (=================================================================================) 1944 SB
-
-225 769 671 (Total number of times page was hit 144) 671 SB
-
-225 819 560 (Total time 1797.158479 seconds) 560 SB
-
-225 869 632 (Maximum Response time 23.050203) 632 SB
-
-225 919 645 (Total connect time for page 0.673942) 645 SB
-
-225 969 615 (Maximum time to connect 0.013216) 615 SB
-
-225 1019 634 (Total amount of data moved 6930432) 634 SB
-
-225 1069 273 (Page size 48128) 273 SB
-
-225 1119 504 (Total number of connects 432) 504 SB
-
-225 1169 1944 (=================================================================================) 1944 SB
-
-225 1269 145 (Page # 2) 145 SB
-
-225 1319 1944 (=================================================================================) 1944 SB
-
-225 1369 671 (Total number of times page was hit 102) 671 SB
-
-225 1419 560 (Total time 4813.787541 seconds) 560 SB
-
-225 1469 632 (Maximum Response time 56.573603) 632 SB
-
-225 1519 645 (Total connect time for page 6.192456) 645 SB
-
-225 1569 615 (Maximum time to connect 5.905150) 615 SB
-
-225 1619 676 (Total amount of data moved 641728512) 676 SB
-
-225 1669 315 (Page size 6291456) 315 SB
-
-225 1719 504 (Total number of connects 204) 504 SB
-
-225 1769 1944 (=================================================================================) 1944 SB
-
-225 1869 145 (Page # 3) 145 SB
-
-225 1919 1944 (=================================================================================) 1944 SB
-
-225 1969 671 (Total number of times page was hit 580) 671 SB
-
-225 2019 560 (Total time 7588.192121 seconds) 560 SB
-
-225 2069 632 (Maximum Response time 25.115934) 632 SB
-
-225 2119 645 (Total connect time for page 2.897182) 645 SB
-
-225 2169 615 (Maximum time to connect 0.019975) 615 SB
-
-225 2219 676 (Total amount of data moved 126504960) 676 SB
-
-225 2269 294 (Page size 218112) 294 SB
-
-225 2319 525 (Total number of connects 1740) 525 SB
-
-225 2369 1944 (=================================================================================) 1944 SB
-
-225 2469 145 (Page # 4) 145 SB
-
-225 2519 1944 (=================================================================================) 1944 SB
-
-225 2569 671 (Total number of times page was hit 600) 671 SB
-
-225 2619 581 (Total time 16247.815216 seconds) 581 SB
-
-225 2669 632 (Maximum Response time 39.003870) 632 SB
-
-225 2719 645 (Total connect time for page 1.790447) 645 SB
-
-225 2769 615 (Maximum time to connect 0.015736) 615 SB
-
-225 2819 697 (Total amount of data moved 1900339200) 697 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Roman
-
-%%Page: 18 18
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (18) 42 SB
-
-gr
-
-225 169 315 (Page size 3167232) 315 SB
-
-225 219 525 (Total number of connects 1200) 525 SB
-
-225 269 1944 (=================================================================================) 1944 SB
-
-225 369 145 (Page # 5) 145 SB
-
-225 419 1944 (=================================================================================) 1944 SB
-
-225 469 671 (Total number of times page was hit 294) 671 SB
-
-225 519 560 (Total time 2922.036210 seconds) 560 SB
-
-225 569 632 (Maximum Response time 20.210504) 632 SB
-
-225 619 666 (Total connect time for page 18.487052) 666 SB
-
-225 669 615 (Maximum time to connect 5.843007) 615 SB
-
-225 719 676 (Total amount of data moved 154441728) 676 SB
-
-225 769 294 (Page size 525312) 294 SB
-
-225 819 504 (Total number of connects 588) 504 SB
-
-225 869 1944 (=================================================================================) 1944 SB
-
-225 969 816 (==================================) 816 SB
-
-225 1019 432 (WEBSTONE number: 89) 432 SB
-
-225 1069 459 (Total number of clients: 24) 459 SB
-
-225 1119 1051 (Total cumulative time of test for all hosts \(sec\): 50244.193163) 1051 SB
-
-225 1169 851 (Total number of pages retrieved from server: 3134) 851 SB
-
-225 1219 583 (Total number of errors to server: 0) 583 SB
-
-225 1269 693 (Total number of connects to server: 8420) 693 SB
-
-225 1319 756 (Average time per connect: 0.014684 seconds) 756 SB
-
-225 1369 769 (Maximum time to connect: 5.995063 seconds) 769 SB
-
-225 1419 690 (Total mount of data moved: 2848899584) 690 SB
-
-225 1469 1417 (Total bytes of body moved: 2847382528 bytes.Total bytes of header moved 1517056) 1417 SB
-
-225 1519 1081 (Average body size: 338169 bytes. Average retrieval size 338349) 1081 SB
-
-225 1569 460 (Thruput = 56701 bytes/sec) 460 SB
-
-225 1619 719 (Average Response time: 5.967243 seconds) 719 SB
-
-225 1669 775 (Maximum Response time: 42.658441 seconds) 775 SB
-
-225 1769 904 (cern 3.0 ************************************) 904 SB
-
-225 1819 1380 (/usr/local/bin/webstone -w xpi0-alfalfa -c sulu:2996 -p 1080 -u filelist -t 45 -n %d) 1380 SB
-
-225 1869 773 (Client: gateweb-indy8 Number of Clients: 6) 773 SB
-
-225 1919 773 (Client: gateweb-indy9 Number of Clients: 6) 773 SB
-
-225 1969 783 (Client: gateweb-indy10 Number of Clients: 6) 783 SB
-
-225 2019 783 (Client: gateweb-indy11 Number of Clients: 6) 783 SB
-
-225 2119 616 (Waiting for READY from 24 clients) 616 SB
-
-225 2169 375 (All READYs received) 375 SB
-
-225 2219 428 (Sending GO to all clients) 428 SB
-
-225 2269 793 (All clients started at Fri Mar 17 15:10:43 1995) 793 SB
-
-225 2319 516 (Waiting for clients completion) 516 SB
-
-225 2369 780 (All clients ended at Fri Mar 17 15:56:07 1995) 780 SB
-
-225 2419 145 (Page # 0) 145 SB
-
-225 2469 1944 (=================================================================================) 1944 SB
-
-225 2519 692 (Total number of times page was hit 3724) 692 SB
-
-225 2569 581 (Total time 16302.320093 seconds) 581 SB
-
-225 2619 632 (Maximum Response time 62.488345) 632 SB
-
-225 2669 708 (Total connect time for page 7149.901812) 708 SB
-
-225 2719 636 (Maximum time to connect 59.671519) 636 SB
-
-225 2769 655 (Total amount of data moved 45530112) 655 SB
-
-225 2819 273 (Page size 12288) 273 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Roman
-
-%%Page: 19 19
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (19) 42 SB
-
-gr
-
-225 169 546 (Total number of connects 11105) 546 SB
-
-225 219 1944 (=================================================================================) 1944 SB
-
-225 319 145 (Page # 1) 145 SB
-
-225 369 1944 (=================================================================================) 1944 SB
-
-225 419 671 (Total number of times page was hit 501) 671 SB
-
-225 469 560 (Total time 2637.893006 seconds) 560 SB
-
-225 519 632 (Maximum Response time 38.798005) 632 SB
-
-225 569 708 (Total connect time for page 1229.359340) 708 SB
-
-225 619 636 (Maximum time to connect 35.484663) 636 SB
-
-225 669 655 (Total amount of data moved 24018944) 655 SB
-
-225 719 273 (Page size 48128) 273 SB
-
-225 769 525 (Total number of connects 1496) 525 SB
-
-225 819 1944 (=================================================================================) 1944 SB
-
-225 919 145 (Page # 2) 145 SB
-
-225 969 1944 (=================================================================================) 1944 SB
-
-225 1019 671 (Total number of times page was hit 432) 671 SB
-
-225 1069 560 (Total time 3164.881323 seconds) 560 SB
-
-225 1119 632 (Maximum Response time 41.850207) 632 SB
-
-225 1169 708 (Total connect time for page 1267.914110) 708 SB
-
-225 1219 636 (Maximum time to connect 35.819251) 636 SB
-
-225 1269 697 (Total amount of data moved 2707423232) 697 SB
-
-225 1319 315 (Page size 6291456) 315 SB
-
-225 1369 504 (Total number of connects 862) 504 SB
-
-225 1419 1944 (=================================================================================) 1944 SB
-
-225 1519 145 (Page # 3) 145 SB
-
-225 1569 1944 (=================================================================================) 1944 SB
-
-225 1619 692 (Total number of times page was hit 2080) 692 SB
-
-225 1669 560 (Total time 8849.459607 seconds) 560 SB
-
-225 1719 632 (Maximum Response time 63.461733) 632 SB
-
-225 1769 708 (Total connect time for page 3450.850531) 708 SB
-
-225 1819 636 (Maximum time to connect 59.909275) 636 SB
-
-225 1869 676 (Total amount of data moved 453441536) 676 SB
-
-225 1919 294 (Page size 218112) 294 SB
-
-225 1969 525 (Total number of connects 6205) 525 SB
-
-225 2019 1944 (=================================================================================) 1944 SB
-
-225 2119 145 (Page # 4) 145 SB
-
-225 2169 1944 (=================================================================================) 1944 SB
-
-225 2219 692 (Total number of times page was hit 1732) 692 SB
-
-225 2269 581 (Total time 10588.881744 seconds) 581 SB
-
-225 2319 632 (Maximum Response time 63.663196) 632 SB
-
-225 2369 708 (Total connect time for page 5386.565167) 708 SB
-
-225 2419 636 (Maximum time to connect 59.516712) 636 SB
-
-225 2469 697 (Total amount of data moved 5447897088) 697 SB
-
-225 2519 315 (Page size 3167232) 315 SB
-
-225 2569 525 (Total number of connects 3452) 525 SB
-
-225 2619 1944 (=================================================================================) 1944 SB
-
-225 2719 145 (Page # 5) 145 SB
-
-225 2769 1944 (=================================================================================) 1944 SB
-
-225 2819 671 (Total number of times page was hit 943) 671 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Roman
-
-%%Page: 20 20
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (20) 42 SB
-
-gr
-
-225 169 560 (Total time 3968.363226 seconds) 560 SB
-
-225 219 632 (Maximum Response time 62.245675) 632 SB
-
-225 269 708 (Total connect time for page 2099.311825) 708 SB
-
-225 319 636 (Maximum time to connect 59.244292) 636 SB
-
-225 369 676 (Total amount of data moved 491273216) 676 SB
-
-225 419 294 (Page size 525312) 294 SB
-
-225 469 525 (Total number of connects 1878) 525 SB
-
-225 519 1896 (===============================================================================) 1896 SB
-
-225 619 816 (==================================) 816 SB
-
-225 669 453 (WEBSTONE number: 209) 453 SB
-
-225 719 459 (Total number of clients: 24) 459 SB
-
-225 769 1051 (Total cumulative time of test for all hosts \(sec\): 45943.710179) 1051 SB
-
-225 819 851 (Total number of pages retrieved from server: 9412) 851 SB
-
-225 869 625 (Total number of errors to server: 247) 625 SB
-
-225 919 714 (Total number of connects to server: 25167) 714 SB
-
-225 969 756 (Average time per connect: 0.823767 seconds) 756 SB
-
-225 1019 790 (Maximum time to connect: 30.002288 seconds) 790 SB
-
-225 1069 690 (Total mount of data moved: 9394691072) 690 SB
-
-225 1119 1417 (Total bytes of body moved: 9389627392 bytes.Total bytes of header moved 5063680) 1417 SB
-
-225 1169 1081 (Average body size: 373093 bytes. Average retrieval size 373294) 1081 SB
-
-225 1219 470 (Thruput = 204483 bytes/sec) 470 SB
-
-225 1269 719 (Average Response time: 1.825553 seconds) 719 SB
-
-225 1319 775 (Maximum Response time: 34.973206 seconds) 775 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1420 736 (7.1 Summary of results) 736 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-225 1595 182 (Netsite 1.0) 182 SB
-
-225 1645 453 (WEBSTONE number: 450) 453 SB
-
-225 1695 459 (Total number of clients: 24) 459 SB
-
-225 1745 1051 (Total cumulative time of test for all hosts \(sec\): 50333.931099) 1051 SB
-
-225 1795 872 (Total number of pages retrieved from server: 15770) 872 SB
-
-225 1845 583 (Total number of errors to server: 0) 583 SB
-
-225 1895 714 (Total number of connects to server: 41672) 714 SB
-
-225 1945 756 (Average time per connect: 0.004304 seconds) 756 SB
-
-225 1995 769 (Maximum time to connect: 5.782854 seconds) 769 SB
-
-225 2045 711 (Total mount of data moved: 17409474560) 711 SB
-
-225 2095 1438 (Total bytes of body moved: 17401507840 bytes.Total bytes of header moved 7966720) 1438 SB
-
-225 2145 1081 (Average body size: 417583 bytes. Average retrieval size 417774) 1081 SB
-
-225 2195 470 (Thruput = 345879 bytes/sec) 470 SB
-
-225 2245 719 (Average Response time: 1.207859 seconds) 719 SB
-
-225 2295 775 (Maximum Response time: 19.524160 seconds) 775 SB
-
-225 2395 147 (Cern 3.0) 147 SB
-
-225 2445 453 (WEBSTONE number: 209) 453 SB
-
-225 2495 459 (Total number of clients: 24) 459 SB
-
-225 2545 1051 (Total cumulative time of test for all hosts \(sec\): 45943.710179) 1051 SB
-
-225 2595 851 (Total number of pages retrieved from server: 9412) 851 SB
-
-225 2645 625 (Total number of errors to server: 247) 625 SB
-
-225 2695 714 (Total number of connects to server: 25167) 714 SB
-
-225 2745 756 (Average time per connect: 0.823767 seconds) 756 SB
-
-225 2795 790 (Maximum time to connect: 30.002288 seconds) 790 SB
-
-225 2845 690 (Total mount of data moved: 9394691072) 690 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 21 21
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (21) 42 SB
-
-gr
-
-225 169 1417 (Total bytes of body moved: 9389627392 bytes.Total bytes of header moved 5063680) 1417 SB
-
-225 219 1081 (Average body size: 373093 bytes. Average retrieval size 373294) 1081 SB
-
-225 269 470 (Thruput = 204483 bytes/sec) 470 SB
-
-225 319 719 (Average Response time: 1.825553 seconds) 719 SB
-
-225 369 775 (Maximum Response time: 34.973206 seconds) 775 SB
-
-225 469 175 (NCSA 1.3) 175 SB
-
-225 519 432 (WEBSTONE number: 89) 432 SB
-
-225 569 459 (Total number of clients: 24) 459 SB
-
-225 619 1051 (Total cumulative time of test for all hosts \(sec\): 50244.193163) 1051 SB
-
-225 669 851 (Total number of pages retrieved from server: 3134) 851 SB
-
-225 719 583 (Total number of errors to server: 0) 583 SB
-
-225 769 693 (Total number of connects to server: 8420) 693 SB
-
-225 819 756 (Average time per connect: 0.014684 seconds) 756 SB
-
-225 869 769 (Maximum time to connect: 5.995063 seconds) 769 SB
-
-225 919 690 (Total mount of data moved: 2848899584) 690 SB
-
-225 969 1417 (Total bytes of body moved: 2847382528 bytes.Total bytes of header moved 1517056) 1417 SB
-
-225 1019 1081 (Average body size: 338169 bytes. Average retrieval size 338349) 1081 SB
-
-225 1069 460 (Thruput = 56701 bytes/sec) 460 SB
-
-225 1119 719 (Average Response time: 5.967243 seconds) 719 SB
-
-225 1169 775 (Maximum Response time: 42.658441 seconds) 775 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-225 1307 1818 (The three examples above show a typical output from a run of the WebSTONE benchmark.) 1818 SB
-
-225 1366 1393 (The WebSTONE number is the number of pages retrieved per minute.) 1393 SB
-
-225 1425 1863 (Average time to connect: This is calculated by dividing the total time to connect by the total ) 1863 SB
-
-375 1484 403 (number of connects.) 403 SB
-
-225 1543 1907 (Maximum time to connect: This is defined as the longest time it took to connect during the run.) 1907 SB
-
-225 1602 1579 (Total amount of data moved: This is the amount of data transferred during the ) 1580 SB
-
-1805 1602 92 (run. ) 93 SB
-
-1898 1602 30 (\( ) 31 SB
-
-1929 1602 161 (NOTE: ) 162 SB
-
-2091 1602 13 ( ) 14 SB
-
-2105 1602 70 (this) 70 SB
-
-375 1661 1756 (also includes data moved of pages that where incomplete. Incomplete pages means that ) 1756 SB
-
-375 1720 1401 (the page was interrupted during retrieval and was unable to complete.\)) 1401 SB
-
-225 1779 1909 (Average Response time: This is calculated by dividing the total response time by the number of ) 1909 SB
-
-375 1838 187 (response.) 187 SB
-
-225 1897 1649 (Maximum response time: This is the maximum time to connect and transfer a page.) 1649 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 2045 1455 (8. Future of the WebSTONE and future work) 1455 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2220 67 (As ) 69 SB
-
-444 2220 83 (this ) 85 SB
-
-529 2220 44 (is ) 46 SB
-
-575 2220 74 (the ) 76 SB
-
-651 2220 91 (first ) 93 SB
-
-744 2220 157 (version ) 159 SB
-
-903 2220 54 (of ) 56 SB
-
-959 2220 74 (the ) 76 SB
-
-1035 2220 230 (benchmark ) 232 SB
-
-1267 2220 40 (it ) 42 SB
-
-1309 2220 44 (is ) 46 SB
-
-1355 2220 54 (to ) 56 SB
-
-1411 2220 59 (be ) 62 SB
-
-1473 2220 227 (considered ) 230 SB
-
-1703 2220 35 (a ) 38 SB
-
-1741 2220 122 (living ) 125 SB
-
-1866 2220 230 (benchmark ) 233 SB
-
-2099 2220 76 (that) 76 SB
-
-225 2279 699 (will continue to grow and improve.) 699 SB
-
-375 2397 482 (In the future there are a ) 483 SB
-
-858 2397 162 (number ) 163 SB
-
-1021 2397 54 (of ) 55 SB
-
-1076 2397 132 (things ) 133 SB
-
-1209 2397 89 (that ) 90 SB
-
-1299 2397 106 (need ) 107 SB
-
-1406 2397 54 (to ) 55 SB
-
-1461 2397 59 (be ) 60 SB
-
-1521 2397 132 (added ) 133 SB
-
-1654 2397 54 (to ) 55 SB
-
-1709 2397 74 (the ) 75 SB
-
-1784 2397 230 (benchmark ) 231 SB
-
-2015 2397 89 (that ) 90 SB
-
-2105 2397 70 (this) 70 SB
-
-225 2456 1529 (author at this time did not have time to add. The following is but a small list.) 1529 SB
-
-32 0 0 75 75 0 0 0 75 /Symbol font
-
-226 2513 34 (\267) 35 SB
-
-261 2513 19 ( ) 40 SB
-
-225 2513 34 (\267) 35 SB
-
-260 2513 19 ( ) 40 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 2543 893 (Effects of the CGI \(Common Gate Interface\)) 893 SB
-
-32 0 0 75 75 0 0 0 75 /Symbol font
-
-226 2600 34 (\267) 35 SB
-
-261 2600 19 ( ) 40 SB
-
-225 2600 34 (\267) 35 SB
-
-260 2600 19 ( ) 40 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 2630 798 (Security \(encryption and authentication\)) 798 SB
-
-32 0 0 75 75 0 0 0 75 /Symbol font
-
-226 2687 34 (\267) 35 SB
-
-261 2687 19 ( ) 40 SB
-
-225 2687 34 (\267) 35 SB
-
-260 2687 19 ( ) 40 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 2717 298 (HTML parsing) 298 SB
-
-32 0 0 75 75 0 0 0 75 /Symbol font
-
-226 2774 34 (\267) 35 SB
-
-261 2774 19 ( ) 40 SB
-
-225 2774 34 (\267) 35 SB
-
-260 2774 19 ( ) 40 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 2804 436 (RDBMS performance) 436 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Symbol
-
-%%+ font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 22 22
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (22) 42 SB
-
-gr
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 257 1067 (These and others are of importance in the near future.) 1067 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 376 658 (9. Acknowledgments) 658 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 551 129 (There ) 139 SB
-
-514 551 74 (are ) 84 SB
-
-598 551 35 (a ) 45 SB
-
-643 551 162 (number ) 172 SB
-
-815 551 54 (of ) 64 SB
-
-879 551 145 (people ) 155 SB
-
-1034 551 89 (that ) 99 SB
-
-1133 551 105 (have ) 115 SB
-
-1248 551 143 (helped ) 153 SB
-
-1401 551 100 (with ) 111 SB
-
-1512 551 83 (this ) 94 SB
-
-1606 551 230 (benchmark ) 241 SB
-
-1847 551 102 (over ) 113 SB
-
-1960 551 74 (the ) 85 SB
-
-2045 551 94 (past ) 105 SB
-
-2150 551 25 (2) 25 SB
-
-225 610 171 (months. ) 180 SB
-
-405 610 13 ( ) 22 SB
-
-427 610 103 (First ) 112 SB
-
-539 610 84 (and ) 93 SB
-
-632 610 190 (foremost ) 199 SB
-
-831 610 121 (Mark ) 130 SB
-
-961 610 110 (Sake ) 120 SB
-
-1081 610 99 (who ) 109 SB
-
-1190 610 143 (helped ) 153 SB
-
-1343 610 108 (code ) 118 SB
-
-1461 610 84 (and ) 94 SB
-
-1555 610 448 (developed/architected ) 458 SB
-
-2013 610 74 (the ) 84 SB
-
-2097 610 78 (first) 78 SB
-
-225 669 1412 (version of the benchmark. Steffen Low for support and belief that this ) 1413 SB
-
-1638 669 144 (should ) 145 SB
-
-1783 669 168 (happen. ) 169 SB
-
-1952 669 13 ( ) 14 SB
-
-1966 669 70 (To ) 71 SB
-
-2037 669 138 (Helena) 138 SB
-
-225 728 339 (Winkler-Parenty ) 353 SB
-
-578 728 71 (for ) 85 SB
-
-663 728 59 (all ) 73 SB
-
-736 728 76 (her ) 90 SB
-
-826 728 109 (help. ) 123 SB
-
-949 728 13 ( ) 27 SB
-
-976 728 30 (I ) 44 SB
-
-1020 728 137 (would ) 151 SB
-
-1171 728 92 (also ) 107 SB
-
-1278 728 84 (like ) 99 SB
-
-1377 728 54 (to ) 69 SB
-
-1446 728 147 (special ) 162 SB
-
-1608 728 123 (thank ) 138 SB
-
-1746 728 132 (David ) 147 SB
-
-1893 728 209 (Ceimwize ) 224 SB
-
-2117 728 58 (for) 58 SB
-
-225 787 535 (contributions to this paper.) 535 SB
-
-375 905 221 (Additional ) 222 SB
-
-597 905 142 (thanks ) 143 SB
-
-740 905 54 (to ) 55 SB
-
-795 905 105 (Neal ) 106 SB
-
-901 905 177 (Nucklus ) 178 SB
-
-1079 905 84 (and ) 85 SB
-
-1164 905 82 (Bill ) 83 SB
-
-1247 905 182 (Nowicki ) 183 SB
-
-1430 905 71 (for ) 72 SB
-
-1502 905 147 (critical ) 148 SB
-
-1650 905 114 (input ) 115 SB
-
-1765 905 54 (to ) 55 SB
-
-1820 905 83 (this ) 84 SB
-
-1904 905 124 (paper ) 125 SB
-
-2029 905 84 (and ) 85 SB
-
-2114 905 61 (the) 61 SB
-
-225 964 230 (benchmark.) 230 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1083 742 (10. Author information) 742 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1258 117 (Gene ) 128 SB
-
-503 1258 122 (Trent ) 133 SB
-
-636 1258 44 (is ) 55 SB
-
-691 1258 35 (a ) 46 SB
-
-737 1258 179 (Member ) 190 SB
-
-927 1258 54 (of ) 65 SB
-
-992 1258 204 (Technical ) 215 SB
-
-1207 1258 99 (staff ) 110 SB
-
-1317 1258 49 (in ) 61 SB
-
-1378 1258 74 (the ) 86 SB
-
-1464 1258 187 (Advance ) 199 SB
-
-1663 1258 108 (Data ) 120 SB
-
-1783 1258 178 (Division ) 190 SB
-
-1973 1258 54 (of ) 66 SB
-
-2039 1258 136 (Silicon) 136 SB
-
-225 1317 203 (Graphics. ) 220 SB
-
-445 1317 13 ( ) 30 SB
-
-475 1317 87 (Mr. ) 104 SB
-
-579 1317 122 (Trent ) 139 SB
-
-718 1317 44 (is ) 61 SB
-
-779 1317 74 (the ) 91 SB
-
-870 1317 184 (principal ) 201 SB
-
-1071 1317 194 (Software ) 211 SB
-
-1282 1317 190 (Engineer ) 207 SB
-
-1489 1317 89 (that ) 106 SB
-
-1595 1317 216 (developed ) 234 SB
-
-1829 1317 74 (the ) 92 SB
-
-1921 1317 254 (WebSTONE) 254 SB
-
-225 1376 230 (benchmark ) 231 SB
-
-456 1376 84 (and ) 85 SB
-
-541 1376 142 (author ) 143 SB
-
-684 1376 54 (of ) 55 SB
-
-739 1376 83 (this ) 84 SB
-
-823 1376 122 (white ) 124 SB
-
-947 1376 137 (paper. ) 139 SB
-
-1086 1376 13 ( ) 15 SB
-
-1101 1376 117 (Gene ) 119 SB
-
-1220 1376 119 (holds ) 121 SB
-
-1341 1376 35 (a ) 37 SB
-
-1378 1376 201 (bachelors ) 203 SB
-
-1581 1376 146 (degree ) 148 SB
-
-1729 1376 49 (in ) 51 SB
-
-1780 1376 216 (Electronic ) 218 SB
-
-1998 1376 177 (Engineer) 177 SB
-
-225 1435 232 (technology ) 235 SB
-
-460 1435 108 (from ) 111 SB
-
-571 1435 135 (Devry ) 138 SB
-
-709 1435 177 (Institute ) 180 SB
-
-889 1435 54 (of ) 57 SB
-
-946 1435 261 (Technology. ) 264 SB
-
-1210 1435 13 ( ) 16 SB
-
-1226 1435 71 (He ) 74 SB
-
-1300 1435 81 (can ) 84 SB
-
-1384 1435 59 (be ) 63 SB
-
-1447 1435 167 (reached ) 171 SB
-
-1618 1435 50 (at ) 54 SB
-
-1672 1435 249 (et@sgi.com ) 253 SB
-
-1925 1435 56 (or ) 60 SB
-
-1985 1435 50 (at ) 54 SB
-
-2039 1435 136 (Silicon) 136 SB
-
-225 1494 757 (Graphics 2011 N. Mountain View, Ca) 757 SB
-
-375 1612 121 (Mark ) 133 SB
-
-508 1612 110 (Sake ) 122 SB
-
-630 1612 44 (is ) 56 SB
-
-686 1612 35 (a ) 47 SB
-
-733 1612 179 (Member ) 191 SB
-
-924 1612 54 (of ) 66 SB
-
-990 1612 204 (Technical ) 216 SB
-
-1206 1612 99 (staff ) 111 SB
-
-1317 1612 49 (in ) 61 SB
-
-1378 1612 74 (the ) 86 SB
-
-1464 1612 187 (Advance ) 199 SB
-
-1663 1612 108 (Data ) 120 SB
-
-1783 1612 178 (Division ) 190 SB
-
-1973 1612 54 (of ) 66 SB
-
-2039 1612 136 (Silicon) 136 SB
-
-225 1671 1238 (Graphics. Mr. Sake co-authored the WebSTONE benchmark.) 1238 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1938 486 (11. References:) 486 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-383 2094 59 ([1]) 59 SB
-
-525 2094 862 (Berners-Lee, Fielding, and Frystyk Nielsen.) 862 SB
-
-525 2153 303 (\223Hypertext Tra) 303 SB
-
-828 2153 550 (nsfer Protocol - HTTP/1.0\224) 550 SB
-
-525 2212 986 (Network Working Group INTERRNET_DRAFT) 986 SB
-
-525 2271 639 (<draft-fielding-http-spec-01.ps>) 639 SB
-
-525 2330 1311 (<URL:http://www.ics.uci.edu/pub/ietf/http/> December 19, 1994) 1311 SB
-
-375 2439 59 ([2]) 59 SB
-
-525 2439 566 (Mark Wittle, Bruce E. Keith) 566 SB
-
-525 2498 1359 (\223LADDIS: The Next Generation In NFS File Server Benchmarking\224) 1359 SB
-
-525 2557 1031 (USENIX Association Conference Proceeding, 1993) 1031 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 2726 507 (12. Trademarks) 507 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 23 23
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (23) 42 SB
-
-gr
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-225 169 91 (NFS) 91 SB
-
-32 0 0 31 31 0 0 0 28 /Times-Roman /font32 ANSIFont font
-
-316 163 32 (tm) 32 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-348 169 828 ( is a trademark of Sun Microsystems, Inc.) 828 SB
-
-225 228 1274 (UNIX is a registered trademark of UNIX Systems Laboratories.) 1274 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Roman
-
-%%Trailer
-
-SVDoc restore
-
-end
-
-%%Pages: 23
-
-% TrueType font name key:
-
-% MSTT31c0e8 = 2b0fDTimes New RomanF0000002a000001900000
-
-% MSTT31c0f9 = 089fDTimes New RomanF0000003a000002bc0000
-
-% MSTT31c106 = 089fDTimes New RomanF0000003a000001900000
-
-% MSTT31c113 = 089fDTimes New RomanF00000053000002bc0000
-
-% MSTT31c120 = 089fDTimes New RomanF00000032000001900000
-
-% MSTT31c132 = 089fDTimes New RomanF0000002a000001900000
-
-% MSTT31c13f = 089fDTimes New RomanF0000004b000002bc0000
-
-% MSTT31c14c = 089fDSymbolF00000032000001900000
-
-% MSTT31c157 = 089fDTimes New RomanF00000021000001900000
-
-% MSTT31c164 = 089fDTimes New RomanF00000026000001900000
-
-% MSTT31c171 = 089fDSymbolF00000032000002bc0000
-
-% MSTT31c17c = 089fDTimes New RomanF00000032000002bc0000
-
-% MSTT31c189 = 089fDSymbolF0000004b000002bc0000
-
-% MSTT31c194 = 089fDTimes New RomanF0000001f000001900000
-
-% MSTT31c1aa = 089fDTimes New RomanF0000004b000001900000
-
-% MSTT31c1b7 = 09dfDTimes New RomanF0000003a000002bc0000
-
-% MSTT31c1c4 = 09dfDTimes New RomanF00000053000002bc0000
-
-% MSTT31c1d1 = 09dfDTimes New RomanF00000032000001900000
-
-% MSTT31c1de = 09dfDTimes New RomanF0000003a000001900000
-
-% MSTT31c1eb = 09dfDTimes New RomanF0000002a000001900000
-
-% MSTT31c1f8 = 09dfDTimes New RomanF0000004b000002bc0000
-
-% MSTT31c205 = 09dfDSymbolF00000032000001900000
-
-% MSTT31c210 = 09dfDTimes New RomanF00000021000001900000
-
-% MSTT31c21d = 09dfDSymbolF00000032000002bc0000
-
-% MSTT31c228 = 09dfDTimes New RomanF00000032000002bc0000
-
-% MSTT31c235 = 09dfDTimes New RomanF00000026000001900000
-
-% MSTT31c242 = 09dfDSymbolF0000004b000002bc0000
-
-% MSTT31c24d = 09dfDTimes New RomanF0000001f000001900000
-
-%%DocumentSuppliedResources: procset Win35Dict 3 1
-
-
-
-%%DocumentNeededResources: font Symbol
-
-%%+ font Times-Bold
-
-%%+ font Times-Roman
-
-
-
-%%EOF
-
-
diff --git a/apps/JAWS/clients/WebSTONE/doc/webstone.gif b/apps/JAWS/clients/WebSTONE/doc/webstone.gif
deleted file mode 100644
index c7cd76d9a59..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/webstone.gif
+++ /dev/null
Binary files differ
diff --git a/apps/JAWS/clients/WebSTONE/doc/webstone2.html b/apps/JAWS/clients/WebSTONE/doc/webstone2.html
deleted file mode 100644
index 50534eb704c..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/webstone2.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<HTML VERSION="2.0">
-<HEAD>
-<!-- WEBMAGIC VERSION NUMBER="2.0.1" -->
-<!-- WEBMAGIC TRANSLATION NAME="ServerRoot" SRC="/var/www/htdocs/" DST="/" -->
-<!-- WEBMAGIC TRANSLATION NAME="ProjectRoot" SRC="./" DST="" -->
-<TITLE>What is Webstone 2.0</TITLE>
-</HEAD>
-<BODY>
-<CENTER><H1 ALIGN="CENTER"><IMG SRC="webstone.gif" WIDTH="534" HEIGHT="174" SGI_FULLPATH="/disk6/WebStone-2.0/doc/webstone.gif"></H1>
-</CENTER><H1>Introducing WebStone 2.0</H1>
-<P>WebStone 2.0 is the second generation Webstone web server benchmark. It
-incorporates numerous bug fixes, modifications for compatibility with other
-platforms and adds the new functionality of benchmark proxy servers, cgi
-and NSAPI programs as well as introducing run rules which should make Webstone
-numbers significantly more meaningful for comparison.</P>
-<H2>New Features</H2>
-<P>Webstone 2.0 provides facilities for benchmarking proxy servers. This is
-accomplished by putting in a value for the the PROXYSERVER entry in the
-conf/testbed file, and changing the filelist to include URL's that have
-the hostname for the actual web server.</P>
-<P>Dynamic content benchmarking is now explicitly supported in Webstone 2.0.
-The file README.DynamicWorkload has directions for testing of NSAPI. The
-included filelist.dynamic-{light,medium,heavy} serve as sample loads, with
-the filelist.dynamic-heavy being the load that should be reported for NSAPI
-performance. The cgi-send numbers should be quored for the filelist.cgi-heavy
-fileset.</P>
-<P>A port of the WebStone 2.0 benchmark to Windows NT is also included in this
-release. This port is still in progress, so full functionality is not assured.
-Specifically only the benchmark code has been ported - the supporting scripts
-have not.</P>
-<H2>Run Rules</H2>
-<P>As of Webstone 2.0, there are now run rules which must be adhered to for
-published Webstone numbers. These are fairly basic, but they provide important
-constraints on the benchmarking which make Webstone numbers more meaningful.</P>
-<P><B>Fileset: </B>Included in the Webstone distribution is filelist.standard, which was previously
-called filelist.sample. This filelist has a distribution of fileset sizes
-that matches the kind of distributions seen in live web sites. The largest
-file in the distribution is a 5 MB in length, which simulates the occasional
-MPEG or other animation file which is downloaded. This filelist should be
-used for all published Webstone numbers. Note that running WebStone 2.0
-with the sort of fileset given in WebStone 1.1 will not yield a comparable
-benchmark. In general, the WebStone 2.0 filelist will yield lower rates
-for connections/second, but higher rates for throughput - the two sets of
-numbers cannot be compared.</P>
-<P>When reporting NSAPI numbers, the filelist.dynamic-heavy filelist should
-be used. For CGI numbers, the filelist.cgi-heavy filelist should be used.</P>
-<P><B>Benchmark Run Configuration:</B> For a reported WebStone run, the runtime must be set at least 10 minutes.
-This provides adequate time for the server and client configuration to reach
-a steady state, and then provides a length of time long enough to cancel
-out the high variations seen in the first few minutes of the run. The number
-of clients should also vary from 20 to 100 in increments of 10 so that performance
-of the server under a wide variety of loads can be observed.</P>
-<P><B>Server Configuration:</B> The number of threads/processes is open to the discretion of the benchmarkers.
-However, whether server side logging is on must be explicitly reported.
-When logging is turned on, it must be in the common logfile format, and
-only IP addresses should be logged. Parsed HTML is recommended to be turned
-off.</P>
-<P>Proxy Configuration: The configuration of how often the proxy server polls
-the actual server for refreshes of it's cache should be described, as well
-as any information</P>
-<P><B>Server Machine Configuration:</B> When reporting runs, it is necessary that the operating system, memory
-configuration and any special operating system modifications be reported,
-especially changes to the TCP/IP stack.</P>
-<P><B>Testbed configuration: </B>Reported runs must include information about the network topology being
-used, as well as the number and type of machines generating load.</P>
-<P>All reported runs must include the information summarized by webstone -results,
-excluding the timestamp. This includes: number of clients, connections per
-second, little's law number, latency, error level and throughput. Preferably
-in a table format.</P>
-</BODY>
-</HTML>
diff --git a/apps/JAWS/clients/WebSTONE/src/Makefile b/apps/JAWS/clients/WebSTONE/src/Makefile
deleted file mode 100644
index d57dfffcd8f..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/Makefile
+++ /dev/null
@@ -1,112 +0,0 @@
-# Generated automatically from Makefile.in by configure.
-#
-# WebStone src/Makefile.in, version 2.0a5
-# last modified 12 Dec 1995 by mblakele@engr.sgi.com
-#
-
-PRODUCT = webstone
-VERSION = 2.0b4
-
-DYNAMICDEFS = -DMCC_HTTPD -DXP_UNIX
-DYNAMICINCLUDES = -I/usr/ns-home/nsapi/include
-
-LD_SHAREDCMD = ld -shared
-
-CC = cc
-LIBS = -lsocket -lm -lthread #-lm
-LDFLAGS =
-INCLUDES = $(DYNAMICINCLUDES)
-CFLAGS = -fast
-CPPFLAGS =
-DEFS = -DHAVE_CONFIG_H $(DYNAMICDEFS)
-
-BINDIR = ../bin
-CP = cp
-RM = rm -f
-
-EXECUTABLE1 = webmaster
-MAIN1 = webmaster.c
-EXECUTABLE2 = webclient
-MAIN2 = webclient.c
-EXECUTABLE3 = genrand
-MAIN3 = genrand.c
-
-MASTERSRCS = timefunc.c bench.c parse_file_list.c statistics.c \
- errexit.c sysdep.c
-
-STONESRCS = timefunc.c get.c \
- parse_file_list.c bench.c statistics.c errexit.c \
- sysdep.c
-
-#For Solaris 2.x, remove the comment from the following lines
-LIBS = -lm -lnsl -lsocket
-#-L/usr/ucblib -lucb
-#INCLUDES = -I/usr/ns-home/nsapi/include -I/usr/ucbinclude
-
-OPTIMIZATION = -O
-COMPILE = $(CC) $(CFLAGS) $(DEFS) $(INCLUDES)
-
-MASTEROBJS = webmaster.o $(MASTERSRCS:.c=.o)
-STONEOBJS = webclient.o $(STONESRCS:.c=.o)
-GENRANDOBJS = genrand.o
-
-TARGETS = $(EXECUTABLE1) $(EXECUTABLE2) $(EXECUTABLE3)
-
-.SUFFIXES:
-.SUFFIXES: .c .o
-.c.o:
- @echo "COMPILING FILE " $<
- $(COMPILE) -c $< -o $@
-
-all: $(TARGETS)
-
-install: all
- $(CP) $(TARGETS) $(BINDIR)
-
-pure: all
- purify -mail-to-user=root webclient
- $(CP) webclient.pure $(BINDIR)/webclient
- $(RM) webclient.pure
- purify -mail-to-user=root webmaster
- $(CP) webmaster.pure $(BINDIR)/webmaster
- $(RM) webmaster.pure
-
-clean:
- $(RM) $(MASTEROBJS) $(STONEOBJS) $(GENRANDOBJS)
- $(RM) webmaster.pure webclient.pure
-
-clobber: clean
- $(RM) config.cache config.log config.status config.h Makefile
- $(RM) $(TARGETS)
-
-webmaster.o: webmaster.c bench.h parse_file_list.h statistics.h \
- sysdep.h timefunc.h debug.h config.h
-
-webclient.o: webclient.c bench.h debug.h get.h \
- parse_file_list.h statistics.h sysdep.h timefunc.h config.h
-
-timefunc.o: timefunc.c timefunc.h bench.h debug.h statistics.h \
- sysdep.h config.h
-
-bench.o: bench.c bench.h debug.h statistics.h sysdep.h timefunc.h config.h
-
-errexit.o: errexit.c sysdep.h config.h
-
-statistics.o: statistics.c statistics.h sysdep.h config.h
-
-cgi: cgi-send.o
- $(COMPILE) cgi-send.o -o cgi-send.cgi
-
-nsapi: nsapi-send.o
- $(LD_SHAREDCMD) nsapi-send.o -o nsapi-send.so
-
-webmaster: $(MASTEROBJS)
- $(COMPILE) $(MASTEROBJS) $(LIBPATH) $(LIBS) -o $(EXECUTABLE1)
-
-webclient: $(STONEOBJS)
- $(COMPILE) $(STONEOBJS) $(LIBPATH) $(LIBS) -lthread -o $(EXECUTABLE2)
-
-genrand: $(GENRANDOBJS)
- $(COMPILE) $(GENRANDOBJS) $(LIBPATH) $(LIBS) -o $(EXECUTABLE3)
-
-#
diff --git a/apps/JAWS/clients/WebSTONE/src/Makefile.in b/apps/JAWS/clients/WebSTONE/src/Makefile.in
deleted file mode 100644
index da887d4a6c7..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/Makefile.in
+++ /dev/null
@@ -1,110 +0,0 @@
-#
-# WebStone src/Makefile.in, version 2.0a5
-# last modified 12 Dec 1995 by mblakele@engr.sgi.com
-#
-
-PRODUCT = @PRODUCT@
-VERSION = @VERSION@
-
-DYNAMICDEFS = -DMCC_HTTPD -DXP_UNIX
-DYNAMICINCLUDES = -I/usr/ns-home/nsapi/include
-
-LD_SHAREDCMD = ld -shared
-
-CC = @CC@
-LIBS = @LIBS@ #-lm
-LDFLAGS = @LDFLAGS@
-INCLUDES = $(DYNAMICINCLUDES)
-CFLAGS = @CFLAGS@
-CPPFLAGS = @CPPFLAGS@
-DEFS = @DEFS@ $(DYNAMICDEFS)
-
-BINDIR = ../bin
-CP = cp
-RM = rm -f
-
-EXECUTABLE1 = webmaster
-MAIN1 = webmaster.c
-EXECUTABLE2 = webclient
-MAIN2 = webclient.c
-EXECUTABLE3 = genrand
-MAIN3 = genrand.c
-
-MASTERSRCS = timefunc.c bench.c parse_file_list.c statistics.c \
- errexit.c sysdep.c
-
-STONESRCS = timefunc.c get.c \
- parse_file_list.c bench.c statistics.c errexit.c \
- sysdep.c
-
-#For Solaris 2.x, remove the comment from the following lines
-#LIBS = -lm -lnsl -lsocket -L/usr/ucblib -lucb
-#INCLUDES = -I/usr/ns-home/nsapi/include -I/usr/ucbinclude
-
-OPTIMIZATION = -O
-COMPILE = $(CC) $(CFLAGS) $(DEFS) $(INCLUDES)
-
-MASTEROBJS = webmaster.o $(MASTERSRCS:.c=.o)
-STONEOBJS = webclient.o $(STONESRCS:.c=.o)
-GENRANDOBJS = genrand.o
-
-TARGETS = $(EXECUTABLE1) $(EXECUTABLE2) $(EXECUTABLE3)
-
-.SUFFIXES:
-.SUFFIXES: .c .o
-.c.o:
- @echo "COMPILING FILE " $<
- $(COMPILE) -c $< -o $@
-
-all: $(TARGETS)
-
-install: all
- $(CP) $(TARGETS) $(BINDIR)
-
-pure: all
- purify -mail-to-user=root webclient
- $(CP) webclient.pure $(BINDIR)/webclient
- $(RM) webclient.pure
- purify -mail-to-user=root webmaster
- $(CP) webmaster.pure $(BINDIR)/webmaster
- $(RM) webmaster.pure
-
-clean:
- $(RM) $(MASTEROBJS) $(STONEOBJS) $(GENRANDOBJS)
- $(RM) webmaster.pure webclient.pure
-
-clobber: clean
- $(RM) config.cache config.log config.status config.h Makefile
- $(RM) $(TARGETS)
-
-webmaster.o: webmaster.c bench.h parse_file_list.h statistics.h \
- sysdep.h timefunc.h debug.h config.h
-
-webclient.o: webclient.c bench.h debug.h get.h \
- parse_file_list.h statistics.h sysdep.h timefunc.h config.h
-
-timefunc.o: timefunc.c timefunc.h bench.h debug.h statistics.h \
- sysdep.h config.h
-
-bench.o: bench.c bench.h debug.h statistics.h sysdep.h timefunc.h config.h
-
-errexit.o: errexit.c sysdep.h config.h
-
-statistics.o: statistics.c statistics.h sysdep.h config.h
-
-cgi: cgi-send.o
- $(COMPILE) cgi-send.o -o cgi-send.cgi
-
-nsapi: nsapi-send.o
- $(LD_SHAREDCMD) nsapi-send.o -o nsapi-send.so
-
-webmaster: $(MASTEROBJS)
- $(COMPILE) $(MASTEROBJS) $(LIBPATH) $(LIBS) -o $(EXECUTABLE1)
-
-webclient: $(STONEOBJS)
- $(COMPILE) $(STONEOBJS) $(LIBPATH) $(LIBS) -o $(EXECUTABLE2)
-
-genrand: $(GENRANDOBJS)
- $(COMPILE) $(GENRANDOBJS) $(LIBPATH) $(LIBS) -o $(EXECUTABLE3)
-
-#
diff --git a/apps/JAWS/clients/WebSTONE/src/README b/apps/JAWS/clients/WebSTONE/src/README
deleted file mode 100755
index 2061342b7ae..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/README
+++ /dev/null
@@ -1,232 +0,0 @@
-README WebStone 2.0 Release version
-
-WARNING: WebStone 2.0 results should not be compared with WebStone 1.1
- results. Even under the same fileset performance will not be
- equivalent.
-
-Please see the notes for 2.0beta6 for quick and dirty install
- This version includes a port of the webstone source code to Windows
-NT. This port is still in progress, so it is not possible to guarantee
-that everything is working correctly - however in our test configurations
-it has performed correctly. Note that the supporting scripts and report
-generating code has not been ported to NT yet.
-
- This version also institutes some basic run rules to eliminate the
-lack of conformity in Webstone performance quotes.
- To report Webstone numbers, some basic rules should be followed:
-
- 1) The fileset used for the test must be the fileset.standard fileset
- included in the distribution. Tests of CGI performance must be
- with the file filelist.cgi-heavy, and tests of NSAPI performance
- must be carried out with filelist.dynamic-heavy
-
- 2) The run time should be set for 10 minutes, and the number of
- clients should vary from 20 clients to 100 clients in increments
- of 10. When a connections/second time is quoted, it must include
- information about the number of clients involved.
-
- 3) Any special TCP/IP tuning which the server has recieved should
- be documented, as well as HTTPD server version and configuration
- information such as logging, DNS lookups and number of threads.
-
-
-README - WebStone 2.0beta6
-
-WARNING: Do not compare WebStone 2.0 results with WebStone 1.0 results.
- WebStone 2.0 introduces significant changes in testing methodology
- and reporting.
-
-This is the WebStone benchmark. Quick and dirty install:
- - set up a Web server
- - put this directory (WebStone) on a seperate machine (the "controller")
- - "./webstone -setup", which does the following:
- - gui-configure
- This script may fail if you don't have a Web browser or
- Perl5. Don't worry, unless you want to use the GUI.
- - autoconf
- If the GNU autoconf fails for your OS, please forward the
- error messages, and any porting hints, to the author.
- - make install
- This may not be necessary, since IRIX binaries are included.
- - edit conf/testbed to reflect your site
- See the doc/FAQ-webstone.html for details.
- - ./webstone -genfiles will put the files in conf/fileset
- onto your Web server.
- - ./webstone
- - to display a table of results: ./webstone -results
-
-If you'd like to try out the GUI for WebStone:
- - run "./webstone -setup", as above.
- - make sure you have a Web browser installed
- - ./configure
- - ./webstone -gui
-
-Files of interest:
- README: This document.
- README.FIRST: Quick and dirty directions.
- README.DynamicWorkload: Information on the CGI and NSAPI workloads.
- webstone: wrapper shell script for everything.
- Takes options:
- -gui: start the GUI mode
- -kill: kill stray WebStone processes
- -genfiles: build files (from conf/fileset)
- and rcp onto the server $SERVER
- - results: print table of results
- -setup: initial make and setup
- -silent: runs in the background
- -tail: tail -f of most recent run
-
-Files of interest (./src):
- Makefile, *.c, *.h: The Webstone source code
-
-Files of interest (./bin):
- checkfilelist: uses rsh to check web server for files in filelist.
- genfiles, genrand: generates files of arbitrary length.
- getstats: Collects network statistics from Web server, clients.
- killbench: terminates stray WebStone processes.
- rebootall: reboots all WebStone webclients.
- runbench: wrapper script for WebStone.
- webmaster: WebStone controller executable.
- webstone: WebStone client executable.
- wscollect: reports results in tabular format.
-
-Files of interest (./conf):
- filelist: default list of files on the Web server,
- with workload description.
- filelist.photo: Model of a popular Web site
- containing photographic images.
- filelist.ss: Model of SGI's Silicon Surf WWW site.
- fileset: list of files for genfiles to create.
- testbed: config file describing Web server, client, and network setup.
-
-Documentation (./doc):
- FAQ.html: The FAQ, current as of this distribution.
- LICENSE: Legal status of WebStone.
- testbed.help: Explains the parameters in conf/testbed.
- webstone-white-paper.ps: The original WebStone white paper.
- webstone.gif: The WebStone logo.
-
-Additional documentation:
- FAQ.html: Frequently Asked Questions, with answers
- webstone.ps: PostScript white paper on WebStone
-
-Problems, etc. may be addressed to the WebStone mailing list.
-Read the FAQ for details.
-
-Release Notes (2.0 beta6):
- * fixed a bug for Web servers not on port 80
- * further changes to bin/wscollect.pl
-
-Release Notes (2.0 beta5):
- * numerous minor fixes suggested by gcc -Wall -pedantic
- * updated FAQ
- * changed bin/wscollect.pl to use Perl formats
-
-Release Notes (2.0 beta4):
- * added #include <sys/time.h> to bench.h
- * changed webclient located to $TMPDIR - this should help people
- who don't want to run WebStone as root
- * changed check for libm to floor() instead of sqrt(). Apparently
- some systems implement sqrt() in libc - let's hope no one implement
- floor() in libc and sqrt() in libm!
-
-Release Notes (2.0 beta3):
- * more portability fixes
- * successfully compiled on FreeBSD 2.2, IRIX without any source
- changes
-
-Release Notes (2.0 beta2):
- * additional timezone fixes for SunOS
-
-Release Notes (2.0 beta1):
- * fixed a bug in the rexec portion of webmaster.c
- * fixed a bug in the usage() routine of webmaster.c
- * added bin/genfiles-from-filelist.sh
- - bin/genfiles-from-filelist.sh <filename>
- - generates appropriate-length files from <filename>
- - <filename> must contain three fields:
- <relative URL> <weight> #<size in bytes>
- example: /file.html 1 #1024
- * added bin/mine-logs.pl
- - usage: mine-logs.pl <filename>
- where <filename> is an http server log file
- - writes a WebStone workload to standard output
-
-Release Notes (2.0 alpha5):
- * revised default testbed file
- * changed wscollect to wscollect.pl for consistency
- * changed webstone-gui to webstone-gui.pl for consistency
- * added some NT porting hints
- * added autoconf, which should help Linux and SunOS porting
-
-Release Notes (2.0 alpha4):
- * added SunOS and Linux portability elements
- * new scheme for random access to pages
- * converted several static arrays to dynamic pointers
-
-Release Notes (2.0 alpha2):
- * fixed per-page statistics
- * new, client-independent data-passing scheme
- * added support for proxy servers
-
-Release Notes (2.0 alpha1):
- * new filelist scheme - however, this breaks per-page statistics
- * minor fixes
-
-Release Notes (1.1):
- * Improved webclient performance by combining GET and ACCEPT
- HTTP headers in one write() call.
- * Improved webclient performance on systems that always attempt
- to map protocol names to numbers using YP.
- * WARNING: since the old code introduced a significant latency
- in some systems, DO NOT compare WebStone 1.1 results
- with results generated by any previous versions.
-
-Release Notes (1.0.3):
- * Netscape Server 1.1.2 exposed a couple bugs, which I've now fixed.
-
-Release Notes (1.0.2):
- * Fixed runbench so that ITERATIONS, MINCLIENTS, and MAXCLIENTS don't
- have to have a common denominator any more.
- * Fixed a few cosmetic bugs.
-
-Release Notes (1.0.1):
- * Fixed select() bug in webmaster
-
-Release Notes (1.0 final):
- * Fixed the "Error reading 2nd timing info" bug
- * Fixed numerous bugs in the GUI
- * Froze feature set. Work can now begin on WebStone 1.1
-
-Release Notes (1.0b3):
- * New Web browser GUI
- NOTE: most Web browsers take up substantial CPU time.
- If you run the GUI, we recommend that you make the controller
- a separate machine, and don't run any WebStone clients on it.
- * Minor bug fixes
- Squashed some dubious error messages, fixed some client-
- controller communications problems.
- * Reporting changes
- Changes the units and order of the final summary statistics.
- Basically, this is for my own convenience, so I don't have to
- massage the data quite so much before using it. wscollect
- now reports only the metrics I regard as important - but all
- metrics are still reported in the runs/*/run files.
-
-LEGAL STUFF:
-
-This file and all files contained in this directory are
-copyright 1995, Silicon Graphics, Inc.
-
-This software is provided without support and without any obligation on the
-part of Silicon Graphics, Inc. to assist in its use, correction, modification
-or enhancement. There is no guarantee that this software will be included in
-future software releases, and it probably will not be included.
-
-THIS SOFTWARE IS PROVIDED "AS IS" WITH NO WARRANTIES OF ANY KIND INCLUDING THE
-WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE,
-OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-
-In no event will Silicon Graphics, Inc. be liable for any lost revenue or
-profits or other special, indirect and consequential damages, even if
-Silicon Graphics, Inc. has been advised of the possibility of such damages.
diff --git a/apps/JAWS/clients/WebSTONE/src/acconfig.h b/apps/JAWS/clients/WebSTONE/src/acconfig.h
deleted file mode 100644
index 7878554b6b8..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/acconfig.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Special definitions for autoheader
- Copyright (C) 1995 Silicon Graphics, Inc.
-$Header$
-*/
-
-/* Define to the name of the distribution. */
-#undef PRODUCT
-
-/* Define to the version of the distribution. */
-#undef VERSION
-
-/* Should we use timezone in gettimeofday? */
-#undef USE_TIMEZONE
-
-/* end */
diff --git a/apps/JAWS/clients/WebSTONE/src/bench.c b/apps/JAWS/clients/WebSTONE/src/bench.c
deleted file mode 100644
index 48007321f23..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/bench.c
+++ /dev/null
@@ -1,632 +0,0 @@
-/**************************************************************************
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-#include <stdio.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <math.h>
-#include <limits.h>
-#include <float.h>
-#ifndef WIN32
-#include <unistd.h>
-#include <sys/time.h>
-#include <sys/uio.h>
-#include <sys/param.h>
-#include <netdb.h>
-#else
-#include <windows.h>
-#include <winsock.h>
-#endif /* WIN32 */
-#include "sysdep.h"
-#include "bench.h"
-
-
-/* allocate memory and exit if out of memory */
-void *mymalloc(size_t size) {
-void *ptr;
-
- ptr = malloc(size);
- if (ptr == NULL)
- errexit("Call to malloc() failed\n");
- return ptr;
-}
-
-/*
- * Receive n bytes from a socket
- */
-int
-recvdata(SOCKET sock, char *ptr, int nbytes) {
-
- int nleft, nread;
-
- nleft = nbytes;
- while (nleft > 0)
- {
- D_PRINTF( "In recvdata(%d, %d)\n", sock, nleft );
- nread = NETREAD(sock, ptr, nleft);
- D_PRINTF( "NETREAD() returned %d\n", nread );
- if (BADSOCKET(nread) || nread == 0)
- {
- /* return error value NETWRITE */
- D_PRINTF( "Error in recvdata(): %s\n",neterrstr() );
- return(nread);
- }
-
- D_PRINTF( "NETREAD() data: \"%.*s\"\n", nread, ptr);
- nleft -= nread;
- ptr += nread;
- } /* end while */
-
- /* return >= 0 */
- return(nbytes - nleft);
-
-} /* end recvdata */
-
-
-/*
- * Send n bytes to a socket
- */
-int
-senddata(SOCKET sock, char *ptr, int nbytes) {
- int nleft, nwritten;
-
- D_PRINTF( "In senddata(%d, \"%.*s\", %d)\n", sock, nbytes, ptr, nbytes );
- nleft = nbytes;
- while (nleft > 0)
- {
- nwritten = NETWRITE(sock, ptr, nleft);
- D_PRINTF( "senddata() returned %d\n", nwritten );
- if (BADSOCKET(nwritten))
- {
- /* return error value from NETWRITE */
- D_PRINTF( "Error in senddata(): %s\n", neterrstr() );
- return(nwritten);
- }
- nleft -= nwritten;
- ptr += nwritten;
- }
- return(nbytes - nleft);
-
-} /* end senddata */
-
-/* GENERAL NOTE: the conversion routines that follow pass their results
- * back in a static arrays. A second call to the same routine overwrites
- * the previous buffer value for that routine. If you want to save the
- * value in the buffer copy it to another variable.
- */
-
-char *
-timeval_to_text(const struct timeval *the_timeval) {
- /*
- * given a timeval (seconds and microseconds), put the text
- * "seconds.microseconds" into timeval_as_text
- */
- THREAD static char timeval_as_text[SIZEOF_TIMEVALTEXT+1];
- int seconds, microseconds;
- int returnval = 0;
-
- seconds = the_timeval->tv_sec;
- microseconds = the_timeval->tv_usec;
- returnval = sprintf(timeval_as_text,
- "%10d.%6.6d\t", seconds, microseconds);
- return timeval_as_text;
-}
-
-
-char *
-double_to_text(const double the_double) {
- /*
- * given a double, return text
- */
- THREAD static char double_as_text[SIZEOF_DOUBLETEXT + 1];
- int returnval = 0;
-
- returnval = sprintf(double_as_text, "%17.01f\t", the_double);
- return(double_as_text);
-}
-
-struct timeval
-text_to_timeval(char *timeval_as_text) {
- int returnval = 0;
- long int seconds, microseconds;
- struct timeval the_timeval;
-
- D_PRINTF("T/%d %s\n", (int)timeval_as_text, timeval_as_text);
- returnval = sscanf(timeval_as_text, "%ld.%ld",
- &seconds, &microseconds);
- the_timeval.tv_sec = seconds;
- the_timeval.tv_usec = microseconds;
- return the_timeval;
-}
-
-double
-text_to_double(char *double_as_text) {
- double the_double = 0;
- int returnval = 0;
-
- D_PRINTF("D/%d %s\n", (int)double_as_text, double_as_text);
- returnval = sscanf(double_as_text, "%lf", &the_double);
- return(the_double);
-}
-
-
-rqst_stats_t *
-text_to_rqst_stats(char *rqst_stats_as_text) {
- THREAD static rqst_stats_t rqst_stats;
- rqst_stats_t *the_rqst_stats = &rqst_stats;
-
- the_rqst_stats->totalresponsetime =
- text_to_timeval(strtok(rqst_stats_as_text, "\t"));
-
- the_rqst_stats->totalresponsetimesq =
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->minresponsetime =
- text_to_timeval(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->maxresponsetime =
- text_to_timeval(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->totalconnecttime =
- text_to_timeval(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->totalconnecttimesq =
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->minconnecttime =
- text_to_timeval(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->maxconnecttime =
- text_to_timeval(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->totalconnects = (unsigned long)
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->totalerrs = (unsigned long)
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->totalerrortime =
- text_to_timeval(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->totalbytes =
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->totalbytessq =
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->minbytes =
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->maxbytes =
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->totalbody =
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->totalbodysq =
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->minbody =
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->maxbody =
- text_to_double(strtok((char *)NULL, "\t"));
-
- return(the_rqst_stats);
-} /* end text_to_rqst_stats */
-
-
-char *
-rqst_stats_to_text(rqst_stats_t *the_rqst_stats) {
- THREAD static char rqst_stats_as_text[SIZEOF_RQSTSTATSTEXT];
- char *tmpbuf;
-
- *rqst_stats_as_text = 0;
-
- tmpbuf = timeval_to_text(&(the_rqst_stats->totalresponsetime));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->totalresponsetimesq));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = timeval_to_text(&(the_rqst_stats->minresponsetime));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = timeval_to_text(&(the_rqst_stats->maxresponsetime));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = timeval_to_text(&(the_rqst_stats->totalconnecttime));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->totalconnecttimesq));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = timeval_to_text(&(the_rqst_stats->minconnecttime));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = timeval_to_text(&(the_rqst_stats->maxconnecttime));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->totalconnects));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->totalerrs));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = timeval_to_text(&(the_rqst_stats->totalerrortime));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->totalbytes));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->totalbytessq));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->minbytes));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->maxbytes));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->totalbody));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->totalbodysq));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->minbody));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->maxbody));
- strcat(rqst_stats_as_text, tmpbuf);
-
- D_PRINTF( "rqst_stats_to_text returning %d: %s\n",
- strlen(rqst_stats_as_text),
- rqst_stats_as_text );
-
- return(rqst_stats_as_text);
-}
-
-
-stats_t *
-text_to_stats(char *stats_as_text) {
- int i;
- rqst_stats_t *the_rqst_stats;
- THREAD static stats_t stats;
- stats_t *the_stats = &stats;
-
- D_PRINTF( "Parsing stats: %s\n", stats_as_text );
- /* grab stats.rs */
- the_rqst_stats = text_to_rqst_stats(stats_as_text);
- the_stats->rs = *the_rqst_stats;
-
- /* grab main structure */
- the_stats->starttime = text_to_timeval(strtok((char *)NULL, "\t"));
- the_stats->endtime = text_to_timeval(strtok((char *)NULL, "\t"));
- the_stats->datatime = text_to_timeval(strtok((char *)NULL, "\t"));
- the_stats->totalpages = (unsigned long) text_to_double(strtok((char *)NULL, "\t"));
- the_stats->total_num_of_files = (unsigned int) text_to_double(strtok((char *)NULL, "\t"));
- for (i = 0; i < number_of_pages; i++)
- {
- the_stats->page_numbers[i] = (unsigned int) text_to_double(strtok((char *)NULL, "\t"));
- }
- /* return bytes read */
- D_PRINTF( "Returning stats\n");
- return(the_stats);
-} /* end text_to_stats */
-
-
-
-char *
-stats_to_text(const stats_t *the_stats) {
- int i;
- THREAD static char stats_as_text[SIZEOF_STATSTEXT];
- char *tmpbuf;
- rqst_stats_t the_rqst_stats;
-
- *stats_as_text = 0;
-
- /* stats.rs */
- the_rqst_stats = the_stats->rs;
- tmpbuf = rqst_stats_to_text(&the_rqst_stats);
- strcat(stats_as_text, tmpbuf);
-
- /* main structure */
-
- tmpbuf = timeval_to_text(&(the_stats->starttime));
- strcat(stats_as_text, tmpbuf);
-
- tmpbuf = timeval_to_text(&(the_stats->endtime));
- strcat(stats_as_text, tmpbuf);
-
- tmpbuf = timeval_to_text(&(the_stats->datatime));
- strcat(stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_stats->totalpages));
- strcat(stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_stats->total_num_of_files));
- strcat(stats_as_text, tmpbuf);
-
- for (i = 0; i < number_of_pages; i++)
- {
- tmpbuf = double_to_text((the_stats->page_numbers[i]));
- strcat(stats_as_text, tmpbuf);
- }
-
- strcat(stats_as_text, "\n");
-
- return(stats_as_text);
-} /* end stats_to_text */
-
-
-
-page_stats_t *
-text_to_page_stats(char *page_stats_as_text) {
- rqst_stats_t *the_rqst_stats;
- THREAD static page_stats_t pagestat;
- page_stats_t *pagestats = &pagestat;
-
- /* grab stats.rs */
- the_rqst_stats = text_to_rqst_stats(page_stats_as_text);
-
- /* grab main structure */
- pagestats->totalpages = (unsigned long) text_to_double(strtok((char *)NULL, "\t"));
-
- pagestats->page_size = (unsigned int) text_to_double(strtok((char *)NULL, "\t"));
-
- pagestats->page_valid = (int) text_to_double(strtok((char *)NULL, "\t"));
-
- pagestats->rs = *the_rqst_stats;
- /* return bytes read */
-
- return(pagestats);
-} /* end text_to_page_stats */
-
-
-
-char *
-page_stats_to_text(const page_stats_t *pagestats) {
- THREAD static char page_stats_as_text[SIZEOF_PAGESTATSTEXT];
- char *tmpbuf;
- rqst_stats_t the_rqst_stats;
-
- *page_stats_as_text = 0;
-
- /* stats.rs */
- the_rqst_stats = pagestats->rs;
- tmpbuf = rqst_stats_to_text(&the_rqst_stats);
- strcat(page_stats_as_text, tmpbuf);
-
- /* main structure */
- tmpbuf = double_to_text(pagestats->totalpages);
- strcat(page_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text(pagestats->page_size);
- strcat(page_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text(pagestats->page_valid);
- strcat(page_stats_as_text, tmpbuf);
-
- strcat(page_stats_as_text, "\n");
-
- return(page_stats_as_text);
-} /* end page_stats_to_text */
-
-void
-rqtimer_init(rqst_timer_t *p) {
- memset(p, 0, sizeof(*p));
-}
-
-void
-rqstat_init(rqst_stats_t *p) {
- memset(p, 0, sizeof(*p));
-
- p->minbytes = DBL_MAX;
- p->minbody = DBL_MAX;
- p->minconnecttime.tv_sec = LONG_MAX;
- p->minconnecttime.tv_usec = LONG_MAX;
- p->minresponsetime.tv_sec = LONG_MAX;
- p->minresponsetime.tv_usec = LONG_MAX;
-}
-
-void
-stats_init(stats_t *p) {
-
- memset(p, 0, sizeof(*p));
-
- p->rs.minbytes = DBL_MAX;
- p->rs.minbody = DBL_MAX;
- p->rs.minconnecttime.tv_sec = LONG_MAX;
- p->rs.minconnecttime.tv_usec = LONG_MAX;
- p->rs.minresponsetime.tv_sec = LONG_MAX;
- p->rs.minresponsetime.tv_usec = LONG_MAX;
-}
-
-void
-page_stats_init(page_stats_t *p) {
-
- memset(p, 0, sizeof(*p));
-
- /* commented out so that unread pages result in
- page_stats_as_text buffer overflow
- p->rs.minbytes = DBL_MAX;
- p->rs.minbody = DBL_MAX;
- p->rs.minconnecttime.tv_sec = LONG_MAX;
- p->rs.minconnecttime.tv_usec = LONG_MAX;
- p->rs.minresponsetime.tv_sec = LONG_MAX;
- p->rs.minresponsetime.tv_usec = LONG_MAX;
-
- */
-}
-
-void
-rqstat_times(rqst_stats_t *rs, rqst_timer_t *rt)
-{
- double t;
-
- compdifftime(&(rt->exittime), &(rt->entertime),
- &(rs->totalresponsetime));
- t = timevaldouble(&(rs->totalresponsetime));
- rs->totalresponsetimesq = t * t;
-
- rs->minresponsetime = rs->totalresponsetime;
- rs->maxresponsetime = rs->totalresponsetime;
-
- compdifftime(&(rt->afterconnect), &(rt->beforeconnect),
- &(rs->totalconnecttime));
-
- t = timevaldouble(&(rs->totalconnecttime));
- rs->totalconnecttimesq = t * t;
-
- rs->minconnecttime = rs->totalconnecttime;
- rs->maxconnecttime = rs->totalconnecttime;
-
- rs->totalbody = rt->bodybytes;
- rs->totalbodysq = ((double)(rt->bodybytes)) * ((double)(rt->bodybytes));
- rs->minbody = rt->bodybytes;
- rs->maxbody = rt->bodybytes;
-
- rs->totalbytes = rt->totalbytes;
- rs->totalbytessq = ((double)(rt->totalbytes)) * ((double)(rt->totalbytes));
- rs->minbytes = rt->totalbytes;
- rs->maxbytes = rt->totalbytes;
-
- rs->totalconnects = 1;
- rs->totalerrs = 0;
- rs->totalerrortime.tv_sec = 0;
- rs->totalerrortime.tv_usec = 0;
-}
-
-void
-rqstat_sum(rqst_stats_t *sum, rqst_stats_t *incr)
-{
- addtime( &(sum->totalresponsetime), &(incr->totalresponsetime));
- mintime( &(sum->minresponsetime), &(incr->minresponsetime));
- maxtime( &(sum->maxresponsetime), &(incr->maxresponsetime));
- sum->totalresponsetimesq += incr->totalresponsetimesq;
-
- addtime( &(sum->totalconnecttime), &(incr->totalconnecttime));
- mintime( &(sum->minconnecttime), &(incr->minconnecttime));
- maxtime( &(sum->maxconnecttime), &(incr->maxconnecttime));
- sum->totalconnecttimesq += incr->totalconnecttimesq;
-
- sum->totalconnects += incr->totalconnects;
- sum->totalerrs += incr->totalerrs;
- addtime( &(sum->totalerrortime), &(incr->totalerrortime));
-
- sum->totalbytes += incr->totalbytes;
-
- sum->totalbytessq += incr->totalbytessq;
- sum->minbytes = min(sum->minbytes, incr->minbytes);
- sum->maxbytes = max(sum->maxbytes, incr->maxbytes);
-
- sum->totalbody += incr->totalbody;
-
- sum->totalbodysq += incr->totalbodysq;
- sum->minbody = min(sum->minbody, incr->minbody);
- sum->maxbody = max(sum->maxbody, incr->maxbody);
-
-}
-
-
-void
-rqstat_print(rqst_stats_t *stats)
-{
- rqstat_fprint(stdout, stats);
-}
-
-
-void
-rqstat_fprint(FILE *f, rqst_stats_t *stats)
-{
- struct timeval meantime, /*vartime,*/ stdtime;
-
- fprintf(f, "%d connection(s) to server, %d errors\n",
- stats->totalconnects, stats->totalerrs);
-
- if (stats->totalconnects == 0) {
- fprintf(f,"NO CONNECTIONS, THEREFORE NO STATISTICS\n"
- "IS YOUR WEBSERVER RUNNING?\n"
- "DO THE PAGES EXIST ON THE SERVER?\n");
- return;
- }
-
- /* title */
- fprintf(f, "\n\t\t\t Average Std Dev Minimum Maximum\n\n");
-
- /* first line (connect time) */
- avgtime(&(stats->totalconnecttime),
- stats->totalconnects, &meantime);
-
- /* variancetime(&(stats->totalconnecttime),
- stats->totalconnecttimesq,
- stats->totalconnects, &vartime); */
-
- stddevtime(&(stats->totalconnecttime),
- stats->totalconnecttimesq,
- stats->totalconnects, &stdtime);
-
- fprintf(f, "Connect time (sec) \t%3d.%6.6d %3d.%6.6d %3d.%6.6d %3d.%6.6d\n",
- meantime.tv_sec,
- meantime.tv_usec,
- stdtime.tv_sec,
- stdtime.tv_usec,
- stats->minconnecttime.tv_sec,
- stats->minconnecttime.tv_usec,
- stats->maxconnecttime.tv_sec,
- stats->maxconnecttime.tv_usec);
-
- /* second line (response time) */
- avgtime(&(stats->totalresponsetime),
- stats->totalconnects, &meantime);
-
- /* variancetime(&(stats->totalresponsetime),
- stats->totalresponsetimesq,
- stats->totalconnects, &vartime); */
-
- stddevtime(&(stats->totalresponsetime),
- stats->totalresponsetimesq,
- stats->totalconnects, &stdtime);
-
- fprintf(f, "Response time (sec) \t%3d.%6.6d %3d.%6.6d %3d.%6.6d %3d.%6.6d\n",
- meantime.tv_sec,
- meantime.tv_usec,
- stdtime.tv_sec,
- stdtime.tv_usec,
- stats->minresponsetime.tv_sec,
- stats->minresponsetime.tv_usec,
- stats->maxresponsetime.tv_sec,
- stats->maxresponsetime.tv_usec);
-
- /* 3rd-5th lines (response size, body size, # bytes moved */
- fprintf(f, "Response size (bytes) \t%10.0lf %10.0lf %10.0lf %10.0lf\n",
- mean(stats->totalbytes, stats->totalconnects),
- stddev(stats->totalbytes, stats->totalbytessq,
- stats->totalconnects),
- stats->minbytes,
- stats->maxbytes);
-
- fprintf(f, "Body size (bytes) \t%10.0lf %10.0lf %10.0lf %10.0lf\n\n",
- mean(stats->totalbody, stats->totalconnects),
- stddev(stats->totalbody, stats->totalbodysq,
- stats->totalconnects),
- stats->minbody,
- stats->maxbody);
-
- fprintf(f, "%.0lf body bytes moved + %.0lf header bytes moved = %.0lf total\n",
- stats->totalbody,
- stats->totalbytes - stats->totalbody,
- stats->totalbytes);
-
-}
diff --git a/apps/JAWS/clients/WebSTONE/src/bench.h b/apps/JAWS/clients/WebSTONE/src/bench.h
deleted file mode 100644
index cc196ef09ac..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/bench.h
+++ /dev/null
@@ -1,273 +0,0 @@
-/**************************************************************************
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-#ifndef __BENCH_H__
-#define __BENCH_H__
-#include <stdio.h>
-#include <stdarg.h>
-#ifndef WIN32
-#include <sys/time.h>
-#endif /* WIN32 */
-
-#define USECINSEC 1000000
-#define MSECINSEC 1000
-#define MAX_ACCEPT_SECS 180 /* maximum time master will wait for listen() */
-
-#define NCCARGS 4096
-#define MAXCLIENTS 1024
-#define MAXUSERNAME 25
-#define MAXPASSWD 20
-#define BUFSIZE 4096
-
-#define MAXTOTALPROCS MAXCLIENTS /* overall max # of procs */
-#define MAXPROCSPERNODE MAXCLIENTS /* max # of procs/node */
-
-
-#define CONTENT_LENGTH_STRING "CONTENT-LENGTH:"
-#define OKSTR "OK"
-#define OKSTRLEN ((int)strlen(OKSTR))
-#define GOSTR "GO"
-#define GOSTRLEN ((int)strlen(GOSTR))
-#define READYSTR "READY"
-#define READYSTRLEN ((int)strlen(READYSTR))
-#define ABORTSTR "ABORT"
-#define ABORTSTRLEN ((int)strlen(ABORTSTR))
-
-
-#define MAXNUMOFFILES 1 /* max # of files per page */
-#define URL_SIZE 1024
-#define MAXNUMOFPAGES 100
-#define SIZEOF_TIMEVALTEXT 18
-#define SIZEOF_DOUBLETEXT 18
-#define SIZEOF_RQSTSTATSTEXT ((7 * SIZEOF_TIMEVALTEXT) + \
- (12 * SIZEOF_DOUBLETEXT) + 1)
-#define SIZEOF_STATSTEXTBASE (SIZEOF_RQSTSTATSTEXT + \
- (3 * SIZEOF_TIMEVALTEXT) + \
- (2 * SIZEOF_DOUBLETEXT) + 1)
-#define SIZEOF_STATSTEXT (SIZEOF_STATSTEXTBASE + MAXNUMOFPAGES * SIZEOF_DOUBLETEXT)
-#define SIZEOF_PAGESTATSTEXT (SIZEOF_RQSTSTATSTEXT + \
- (0 * SIZEOF_TIMEVALTEXT) + \
- (3 * SIZEOF_DOUBLETEXT) + 1)
-
-#define D_PRINTF debug && d_printf
-
-#ifdef USE_TIMEZONE
-typedef struct rqst_timer {
- struct timeval entertime;
- struct timezone entertimezone;
- struct timeval beforeconnect;
- struct timezone beforeconnectzone;
- struct timeval afterconnect;
- struct timezone afterconnectzone;
- struct timeval beforeheader;
- struct timezone beforeheaderzone;
- struct timeval afterheader;
- struct timezone afterheaderzone;
- struct timeval afterbody;
- struct timezone afterbodyzone;
- struct timeval exittime;
- struct timezone exittimezone;
- long unsigned int totalbytes;
- long unsigned int bodybytes;
- int valid;
- long unsigned int page_number;
-} rqst_timer_t;
-#else
-typedef struct rqst_timer {
- struct timeval entertime;
- struct timeval beforeconnect;
- struct timeval afterconnect;
- struct timeval beforeheader;
- struct timeval afterheader;
- struct timeval afterbody;
- struct timeval exittime;
- long unsigned int totalbytes;
- long unsigned int bodybytes;
- int valid;
- long unsigned int page_number;
-} rqst_timer_t;
-#endif /* USE_TIMEZONE */
-
-extern void rqtimer_init(rqst_timer_t *);
-
-#ifdef USE_TIMEZONE
-typedef struct rqst_stats {
- struct timeval totalresponsetime;
- struct timezone totalresponsetimezone;
- double totalresponsetimesq;
- struct timeval minresponsetime;
- struct timezone minresponsetimezone;
- struct timeval maxresponsetime;
- struct timezone maxresponsetimezone;
- struct timeval totalconnecttime;
- struct timezone totalconnecttimezone;
- double totalconnecttimesq;
- struct timeval minconnecttime;
- struct timezone minconnecttimezone;
- struct timeval maxconnecttime;
- struct timezone maxconnecttimezone;
- long unsigned int totalconnects;
- long unsigned int totalerrs;
- struct timeval totalerrortime;
- struct timezone totalerrortimezone;
- double totalbytes;
- double totalbytessq;
- double minbytes;
- double maxbytes;
- double totalbody;
- double totalbodysq;
- double minbody;
- double maxbody;
-} rqst_stats_t;
-#else
-typedef struct rqst_stats {
- struct timeval totalresponsetime;
- double totalresponsetimesq;
- struct timeval minresponsetime;
- struct timeval maxresponsetime;
- struct timeval totalconnecttime;
- double totalconnecttimesq;
- struct timeval minconnecttime;
- struct timeval maxconnecttime;
- long unsigned int totalconnects;
- long unsigned int totalerrs;
- struct timeval totalerrortime;
- double totalbytes;
- double totalbytessq;
- double minbytes;
- double maxbytes;
- double totalbody;
- double totalbodysq;
- double minbody;
- double maxbody;
-} rqst_stats_t;
-#endif /* USE_TIMEZONE */
-
-extern void rqstat_init(rqst_stats_t *);
-extern void rqstat_sum(rqst_stats_t *, rqst_stats_t *);
-extern void rqstat_print(rqst_stats_t *);
-extern void rqstat_fprint(FILE *, rqst_stats_t *);
-extern void rqstat_times(rqst_stats_t *, rqst_timer_t *);
-
-#ifdef USE_TIMEZONE
-typedef struct stats {
- /* char hostname[MAXHOSTNAMELEN]; */
- rqst_stats_t rs;
- struct timeval starttime;
- struct timezone starttimezone;
- struct timeval endtime;
- struct timezone endtimezone;
- struct timeval datatime;
- struct timezone datatimezone;
- long unsigned int totalpages;
- unsigned int total_num_of_files;
- unsigned int page_numbers[MAXNUMOFPAGES];
-} stats_t;
-#else
-typedef struct stats {
- /* char hostname[MAXHOSTNAMELEN]; */
- rqst_stats_t rs;
- struct timeval starttime;
- struct timeval endtime;
- struct timeval datatime;
- long unsigned int totalpages;
- unsigned int total_num_of_files;
- unsigned int page_numbers[MAXNUMOFPAGES];
-} stats_t;
-#endif /* USE_TIMEZONE */
-
-extern void stats_init(stats_t *);
-extern stats_t * text_to_stats(char *);
-extern char * stats_to_text(const stats_t *);
-
-typedef struct page_stats {
- rqst_stats_t rs;
- long unsigned int totalpages;
- unsigned int page_size;
- int page_valid;
-} page_stats_t;
-
-extern void page_stats_init(page_stats_t *);
-extern page_stats_t * text_to_page_stats(char *);
-extern char * page_stats_to_text(const page_stats_t *);
-
-/* THIS STRUCTURE DEFINES A PAGE. */
-typedef struct page_list {
- int load_num;
- int num_of_files;
- char *(filename[MAXNUMOFFILES]);
- char *(servername[MAXNUMOFFILES]);
- int port_number[MAXNUMOFFILES];
-}page_list_t;
-
-
-
-/* shared variables */
-extern THREAD FILE *debugfile;
-extern int debug;
-
-extern int savefile;
-extern int timeexpired;
-extern long int number_of_pages;
-
-/* routines in bench.c */
-
-extern void *mymalloc(size_t size);
-extern int recvdata(SOCKET sock, char *ptr, int nbytes);
-extern int senddata(SOCKET sock, char *ptr, int nbytes);
-extern void rqstat_times(rqst_stats_t *rs, rqst_timer_t *rt);
-/* note several others listed above */
-
-/* routines in errexit.c */
-
-void errexit(const char *, ...);
-extern int returnerr(const char *, ...);
-extern int d_printf(const char *, ...);
-extern char *neterrstr(void);
-
-/* routines in get.c */
-
-extern int get(char *loc, NETPORT port, char *url, rqst_timer_t *timer);
-
-/* routines in parse_file_list.c */
-
-extern int count_file_list(const char *url_list_file);
-extern void parse_file_list (const char *url_list_file, page_list_t *page_list,
- long int *num_of_pages, long int *num_of_files);
-extern long int load_percent(page_list_t *page_list, long int number_of_pages);
-
-/* routines in statistics.c (formerly statistics.h) */
-
-extern double mean(const double, const int);
-extern double variance(const double, const double, const int);
-extern double stddev(const double, const double, const int);
-
-/* routines in timefunc.c (formerly timefunc.h) */
-
-extern double timevaldouble(struct timeval *);
-extern void doubletimeval(const double, struct timeval *);
-
-extern void addtime(struct timeval *, struct timeval *);
-extern void compdifftime(struct timeval *, struct timeval *, struct timeval *);
-extern void mintime(struct timeval *, struct timeval *);
-extern void maxtime(struct timeval *, struct timeval *);
-extern void avgtime(struct timeval *, int, struct timeval *);
-extern void variancetime(struct timeval *, double, int, struct timeval *);
-extern void stddevtime(struct timeval *, double, int, struct timeval *);
-
-extern void sqtime(struct timeval *, struct timeval *);
-
-extern double thruputpersec(const double, struct timeval *);
-
-/* routines in webclient.c */
-
-extern SOCKET connectsock(char *host, NETPORT portnum, char *protocol);
-
-#endif /* !__BENCH_H__ */
diff --git a/apps/JAWS/clients/WebSTONE/src/cgi-send b/apps/JAWS/clients/WebSTONE/src/cgi-send
deleted file mode 100755
index bc9be6561a8..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/cgi-send
+++ /dev/null
Binary files differ
diff --git a/apps/JAWS/clients/WebSTONE/src/cgi-send.c b/apps/JAWS/clients/WebSTONE/src/cgi-send.c
deleted file mode 100644
index 5e1641694af..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/cgi-send.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Send 10K file; send random bits.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#define FILE_SIZE 10240
-#define MALLOC_FAILURE "Out of memory"
-
-int
-main()
-{
- int filesize;
- char *str_filesize;
- char *buffer;
- int index;
-
- printf("Content-type: text/plain\r\n\r\n");
-
- if ( !(str_filesize = getenv("QUERY_STRING")) )
- filesize = FILE_SIZE;
- else {
- if ( !strncmp(str_filesize, "size=", 5) )
- filesize = atoi(&(str_filesize[5]));
- else
- filesize = FILE_SIZE;
- }
-
- if ( !(buffer = (char *)malloc(filesize)) ) {
- fwrite(MALLOC_FAILURE, strlen(MALLOC_FAILURE), 1, stdout);
- return -1;
- }
-
- for (index=0; index< filesize; index++)
- /* generate random characters from A-Z */
- buffer[index] = rand() %26 + 63;
-
- fwrite(buffer, filesize, 1, stdout);
-
- free(buffer);
-
- return 0;
-}
diff --git a/apps/JAWS/clients/WebSTONE/src/client/webclient.mak b/apps/JAWS/clients/WebSTONE/src/client/webclient.mak
deleted file mode 100755
index f7c492da2a8..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/client/webclient.mak
+++ /dev/null
@@ -1,479 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-!IF "$(CFG)" == ""
-CFG=webclient - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to webclient - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "webclient - Win32 Release" && "$(CFG)" !=\
- "webclient - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "webclient.mak" CFG="webclient - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "webclient - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "webclient - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "webclient - Win32 Debug"
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "webclient - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "WinRel"
-# PROP BASE Intermediate_Dir "WinRel"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "WinRel"
-# PROP Intermediate_Dir "WinRel"
-OUTDIR=.\WinRel
-INTDIR=.\WinRel
-
-ALL : "$(OUTDIR)\webclient.exe" "$(OUTDIR)\webclient.bsc"
-
-CLEAN :
- -@erase "$(INTDIR)\bench.obj"
- -@erase "$(INTDIR)\bench.sbr"
- -@erase "$(INTDIR)\errexit.obj"
- -@erase "$(INTDIR)\errexit.sbr"
- -@erase "$(INTDIR)\get.obj"
- -@erase "$(INTDIR)\get.sbr"
- -@erase "$(INTDIR)\getopt.obj"
- -@erase "$(INTDIR)\getopt.sbr"
- -@erase "$(INTDIR)\gettimeofday.obj"
- -@erase "$(INTDIR)\gettimeofday.sbr"
- -@erase "$(INTDIR)\parse_file_list.obj"
- -@erase "$(INTDIR)\parse_file_list.sbr"
- -@erase "$(INTDIR)\statistics.obj"
- -@erase "$(INTDIR)\statistics.sbr"
- -@erase "$(INTDIR)\sysdep.obj"
- -@erase "$(INTDIR)\sysdep.sbr"
- -@erase "$(INTDIR)\timefunc.obj"
- -@erase "$(INTDIR)\timefunc.sbr"
- -@erase "$(INTDIR)\webclient.obj"
- -@erase "$(INTDIR)\webclient.sbr"
- -@erase "$(OUTDIR)\webclient.bsc"
- -@erase "$(OUTDIR)\webclient.exe"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /FR /YX /c
-# ADD CPP /nologo /MTd /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /FR /YX /c
-CPP_PROJ=/nologo /MTd /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_CONSOLE"\
- /FR"$(INTDIR)/" /Fp"$(INTDIR)/webclient.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\WinRel/
-CPP_SBRS=.\WinRel/
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/webclient.bsc"
-BSC32_SBRS= \
- "$(INTDIR)\bench.sbr" \
- "$(INTDIR)\errexit.sbr" \
- "$(INTDIR)\get.sbr" \
- "$(INTDIR)\getopt.sbr" \
- "$(INTDIR)\gettimeofday.sbr" \
- "$(INTDIR)\parse_file_list.sbr" \
- "$(INTDIR)\statistics.sbr" \
- "$(INTDIR)\sysdep.sbr" \
- "$(INTDIR)\timefunc.sbr" \
- "$(INTDIR)\webclient.sbr"
-
-"$(OUTDIR)\webclient.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
- $(BSC32) @<<
- $(BSC32_FLAGS) $(BSC32_SBRS)
-<<
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# SUBTRACT LINK32 /profile
-LINK32_FLAGS=wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no\
- /pdb:"$(OUTDIR)/webclient.pdb" /machine:I386 /out:"$(OUTDIR)/webclient.exe"
-LINK32_OBJS= \
- "$(INTDIR)\bench.obj" \
- "$(INTDIR)\errexit.obj" \
- "$(INTDIR)\get.obj" \
- "$(INTDIR)\getopt.obj" \
- "$(INTDIR)\gettimeofday.obj" \
- "$(INTDIR)\parse_file_list.obj" \
- "$(INTDIR)\statistics.obj" \
- "$(INTDIR)\sysdep.obj" \
- "$(INTDIR)\timefunc.obj" \
- "$(INTDIR)\webclient.obj"
-
-"$(OUTDIR)\webclient.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "webclient - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "WinDebug"
-# PROP BASE Intermediate_Dir "WinDebug"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "WinDebug"
-# PROP Intermediate_Dir "WinDebug"
-OUTDIR=.\WinDebug
-INTDIR=.\WinDebug
-
-ALL : "$(OUTDIR)\webclient.exe" "$(OUTDIR)\webclient.bsc"
-
-CLEAN :
- -@erase "$(INTDIR)\bench.obj"
- -@erase "$(INTDIR)\bench.sbr"
- -@erase "$(INTDIR)\errexit.obj"
- -@erase "$(INTDIR)\errexit.sbr"
- -@erase "$(INTDIR)\get.obj"
- -@erase "$(INTDIR)\get.sbr"
- -@erase "$(INTDIR)\getopt.obj"
- -@erase "$(INTDIR)\getopt.sbr"
- -@erase "$(INTDIR)\gettimeofday.obj"
- -@erase "$(INTDIR)\gettimeofday.sbr"
- -@erase "$(INTDIR)\parse_file_list.obj"
- -@erase "$(INTDIR)\parse_file_list.sbr"
- -@erase "$(INTDIR)\statistics.obj"
- -@erase "$(INTDIR)\statistics.sbr"
- -@erase "$(INTDIR)\sysdep.obj"
- -@erase "$(INTDIR)\sysdep.sbr"
- -@erase "$(INTDIR)\timefunc.obj"
- -@erase "$(INTDIR)\timefunc.sbr"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(INTDIR)\webclient.obj"
- -@erase "$(INTDIR)\webclient.sbr"
- -@erase "$(OUTDIR)\webclient.bsc"
- -@erase "$(OUTDIR)\webclient.exe"
- -@erase "$(OUTDIR)\webclient.ilk"
- -@erase "$(OUTDIR)\webclient.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-# ADD BASE CPP /nologo /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /FR /YX /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /FR /YX /c
-CPP_PROJ=/nologo /MTd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_CONSOLE"\
- /FR"$(INTDIR)/" /Fp"$(INTDIR)/webclient.pch" /YX /Fo"$(INTDIR)/"\
- /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\WinDebug/
-CPP_SBRS=.\WinDebug/
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/webclient.bsc"
-BSC32_SBRS= \
- "$(INTDIR)\bench.sbr" \
- "$(INTDIR)\errexit.sbr" \
- "$(INTDIR)\get.sbr" \
- "$(INTDIR)\getopt.sbr" \
- "$(INTDIR)\gettimeofday.sbr" \
- "$(INTDIR)\parse_file_list.sbr" \
- "$(INTDIR)\statistics.sbr" \
- "$(INTDIR)\sysdep.sbr" \
- "$(INTDIR)\timefunc.sbr" \
- "$(INTDIR)\webclient.sbr"
-
-"$(OUTDIR)\webclient.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
- $(BSC32) @<<
- $(BSC32_FLAGS) $(BSC32_SBRS)
-<<
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# SUBTRACT LINK32 /profile
-LINK32_FLAGS=wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes\
- /pdb:"$(OUTDIR)/webclient.pdb" /debug /machine:I386\
- /out:"$(OUTDIR)/webclient.exe"
-LINK32_OBJS= \
- "$(INTDIR)\bench.obj" \
- "$(INTDIR)\errexit.obj" \
- "$(INTDIR)\get.obj" \
- "$(INTDIR)\getopt.obj" \
- "$(INTDIR)\gettimeofday.obj" \
- "$(INTDIR)\parse_file_list.obj" \
- "$(INTDIR)\statistics.obj" \
- "$(INTDIR)\sysdep.obj" \
- "$(INTDIR)\timefunc.obj" \
- "$(INTDIR)\webclient.obj"
-
-"$(OUTDIR)\webclient.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-################################################################################
-# Begin Target
-
-# Name "webclient - Win32 Release"
-# Name "webclient - Win32 Debug"
-
-!IF "$(CFG)" == "webclient - Win32 Release"
-
-!ELSEIF "$(CFG)" == "webclient - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Source File
-
-SOURCE=..\webclient.c
-DEP_CPP_WEBCL=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\webclient.obj" : $(SOURCE) $(DEP_CPP_WEBCL) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\webclient.sbr" : $(SOURCE) $(DEP_CPP_WEBCL) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\timefunc.c
-DEP_CPP_TIMEF=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\timefunc.obj" : $(SOURCE) $(DEP_CPP_TIMEF) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\timefunc.sbr" : $(SOURCE) $(DEP_CPP_TIMEF) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\sysdep.c
-DEP_CPP_SYSDE=\
- "..\config.h"\
- "..\sysdep.h"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\sysdep.obj" : $(SOURCE) $(DEP_CPP_SYSDE) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\sysdep.sbr" : $(SOURCE) $(DEP_CPP_SYSDE) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\statistics.c
-DEP_CPP_STATI=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\statistics.obj" : $(SOURCE) $(DEP_CPP_STATI) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\statistics.sbr" : $(SOURCE) $(DEP_CPP_STATI) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\parse_file_list.c
-DEP_CPP_PARSE=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\parse_file_list.obj" : $(SOURCE) $(DEP_CPP_PARSE) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\parse_file_list.sbr" : $(SOURCE) $(DEP_CPP_PARSE) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\gettimeofday.c
-DEP_CPP_GETTI=\
- {$(INCLUDE)}"\sys\TIMEB.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\gettimeofday.obj" : $(SOURCE) $(DEP_CPP_GETTI) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\gettimeofday.sbr" : $(SOURCE) $(DEP_CPP_GETTI) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\getopt.c
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\getopt.obj" : $(SOURCE) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\getopt.sbr" : $(SOURCE) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\get.c
-DEP_CPP_GET_C=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\get.obj" : $(SOURCE) $(DEP_CPP_GET_C) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\get.sbr" : $(SOURCE) $(DEP_CPP_GET_C) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\errexit.c
-DEP_CPP_ERREX=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\errexit.obj" : $(SOURCE) $(DEP_CPP_ERREX) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\errexit.sbr" : $(SOURCE) $(DEP_CPP_ERREX) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\bench.c
-DEP_CPP_BENCH=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\bench.obj" : $(SOURCE) $(DEP_CPP_BENCH) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\bench.sbr" : $(SOURCE) $(DEP_CPP_BENCH) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/apps/JAWS/clients/WebSTONE/src/config.cache b/apps/JAWS/clients/WebSTONE/src/config.cache
deleted file mode 100644
index c8705dca2f4..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/config.cache
+++ /dev/null
@@ -1,47 +0,0 @@
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-ac_cv_c_const=${ac_cv_c_const='yes'}
-ac_cv_c_cross=${ac_cv_c_cross='no'}
-ac_cv_func_gethostname=${ac_cv_func_gethostname='yes'}
-ac_cv_func_gettimeofday=${ac_cv_func_gettimeofday='yes'}
-ac_cv_func_memcmp=${ac_cv_func_memcmp='yes'}
-ac_cv_func_select=${ac_cv_func_select='yes'}
-ac_cv_func_socket=${ac_cv_func_socket='yes'}
-ac_cv_func_strerror=${ac_cv_func_strerror='yes'}
-ac_cv_func_vprintf=${ac_cv_func_vprintf='yes'}
-ac_cv_func_wait3=${ac_cv_func_wait3='yes'}
-ac_cv_header_fcntl_h=${ac_cv_header_fcntl_h='yes'}
-ac_cv_header_limits_h=${ac_cv_header_limits_h='yes'}
-ac_cv_header_sgtty_h=${ac_cv_header_sgtty_h='yes'}
-ac_cv_header_stdc=${ac_cv_header_stdc='yes'}
-ac_cv_header_sys_time_h=${ac_cv_header_sys_time_h='yes'}
-ac_cv_header_sys_wait_h=${ac_cv_header_sys_wait_h='yes'}
-ac_cv_header_time=${ac_cv_header_time='yes'}
-ac_cv_header_unistd_h=${ac_cv_header_unistd_h='yes'}
-ac_cv_lib_compat=${ac_cv_lib_compat='no'}
-ac_cv_lib_m=${ac_cv_lib_m='yes'}
-ac_cv_lib_socket=${ac_cv_lib_socket='yes'}
-ac_cv_lib_ucb=${ac_cv_lib_ucb='no'}
-ac_cv_path_PERL=${ac_cv_path_PERL='/usr/sbin/perl'}
-ac_cv_prog_AWK=${ac_cv_prog_AWK='nawk'}
-ac_cv_prog_CC=${ac_cv_prog_CC='cc'}
-ac_cv_prog_CPP=${ac_cv_prog_CPP='cc -E'}
-ac_cv_prog_gcc=${ac_cv_prog_gcc='no'}
-ac_cv_prog_make_make_set=${ac_cv_prog_make_make_set='yes'}
-ac_cv_struct_tm=${ac_cv_struct_tm='time.h'}
-ac_cv_struct_tm_zone=${ac_cv_struct_tm_zone='no'}
-ac_cv_type_signal=${ac_cv_type_signal='void'}
-ac_cv_type_size_t=${ac_cv_type_size_t='yes'}
-ac_cv_var_tzname=${ac_cv_var_tzname='yes'}
diff --git a/apps/JAWS/clients/WebSTONE/src/config.guess b/apps/JAWS/clients/WebSTONE/src/config.guess
deleted file mode 100755
index 2ff0eba28ac..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/config.guess
+++ /dev/null
@@ -1,565 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
-#
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Written by Per Bothner <bothner@cygnus.com>.
-# The master version of this file is at the FSF in /home/gd/gnu/lib.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub. If it succeeds, it prints the system name on stdout, and
-# exits with 0. Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit system type (host/target name).
-#
-# Only a few systems have been added to this list; please add others
-# (but try to keep the structure clean).
-#
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 8/24/94.)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
- PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- alpha:OSF1:V*:*)
- # After 1.2, OSF1 uses "V1.3" for uname -r.
- echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^V//'`
- exit 0 ;;
- alpha:OSF1:*:*)
- # 1.2 uses "1.2" for uname -r.
- echo alpha-dec-osf${UNAME_RELEASE}
- exit 0 ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit 0 ;;
- amiga:NetBSD:*:*)
- echo m68k-cbm-netbsd${UNAME_RELEASE}
- exit 0 ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit 0;;
- Pyramid*:OSx*:*:*)
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit 0 ;;
- sun4*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- i86pc:SunOS:5.*:*)
- echo i386-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit 0 ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit 0 ;;
- atari*:NetBSD:*:*)
- echo m68k-atari-netbsd${UNAME_RELEASE}
- exit 0 ;;
- sun3*:NetBSD:*:*)
- echo m68k-sun-netbsd${UNAME_RELEASE}
- exit 0 ;;
- mac68k:NetBSD:*:*)
- echo m68k-apple-netbsd${UNAME_RELEASE}
- exit 0 ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- mips:*:4*:UMIPS)
- echo mips-mips-riscos4sysv
- exit 0 ;;
- mips:*:5*:RISCos)
- echo mips-mips-riscos${UNAME_RELEASE}
- exit 0 ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit 0 ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit 0 ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit 0 ;;
- AViiON:dgux:*:*)
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
- -o ${TARGET_BINARY_INTERFACE}x = x ] ; then
- echo m88k-dg-dgux${UNAME_RELEASE}
- else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
- fi
- exit 0 ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit 0 ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit 0 ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit 0 ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit 0 ;;
- *:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit 0 ;;
- ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
- i[34]86:AIX:*:*)
- echo i386-ibm-aix
- exit 0 ;;
- *:AIX:2:3)
- if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- sed 's/^ //' << EOF >dummy.c
- #include <sys/systemcfg.h>
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
- rm -f dummy.c dummy
- echo rs6000-ibm-aix3.2.5
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit 0 ;;
- *:AIX:*:4)
- if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then
- IBM_ARCH=rs6000
- else
- IBM_ARCH=powerpc
- fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=4.${UNAME_RELEASE}
- fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit 0 ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit 0 ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit 0 ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit 0 ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit 0 ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit 0 ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit 0 ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit 0 ;;
- 9000/[3478]??:HP-UX:*:*)
- case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
- 9000/7?? | 9000/8?[79] ) HP_ARCH=hppa1.1 ;;
- 9000/8?? ) HP_ARCH=hppa1.0 ;;
- esac
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit 0 ;;
- 3050*:HI-UX:*:*)
- sed 's/^ //' << EOF >dummy.c
- #include <unistd.h>
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
- rm -f dummy.c dummy
- echo unknown-hitachi-hiuxwe2
- exit 0 ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit 0 ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit 0 ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit 0 ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit 0 ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit 0 ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit 0 ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit 0 ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit 0 ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit 0 ;;
- CRAY*X-MP:*:*:*)
- echo xmp-cray-unicos
- exit 0 ;;
- CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE}
- exit 0 ;;
- CRAY*C90:*:*:*)
- echo c90-cray-unicos${UNAME_RELEASE}
- exit 0 ;;
- CRAY-2:*:*:*)
- echo cray2-cray-unicos
- exit 0 ;;
- hp3[0-9][05]:NetBSD:*:*)
- echo m68k-hp-netbsd${UNAME_RELEASE}
- exit 0 ;;
- i[34]86:BSD/386:*:* | *:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:FreeBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit 0 ;;
- *:NetBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- exit 0 ;;
- *:GNU:*:*)
- echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit 0 ;;
- *:Linux:*:*)
- # The BFD linker knows what the default object file format is, so
- # first see if it will tell us.
- ld_help_string=`ld --help 2>&1`
- if echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: elf_i[345]86"; then
- echo "${UNAME_MACHINE}-unknown-linux" ; exit 0
- elif echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: i[345]86linux"; then
- echo "${UNAME_MACHINE}-unknown-linuxaout" ; exit 0
- elif echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: i[345]86coff"; then
- echo "${UNAME_MACHINE}-unknown-linuxcoff" ; exit 0
- elif test "${UNAME_MACHINE}" = "alpha" ; then
- echo alpha-unknown-linux ; exit 0
- else
- # Either a pre-BFD a.out linker (linuxoldld) or one that does not give us
- # useful --help. Gcc wants to distinguish between linuxoldld and linuxaout.
- test ! -d /usr/lib/ldscripts/. \
- && echo "${UNAME_MACHINE}-unknown-linuxoldld" && exit 0
- # Determine whether the default compiler is a.out or elf
- cat >dummy.c <<EOF
-main(argc, argv)
-int argc;
-char *argv[];
-{
-#ifdef __ELF__
- printf ("%s-unknown-linux\n", argv[1]);
-#else
- printf ("%s-unknown-linuxaout\n", argv[1]);
-#endif
- return 0;
-}
-EOF
- ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
- rm -f dummy.c dummy
- fi ;;
-# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions
-# are messed up and put the nodename in both sysname and nodename.
- i[34]86:DYNIX/ptx:4*:*)
- echo i386-sequent-sysv4
- exit 0 ;;
- i[34]86:*:4.*:* | i[34]86:SYSTEM_V:4.*:*)
- if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
- else
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}
- fi
- exit 0 ;;
- i[34]86:*:3.2:*)
- if test -f /usr/options/cb.name; then
- UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo ${UNAME_MACHINE}-unknown-isc$UNAME_REL
- elif /bin/uname -X 2>/dev/null >/dev/null ; then
- UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
- (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
- echo ${UNAME_MACHINE}-unknown-sco$UNAME_REL
- else
- echo ${UNAME_MACHINE}-unknown-sysv32
- fi
- exit 0 ;;
- Intel:Mach:3*:*)
- echo i386-unknown-mach3
- exit 0 ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit 0 ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit 0 ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-sysv
- exit 0 ;;
- M680[234]0:*:R3V[567]*:*)
- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
- 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0)
- uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4.3 && exit 0 ;;
- 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4 && exit 0 ;;
- m680[234]0:LynxOS:2.[23]*:*)
- echo m68k-lynx-lynxos${UNAME_RELEASE}
- exit 0 ;;
- mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit 0 ;;
- i[34]86:LynxOS:2.[23]*:*)
- echo i386-lynx-lynxos${UNAME_RELEASE}
- exit 0 ;;
- TSUNAMI:LynxOS:2.[23]*:*)
- echo sparc-lynx-lynxos${UNAME_RELEASE}
- exit 0 ;;
- rs6000:LynxOS:2.[23]*:*)
- echo rs6000-lynx-lynxos${UNAME_RELEASE}
- exit 0 ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
- else
- echo ns32k-sni-sysv
- fi
- exit 0 ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-cat >dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- printf ("%s-next-nextstep%s\n", __ARCHITECTURE__, version==2 ? "2" : "3");
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-unknown-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-#if !defined (ultrix)
- printf ("vax-dec-bsd\n"); exit (0);
-#else
- printf ("vax-dec-ultrix\n"); exit (0);
-#endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0
-rm -f dummy.c dummy
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit 0 ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- c34*)
- echo c34-convex-bsd
- exit 0 ;;
- c38*)
- echo c38-convex-bsd
- exit 0 ;;
- c4*)
- echo c4-convex-bsd
- exit 0 ;;
- esac
-fi
-
-#echo '(Unable to guess system type)' 1>&2
-
-exit 1
diff --git a/apps/JAWS/clients/WebSTONE/src/config.h b/apps/JAWS/clients/WebSTONE/src/config.h
deleted file mode 100644
index ae96e98e0a3..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/config.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* config.h. Generated automatically by configure. */
-/* config.h.in. Generated automatically from configure.in by autoheader. */
-
-/* Define to empty if the keyword does not work. */
-/* #undef const */
-
-/* Define if you don't have vprintf but do have _doprnt. */
-/* #undef HAVE_DOPRNT */
-
-/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
-#define HAVE_SYS_WAIT_H 1
-
-/* Define if your struct tm has tm_zone. */
-/* #undef HAVE_TM_ZONE */
-
-/* Define if you don't have tm_zone but do have the external array
- tzname. */
-#define HAVE_TZNAME 1
-
-/* Define if you have the vprintf function. */
-#define HAVE_VPRINTF 1
-
-/* Define if you have the wait3 system call. */
-#define HAVE_WAIT3 1
-
-/* Define as the return type of signal handlers (int or void). */
-#define RETSIGTYPE void
-
-/* Define to `unsigned' if <sys/types.h> doesn't define. */
-/* #undef size_t */
-
-/* Define if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define if you can safely include both <sys/time.h> and <time.h>. */
-#define TIME_WITH_SYS_TIME 1
-
-/* Define if your <sys/time.h> declares struct tm. */
-/* #undef TM_IN_SYS_TIME */
-
-/* Define to the name of the distribution. */
-#define PRODUCT "webstone"
-
-/* Define to the version of the distribution. */
-#define VERSION "2.0b4"
-
-/* Should we use timezone in gettimeofday? */
-#define USE_TIMEZONE 1
-
-/* Define if you have the gethostname function. */
-#define HAVE_GETHOSTNAME 1
-
-/* Define if you have the gettimeofday function. */
-#define HAVE_GETTIMEOFDAY 1
-
-/* Define if you have the select function. */
-#define HAVE_SELECT 1
-
-/* Define if you have the socket function. */
-#define HAVE_SOCKET 1
-
-/* Define if you have the strerror function. */
-#define HAVE_STRERROR 1
-
-/* Define if you have the <fcntl.h> header file. */
-#define HAVE_FCNTL_H 1
-
-/* Define if you have the <limits.h> header file. */
-#define HAVE_LIMITS_H 1
-
-/* Define if you have the <sgtty.h> header file. */
-#define HAVE_SGTTY_H 1
-
-/* Define if you have the <sys/time.h> header file. */
-#define HAVE_SYS_TIME_H 1
-
-/* Define if you have the <unistd.h> header file. */
-#define HAVE_UNISTD_H 1
-
-/* Define if you have the compat library (-lcompat). */
-/* #undef HAVE_LIBCOMPAT */
-
-/* Define if you have the m library (-lm). */
-#define HAVE_LIBM 1
-
-/* Define if you have the socket library (-lsocket). */
-#define HAVE_LIBSOCKET 1
-
-/* Define if you have the ucb library (-lucb). */
-/* #undef HAVE_LIBUCB */
diff --git a/apps/JAWS/clients/WebSTONE/src/config.h.in b/apps/JAWS/clients/WebSTONE/src/config.h.in
deleted file mode 100644
index 91299ae624b..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/config.h.in
+++ /dev/null
@@ -1,89 +0,0 @@
-/* config.h.in. Generated automatically from configure.in by autoheader. */
-
-/* Define to empty if the keyword does not work. */
-#undef const
-
-/* Define if you don't have vprintf but do have _doprnt. */
-#undef HAVE_DOPRNT
-
-/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
-#undef HAVE_SYS_WAIT_H
-
-/* Define if your struct tm has tm_zone. */
-#undef HAVE_TM_ZONE
-
-/* Define if you don't have tm_zone but do have the external array
- tzname. */
-#undef HAVE_TZNAME
-
-/* Define if you have the vprintf function. */
-#undef HAVE_VPRINTF
-
-/* Define if you have the wait3 system call. */
-#undef HAVE_WAIT3
-
-/* Define as the return type of signal handlers (int or void). */
-#undef RETSIGTYPE
-
-/* Define to `unsigned' if <sys/types.h> doesn't define. */
-#undef size_t
-
-/* Define if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Define if you can safely include both <sys/time.h> and <time.h>. */
-#undef TIME_WITH_SYS_TIME
-
-/* Define if your <sys/time.h> declares struct tm. */
-#undef TM_IN_SYS_TIME
-
-/* Define to the name of the distribution. */
-#undef PRODUCT
-
-/* Define to the version of the distribution. */
-#undef VERSION
-
-/* Should we use timezone in gettimeofday? */
-#undef USE_TIMEZONE
-
-/* Define if you have the gethostname function. */
-#undef HAVE_GETHOSTNAME
-
-/* Define if you have the gettimeofday function. */
-#undef HAVE_GETTIMEOFDAY
-
-/* Define if you have the select function. */
-#undef HAVE_SELECT
-
-/* Define if you have the socket function. */
-#undef HAVE_SOCKET
-
-/* Define if you have the strerror function. */
-#undef HAVE_STRERROR
-
-/* Define if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Define if you have the <limits.h> header file. */
-#undef HAVE_LIMITS_H
-
-/* Define if you have the <sgtty.h> header file. */
-#undef HAVE_SGTTY_H
-
-/* Define if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define if you have the compat library (-lcompat). */
-#undef HAVE_LIBCOMPAT
-
-/* Define if you have the m library (-lm). */
-#undef HAVE_LIBM
-
-/* Define if you have the socket library (-lsocket). */
-#undef HAVE_LIBSOCKET
-
-/* Define if you have the ucb library (-lucb). */
-#undef HAVE_LIBUCB
diff --git a/apps/JAWS/clients/WebSTONE/src/config.log b/apps/JAWS/clients/WebSTONE/src/config.log
deleted file mode 100644
index 1b2fa65abd8..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/config.log
+++ /dev/null
@@ -1,4 +0,0 @@
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-cc -c -g conftest.c
diff --git a/apps/JAWS/clients/WebSTONE/src/config.status b/apps/JAWS/clients/WebSTONE/src/config.status
deleted file mode 100755
index 2f00f63aba7..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/config.status
+++ /dev/null
@@ -1,288 +0,0 @@
-#! /bin/sh
-# Generated automatically by configure.
-# Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host tango:
-#
-# configure
-#
-# Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: ./config.status [--recheck] [--version] [--help]"
-for ac_option
-do
- case "$ac_option" in
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- echo "running ${CONFIG_SHELL-/bin/sh} configure --no-create --no-recursion"
- exec ${CONFIG_SHELL-/bin/sh} configure --no-create --no-recursion ;;
- -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "./config.status generated by autoconf version 2.7"
- exit 0 ;;
- -help | --help | --hel | --he | --h)
- echo "$ac_cs_usage"; exit 0 ;;
- *) echo "$ac_cs_usage"; exit 1 ;;
- esac
-done
-
-ac_given_srcdir=.
-
-trap 'rm -fr Makefile config.h conftest*; exit 1' 1 2 15
-
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\&%]/\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF
-/^[ ]*VPATH[ ]*=[^:]*$/d
-
-s%@CFLAGS@%-g%g
-s%@CPPFLAGS@%%g
-s%@CXXFLAGS@%%g
-s%@DEFS@%-DHAVE_CONFIG_H%g
-s%@LDFLAGS@%%g
-s%@LIBS@%-lsocket -lm %g
-s%@exec_prefix@%${prefix}%g
-s%@prefix@%bin%g
-s%@program_transform_name@%s,x,x,%g
-s%@bindir@%${exec_prefix}/bin%g
-s%@sbindir@%${exec_prefix}/sbin%g
-s%@libexecdir@%${exec_prefix}/libexec%g
-s%@datadir@%${prefix}/share%g
-s%@sysconfdir@%${prefix}/etc%g
-s%@sharedstatedir@%${prefix}/com%g
-s%@localstatedir@%${prefix}/var%g
-s%@libdir@%${exec_prefix}/lib%g
-s%@includedir@%${prefix}/include%g
-s%@oldincludedir@%/usr/include%g
-s%@infodir@%${prefix}/info%g
-s%@mandir@%${prefix}/man%g
-s%@PRODUCT@%webstone%g
-s%@VERSION@%2.0b4%g
-s%@host@%sparc-sun-solaris2.5.1%g
-s%@host_alias@%sparc-sun-solaris2.5.1%g
-s%@host_cpu@%sparc%g
-s%@host_vendor@%sun%g
-s%@host_os@%solaris2.5.1%g
-s%@target@%sparc-sun-solaris2.5.1%g
-s%@target_alias@%sparc-sun-solaris2.5.1%g
-s%@target_cpu@%sparc%g
-s%@target_vendor@%sun%g
-s%@target_os@%solaris2.5.1%g
-s%@build@%sparc-sun-solaris2.5.1%g
-s%@build_alias@%sparc-sun-solaris2.5.1%g
-s%@build_cpu@%sparc%g
-s%@build_vendor@%sun%g
-s%@build_os@%solaris2.5.1%g
-s%@CC@%cc%g
-s%@SET_MAKE@%%g
-s%@AWK@%nawk%g
-s%@PERL@%/usr/sbin/perl%g
-s%@PERL_SCRIPTS@%bin/wscollect.pl%g
-s%@CPP@%cc -E%g
-s%@LIBOBJS@%%g
-
-CEOF
-
-CONFIG_FILES=${CONFIG_FILES-"Makefile"}
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- # Adjust relative srcdir, etc. for subdirectories.
-
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- ac_dir_suffix= ac_dots=
- fi
-
- case "$ac_given_srcdir" in
- .) srcdir=.
- if test -z "$ac_dots"; then top_srcdir=.
- else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
- /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
-
- echo creating "$ac_file"
- rm -f "$ac_file"
- configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
- case "$ac_file" in
- *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
- *) ac_comsub= ;;
- esac
- sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-" -f conftest.subs $ac_given_srcdir/$ac_file_in > $ac_file
-fi; done
-rm -f conftest.subs
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
-ac_dC='\3'
-ac_dD='%g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='\([ ]\)%\1#\2define\3'
-ac_uC=' '
-ac_uD='\4%g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_eB='$%\1#\2define\3'
-ac_eC=' '
-ac_eD='%g'
-
-CONFIG_HEADERS=${CONFIG_HEADERS-"config.h"}
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- echo creating $ac_file
-
- rm -f conftest.frag conftest.in conftest.out
- cp $ac_given_srcdir/$ac_file_in conftest.in
-
- cat > conftest.frag <<CEOF
-${ac_dA}PRODUCT${ac_dB}PRODUCT${ac_dC}"webstone"${ac_dD}
-${ac_uA}PRODUCT${ac_uB}PRODUCT${ac_uC}"webstone"${ac_uD}
-${ac_eA}PRODUCT${ac_eB}PRODUCT${ac_eC}"webstone"${ac_eD}
-${ac_dA}VERSION${ac_dB}VERSION${ac_dC}"2.0b4"${ac_dD}
-${ac_uA}VERSION${ac_uB}VERSION${ac_uC}"2.0b4"${ac_uD}
-${ac_eA}VERSION${ac_eB}VERSION${ac_eC}"2.0b4"${ac_eD}
-${ac_dA}HAVE_LIBM${ac_dB}HAVE_LIBM${ac_dC}1${ac_dD}
-${ac_uA}HAVE_LIBM${ac_uB}HAVE_LIBM${ac_uC}1${ac_uD}
-${ac_eA}HAVE_LIBM${ac_eB}HAVE_LIBM${ac_eC}1${ac_eD}
-${ac_dA}HAVE_LIBSOCKET${ac_dB}HAVE_LIBSOCKET${ac_dC}1${ac_dD}
-${ac_uA}HAVE_LIBSOCKET${ac_uB}HAVE_LIBSOCKET${ac_uC}1${ac_uD}
-${ac_eA}HAVE_LIBSOCKET${ac_eB}HAVE_LIBSOCKET${ac_eC}1${ac_eD}
-CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-
- cat > conftest.frag <<CEOF
-${ac_dA}STDC_HEADERS${ac_dB}STDC_HEADERS${ac_dC}1${ac_dD}
-${ac_uA}STDC_HEADERS${ac_uB}STDC_HEADERS${ac_uC}1${ac_uD}
-${ac_eA}STDC_HEADERS${ac_eB}STDC_HEADERS${ac_eC}1${ac_eD}
-${ac_dA}HAVE_SYS_WAIT_H${ac_dB}HAVE_SYS_WAIT_H${ac_dC}1${ac_dD}
-${ac_uA}HAVE_SYS_WAIT_H${ac_uB}HAVE_SYS_WAIT_H${ac_uC}1${ac_uD}
-${ac_eA}HAVE_SYS_WAIT_H${ac_eB}HAVE_SYS_WAIT_H${ac_eC}1${ac_eD}
-${ac_dA}HAVE_FCNTL_H${ac_dB}HAVE_FCNTL_H${ac_dC}1${ac_dD}
-${ac_uA}HAVE_FCNTL_H${ac_uB}HAVE_FCNTL_H${ac_uC}1${ac_uD}
-${ac_eA}HAVE_FCNTL_H${ac_eB}HAVE_FCNTL_H${ac_eC}1${ac_eD}
-${ac_dA}HAVE_LIMITS_H${ac_dB}HAVE_LIMITS_H${ac_dC}1${ac_dD}
-${ac_uA}HAVE_LIMITS_H${ac_uB}HAVE_LIMITS_H${ac_uC}1${ac_uD}
-${ac_eA}HAVE_LIMITS_H${ac_eB}HAVE_LIMITS_H${ac_eC}1${ac_eD}
-CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-
- cat > conftest.frag <<CEOF
-${ac_dA}HAVE_SGTTY_H${ac_dB}HAVE_SGTTY_H${ac_dC}1${ac_dD}
-${ac_uA}HAVE_SGTTY_H${ac_uB}HAVE_SGTTY_H${ac_uC}1${ac_uD}
-${ac_eA}HAVE_SGTTY_H${ac_eB}HAVE_SGTTY_H${ac_eC}1${ac_eD}
-${ac_dA}HAVE_SYS_TIME_H${ac_dB}HAVE_SYS_TIME_H${ac_dC}1${ac_dD}
-${ac_uA}HAVE_SYS_TIME_H${ac_uB}HAVE_SYS_TIME_H${ac_uC}1${ac_uD}
-${ac_eA}HAVE_SYS_TIME_H${ac_eB}HAVE_SYS_TIME_H${ac_eC}1${ac_eD}
-${ac_dA}HAVE_UNISTD_H${ac_dB}HAVE_UNISTD_H${ac_dC}1${ac_dD}
-${ac_uA}HAVE_UNISTD_H${ac_uB}HAVE_UNISTD_H${ac_uC}1${ac_uD}
-${ac_eA}HAVE_UNISTD_H${ac_eB}HAVE_UNISTD_H${ac_eC}1${ac_eD}
-${ac_dA}RETSIGTYPE${ac_dB}RETSIGTYPE${ac_dC}void${ac_dD}
-${ac_uA}RETSIGTYPE${ac_uB}RETSIGTYPE${ac_uC}void${ac_uD}
-${ac_eA}RETSIGTYPE${ac_eB}RETSIGTYPE${ac_eC}void${ac_eD}
-CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-
- cat > conftest.frag <<CEOF
-${ac_dA}TIME_WITH_SYS_TIME${ac_dB}TIME_WITH_SYS_TIME${ac_dC}1${ac_dD}
-${ac_uA}TIME_WITH_SYS_TIME${ac_uB}TIME_WITH_SYS_TIME${ac_uC}1${ac_uD}
-${ac_eA}TIME_WITH_SYS_TIME${ac_eB}TIME_WITH_SYS_TIME${ac_eC}1${ac_eD}
-${ac_dA}HAVE_TZNAME${ac_dB}HAVE_TZNAME${ac_dC}1${ac_dD}
-${ac_uA}HAVE_TZNAME${ac_uB}HAVE_TZNAME${ac_uC}1${ac_uD}
-${ac_eA}HAVE_TZNAME${ac_eB}HAVE_TZNAME${ac_eC}1${ac_eD}
-${ac_dA}USE_TIMEZONE${ac_dB}USE_TIMEZONE${ac_dC}1${ac_dD}
-${ac_uA}USE_TIMEZONE${ac_uB}USE_TIMEZONE${ac_uC}1${ac_uD}
-${ac_eA}USE_TIMEZONE${ac_eB}USE_TIMEZONE${ac_eC}1${ac_eD}
-${ac_dA}RETSIGTYPE${ac_dB}RETSIGTYPE${ac_dC}void${ac_dD}
-${ac_uA}RETSIGTYPE${ac_uB}RETSIGTYPE${ac_uC}void${ac_uD}
-${ac_eA}RETSIGTYPE${ac_eB}RETSIGTYPE${ac_eC}void${ac_eD}
-CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-
- cat > conftest.frag <<CEOF
-${ac_dA}HAVE_VPRINTF${ac_dB}HAVE_VPRINTF${ac_dC}1${ac_dD}
-${ac_uA}HAVE_VPRINTF${ac_uB}HAVE_VPRINTF${ac_uC}1${ac_uD}
-${ac_eA}HAVE_VPRINTF${ac_eB}HAVE_VPRINTF${ac_eC}1${ac_eD}
-${ac_dA}HAVE_WAIT3${ac_dB}HAVE_WAIT3${ac_dC}1${ac_dD}
-${ac_uA}HAVE_WAIT3${ac_uB}HAVE_WAIT3${ac_uC}1${ac_uD}
-${ac_eA}HAVE_WAIT3${ac_eB}HAVE_WAIT3${ac_eC}1${ac_eD}
-${ac_dA}HAVE_GETHOSTNAME${ac_dB}HAVE_GETHOSTNAME${ac_dC}1${ac_dD}
-${ac_uA}HAVE_GETHOSTNAME${ac_uB}HAVE_GETHOSTNAME${ac_uC}1${ac_uD}
-${ac_eA}HAVE_GETHOSTNAME${ac_eB}HAVE_GETHOSTNAME${ac_eC}1${ac_eD}
-${ac_dA}HAVE_GETTIMEOFDAY${ac_dB}HAVE_GETTIMEOFDAY${ac_dC}1${ac_dD}
-${ac_uA}HAVE_GETTIMEOFDAY${ac_uB}HAVE_GETTIMEOFDAY${ac_uC}1${ac_uD}
-${ac_eA}HAVE_GETTIMEOFDAY${ac_eB}HAVE_GETTIMEOFDAY${ac_eC}1${ac_eD}
-CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-
- cat > conftest.frag <<CEOF
-${ac_dA}HAVE_SELECT${ac_dB}HAVE_SELECT${ac_dC}1${ac_dD}
-${ac_uA}HAVE_SELECT${ac_uB}HAVE_SELECT${ac_uC}1${ac_uD}
-${ac_eA}HAVE_SELECT${ac_eB}HAVE_SELECT${ac_eC}1${ac_eD}
-${ac_dA}HAVE_SOCKET${ac_dB}HAVE_SOCKET${ac_dC}1${ac_dD}
-${ac_uA}HAVE_SOCKET${ac_uB}HAVE_SOCKET${ac_uC}1${ac_uD}
-${ac_eA}HAVE_SOCKET${ac_eB}HAVE_SOCKET${ac_eC}1${ac_eD}
-${ac_dA}HAVE_STRERROR${ac_dB}HAVE_STRERROR${ac_dC}1${ac_dD}
-${ac_uA}HAVE_STRERROR${ac_uB}HAVE_STRERROR${ac_uC}1${ac_uD}
-${ac_eA}HAVE_STRERROR${ac_eB}HAVE_STRERROR${ac_eC}1${ac_eD}
-s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
-CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-
- rm -f conftest.frag conftest.h
- echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
- cat conftest.in >> conftest.h
- rm -f conftest.in
- if cmp -s $ac_file conftest.h 2>/dev/null; then
- echo "$ac_file is unchanged"
- rm -f conftest.h
- else
- rm -f $ac_file
- mv conftest.h $ac_file
- fi
-fi; done
-
-
-
-exit 0
diff --git a/apps/JAWS/clients/WebSTONE/src/config.sub b/apps/JAWS/clients/WebSTONE/src/config.sub
deleted file mode 100755
index e67a800b515..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/config.sub
+++ /dev/null
@@ -1,867 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script, version 1.1.
-# Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-if [ x$1 = x ]
-then
- echo Configuration name missing. 1>&2
- echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
- echo "or $0 ALIAS" 1>&2
- echo where ALIAS is a recognized configuration type. 1>&2
- exit 1
-fi
-
-# First pass through any local machine types.
-case $1 in
- *local*)
- echo $1
- exit 0
- ;;
- *)
- ;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS (if any).
-basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-if [ $basic_machine != $1 ]
-then os=`echo $1 | sed 's/.*-/-/'`
-else os=; fi
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp )
- os=
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
- ;;
- -lynx*)
- os=-lynxos
- ;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
- ;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
- ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
- # Recognize the basic CPU types without company name.
- # Some are omitted here because they have special meanings below.
- tahoe | i[345]86 | i860 | m68k | m68000 | m88k | ns32k | arm \
- | arme[lb] | pyramid \
- | tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \
- | alpha | we32k | ns16k | clipper | sparclite | i370 | sh \
- | powerpc | powerpcle | sparc64 | 1750a | dsp16xx | mips64 | mipsel \
- | pdp11 | mips64el | mips64orion | mips64orionel \
- | sparc)
- basic_machine=$basic_machine-unknown
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- vax-* | tahoe-* | i[345]86-* | i860-* | m68k-* | m68000-* | m88k-* \
- | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \
- | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \
- | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
- | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \
- | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \
- | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \
- | mips64el-* | mips64orion-* | mips64orionel-*)
- ;;
- # Recognize the various machine names and aliases which stand
- # for a CPU type and a company and sometimes even an OS.
- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
- ;;
- 3b*)
- basic_machine=we32k-att
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-cbm
- ;;
- amigados)
- basic_machine=m68k-cbm
- os=-amigados
- ;;
- amigaunix | amix)
- basic_machine=m68k-cbm
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | ymp)
- basic_machine=ymp-cray
- os=-unicos
- ;;
- cray2)
- basic_machine=cray2-cray
- os=-unicos
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
- ;;
- delta | 3300 | motorola-3300 | motorola-delta \
- | 3300-motorola | delta-motorola)
- basic_machine=m68k-motorola
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
- ;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
- ;;
- encore | umax | mmax)
- basic_machine=ns32k-encore
- ;;
- fx2800)
- basic_machine=i860-alliant
- ;;
- genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
- ;;
- hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
- ;;
- hp9k3[2-9][0-9])
- basic_machine=m68k-hp
- ;;
- hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7)
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
- os=-mvs
- ;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
- i[345]86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
- os=-sysv32
- ;;
- i[345]86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
- os=-sysv4
- ;;
- i[345]86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
- os=-sysv
- ;;
- i[345]86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
- os=-solaris2
- ;;
- iris | iris4d)
- basic_machine=mips-sgi
- case $os in
- -irix*)
- ;;
- *)
- os=-irix4
- ;;
- esac
- ;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- miniframe)
- basic_machine=m68000-convergent
- ;;
- mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
- ;;
- mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
- ;;
- news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- next | m*-next )
- basic_machine=m68k-next
- case $os in
- -nextstep* )
- ;;
- -ns2*)
- os=-nextstep2
- ;;
- *)
- os=-nextstep3
- ;;
- esac
- ;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- np1)
- basic_machine=np1-gould
- ;;
- pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- pbd)
- basic_machine=sparc-tti
- ;;
- pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
- ;;
- pentium | p5 | p6)
- # We don't have specific support for the Intel Pentium (p6) followon yet, so just call it a Pentium
- basic_machine=i586-intel
- ;;
- pentium-* | p5-* | p6-*)
- # We don't have specific support for the Intel Pentium (p6) followon yet, so just call it a Pentium
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- k5)
- # We don't have specific support for AMD's K5 yet, so just call it a Pentium
- basic_machine=i586-amd
- ;;
- nexen)
- # We don't have specific support for Nexgen yet, so just call it a Pentium
- basic_machine=i586-nexgen
- ;;
- pn)
- basic_machine=pn-gould
- ;;
- power) basic_machine=rs6000-ibm
- ;;
- ppc) basic_machine=powerpc-unknown
- ;;
- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppcle | powerpclittle | ppc-le | powerpc-little)
- basic_machine=powerpcle-unknown
- ;;
- ppcle-* | powerpclittle-*)
- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ps2)
- basic_machine=i386-ibm
- ;;
- rm[46]00)
- basic_machine=mips-siemens
- ;;
- rtpc | rtpc-*)
- basic_machine=romp-ibm
- ;;
- sequent)
- basic_machine=i386-sequent
- ;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
- ;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
- ;;
- spur)
- basic_machine=spur-unknown
- ;;
- sun2)
- basic_machine=m68000-sun
- ;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
- ;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
- ;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
- ;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
- ;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
- ;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
- ;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
- ;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
- ;;
- sun4)
- basic_machine=sparc-sun
- ;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
- ;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
- ;;
- tower | tower-32)
- basic_machine=m68k-ncr
- ;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
- ;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
- ;;
- vms)
- basic_machine=vax-dec
- os=-vms
- ;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
- ;;
- xmp)
- basic_machine=xmp-cray
- os=-unicos
- ;;
- xps | xps100)
- basic_machine=xps100-honeywell
- ;;
- none)
- basic_machine=none-none
- os=-none
- ;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- mips)
- basic_machine=mips-mips
- ;;
- romp)
- basic_machine=romp-ibm
- ;;
- rs6000)
- basic_machine=rs6000-ibm
- ;;
- vax)
- basic_machine=vax-dec
- ;;
- pdp11)
- basic_machine=pdp11-dec
- ;;
- we32k)
- basic_machine=we32k-att
- ;;
- sparc)
- basic_machine=sparc-sun
- ;;
- cydra)
- basic_machine=cydra-cydrome
- ;;
- orion)
- basic_machine=orion-highlevel
- ;;
- orion105)
- basic_machine=clipper-highlevel
- ;;
- *)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
- ;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
- ;;
- *)
- ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
- # -solaris* is a basic system type, with this one exception.
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
- ;;
- -solaris)
- os=-solaris2
- ;;
- -unixware* | svr4*)
- os=-sysv4
- ;;
- -gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux|'`
- ;;
- # First accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[345]* \
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
- | -amigados* | -msdos* | -newsos* | -unicos* | -aos* \
- | -nindy* | -vxworks* | -ebmon* | -hms* | -mvs* | -clix* \
- | -riscos* | -linux* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -netbsd* | -freebsd* | -riscix* \
- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* )
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
- ;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
- ;;
- -osfrose*)
- os=-osfrose
- ;;
- -osf*)
- os=-osf
- ;;
- -utek*)
- os=-bsd
- ;;
- -dynix*)
- os=-bsd
- ;;
- -acis*)
- os=-aos
- ;;
- -ctix* | -uts*)
- os=-sysv
- ;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
- ;;
- -sinix*)
- os=-sysv4
- ;;
- -triton*)
- os=-sysv3
- ;;
- -oss*)
- os=-sysv3
- ;;
- -svr4)
- os=-sysv4
- ;;
- -svr3)
- os=-sysv3
- ;;
- -sysvr4)
- os=-sysv4
- ;;
- # This must come after -sysvr4.
- -sysv*)
- ;;
- -xenix)
- os=-xenix
- ;;
- -none)
- ;;
- *)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
- exit 1
- ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system. Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
- *-acorn)
- os=-riscix1.2
- ;;
- arm*-semi)
- os=-aout
- ;;
- pdp11-*)
- os=-none
- ;;
- *-dec | vax-*)
- os=-ultrix4.2
- ;;
- m68*-apollo)
- os=-domain
- ;;
- i386-sun)
- os=-sunos4.0.2
- ;;
- m68000-sun)
- os=-sunos3
- # This also exists in the configure program, but was not the
- # default.
- # os=-sunos4
- ;;
- *-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
- ;;
- sparc-* | *-sun)
- os=-sunos4.1.1
- ;;
- *-ibm)
- os=-aix
- ;;
- *-hp)
- os=-hpux
- ;;
- *-hitachi)
- os=-hiux
- ;;
- i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
- ;;
- *-cbm)
- os=-amigados
- ;;
- *-dg)
- os=-dgux
- ;;
- *-dolphin)
- os=-sysv3
- ;;
- m68k-ccur)
- os=-rtu
- ;;
- m88k-omron*)
- os=-luna
- ;;
- *-sequent)
- os=-ptx
- ;;
- *-crds)
- os=-unos
- ;;
- *-ns)
- os=-genix
- ;;
- i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
- ;;
- *-gould)
- os=-sysv
- ;;
- *-highlevel)
- os=-bsd
- ;;
- *-encore)
- os=-bsd
- ;;
- *-sgi)
- os=-irix
- ;;
- *-siemens)
- os=-sysv4
- ;;
- *-masscomp)
- os=-rtu
- ;;
- *)
- os=-none
- ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
- case $os in
- -riscix*)
- vendor=acorn
- ;;
- -sunos*)
- vendor=sun
- ;;
- -lynxos*)
- vendor=lynx
- ;;
- -aix*)
- vendor=ibm
- ;;
- -hpux*)
- vendor=hp
- ;;
- -hiux*)
- vendor=hitachi
- ;;
- -unos*)
- vendor=crds
- ;;
- -dgux*)
- vendor=dg
- ;;
- -luna*)
- vendor=omron
- ;;
- -genix*)
- vendor=ns
- ;;
- -mvs*)
- vendor=ibm
- ;;
- -ptx*)
- vendor=sequent
- ;;
- -vxworks*)
- vendor=wrs
- ;;
- esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
- ;;
-esac
-
-echo $basic_machine$os
diff --git a/apps/JAWS/clients/WebSTONE/src/configure b/apps/JAWS/clients/WebSTONE/src/configure
deleted file mode 100755
index 8e1ad6e8369..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/configure
+++ /dev/null
@@ -1,2132 +0,0 @@
-#! /bin/sh
-
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.7
-# Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-ac_default_prefix=bin
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-
-ac_prev=
-for ac_option
-do
-
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- case "$ac_option" in
- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) ac_optarg= ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case "$ac_option" in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir="$ac_optarg" ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build="$ac_optarg" ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file="$ac_optarg" ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir="$ac_optarg" ;;
-
- -disable-* | --disable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- eval "enable_${ac_feature}=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_${ac_feature}='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix="$ac_optarg" ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he)
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat << EOF
-Usage: configure [options] [host]
-Options: [defaults in brackets after descriptions]
-Configuration:
- --cache-file=FILE cache test results in FILE
- --help print this message
- --no-create do not create output files
- --quiet, --silent do not print \`checking...' messages
- --version print the version of autoconf that created configure
-Directory and file names:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [same as prefix]
- --bindir=DIR user executables in DIR [EPREFIX/bin]
- --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
- --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data in DIR
- [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data in DIR
- [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
- --libdir=DIR object code libraries in DIR [EPREFIX/lib]
- --includedir=DIR C header files in DIR [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
- --infodir=DIR info documentation in DIR [PREFIX/info]
- --mandir=DIR man documentation in DIR [PREFIX/man]
- --srcdir=DIR find the sources in DIR [configure dir or ..]
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM
- run sed PROGRAM on installed program names
-EOF
- cat << EOF
-Host type:
- --build=BUILD configure for building on BUILD [BUILD=HOST]
- --host=HOST configure for HOST [guessed]
- --target=TARGET configure for TARGET [TARGET=HOST]
-Features and packages:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --x-includes=DIR X include files are in DIR
- --x-libraries=DIR X library files are in DIR
-EOF
- if test -n "$ac_help"; then
- echo "--enable and --with options recognized:$ac_help"
- fi
- exit 0 ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host="$ac_optarg" ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir="$ac_optarg" ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir="$ac_optarg" ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir="$ac_optarg" ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir="$ac_optarg" ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir="$ac_optarg" ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir="$ac_optarg" ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir="$ac_optarg" ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix="$ac_optarg" ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix="$ac_optarg" ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix="$ac_optarg" ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name="$ac_optarg" ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir="$ac_optarg" ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir="$ac_optarg" ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site="$ac_optarg" ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir="$ac_optarg" ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir="$ac_optarg" ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target="$ac_optarg" ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.7"
- exit 0 ;;
-
- -with-* | --with-*)
- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "with_${ac_package}='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`echo $ac_option|sed -e 's/-*without-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- eval "with_${ac_package}=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes="$ac_optarg" ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries="$ac_optarg" ;;
-
- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
- ;;
-
- *)
- if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
- echo "configure: warning: $ac_option: invalid host type" 1>&2
- fi
- if test "x$nonopt" != xNONE; then
- { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
- fi
- nonopt="$ac_option"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-fi
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 6 checking for... messages and results
-# 5 compiler messages saved in config.log
-if test "$silent" = yes; then
- exec 6>/dev/null
-else
- exec 6>&1
-fi
-exec 5>./config.log
-
-echo "\
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-" 1>&5
-
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell metacharacters.
-ac_configure_args=
-for ac_arg
-do
- case "$ac_arg" in
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c) ;;
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
- ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- *) ac_configure_args="$ac_configure_args $ac_arg" ;;
- esac
-done
-
-# NLS nuisances.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo > confdefs.h
-
-# A filename unique to this package, relative to the directory that
-# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=webclient.c
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_prog=$0
- ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
- else
- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
- fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- echo "loading site script $ac_site_file"
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='echo $CPP $CPPFLAGS 1>&5;
-$CPP $CPPFLAGS'
-ac_compile='echo ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5;
-${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5 2>&5'
-ac_link='echo ${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5;
-${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5 2>&5'
-
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
- # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
- if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
- ac_n= ac_c='
-' ac_t=' '
- else
- ac_n=-n ac_c= ac_t=
- fi
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-
-
-PRODUCT=webstone
-VERSION=2.0b4
-cat >> confdefs.h <<EOF
-#define PRODUCT "$PRODUCT"
-EOF
-
-cat >> confdefs.h <<EOF
-#define VERSION "$VERSION"
-EOF
-
-
-
-
-
-# set system type
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
-
-# Do some error checking and defaulting for the host and target type.
-# The inputs are:
-# configure --host=HOST --target=TARGET --build=BUILD NONOPT
-#
-# The rules are:
-# 1. You are not allowed to specify --host, --target, and nonopt at the
-# same time.
-# 2. Host defaults to nonopt.
-# 3. If nonopt is not specified, then host defaults to the current host,
-# as determined by config.guess.
-# 4. Target and build default to nonopt.
-# 5. If nonopt is not specified, then target and build default to host.
-
-# The aliases save the names the user supplied, while $host etc.
-# will get canonicalized.
-case $host---$target---$nonopt in
-NONE---*---* | *---NONE---* | *---*---NONE) ;;
-*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
-esac
-
-
-# Make sure we can run config.sub.
-if $ac_config_sub sun4 >/dev/null 2>&1; then :
-else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking host system type""... $ac_c" 1>&6
-
-host_alias=$host
-case "$host_alias" in
-NONE)
- case $nonopt in
- NONE)
- if host_alias=`$ac_config_guess`; then :
- else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
- fi ;;
- *) host_alias=$nonopt ;;
- esac ;;
-esac
-
-host=`$ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
-echo "$ac_t""$host" 1>&6
-
-echo $ac_n "checking target system type""... $ac_c" 1>&6
-
-target_alias=$target
-case "$target_alias" in
-NONE)
- case $nonopt in
- NONE) target_alias=$host_alias ;;
- *) target_alias=$nonopt ;;
- esac ;;
-esac
-
-target=`$ac_config_sub $target_alias`
-target_cpu=`echo $target | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
-target_vendor=`echo $target | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
-target_os=`echo $target | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
-echo "$ac_t""$target" 1>&6
-
-echo $ac_n "checking build system type""... $ac_c" 1>&6
-
-build_alias=$build
-case "$build_alias" in
-NONE)
- case $nonopt in
- NONE) build_alias=$host_alias ;;
- *) build_alias=$nonopt ;;
- esac ;;
-esac
-
-build=`$ac_config_sub $build_alias`
-build_cpu=`echo $build | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
-build_vendor=`echo $build | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
-build_os=`echo $build | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
-echo "$ac_t""$build" 1>&6
-
-test "$host_alias" != "$target_alias" &&
- test "$program_prefix$program_suffix$program_transform_name" = \
- NONENONEs,x,x, &&
- program_prefix=${target_alias}-
-
-
-#
-# checks for programs
-#
-# Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="gcc"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="cc"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.c <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if ${CC-cc} -E conftest.c 2>&5 | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gcc=yes
-else
- ac_cv_prog_gcc=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
- if test "${CFLAGS+set}" != set; then
- echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_prog_gcc_g'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
- ac_cv_prog_gcc_g=yes
-else
- ac_cv_prog_gcc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc_g" 1>&6
- if test $ac_cv_prog_gcc_g = yes; then
- CFLAGS="-g -O"
- else
- CFLAGS="-O"
- fi
- fi
-else
- GCC=
- test "${CFLAGS+set}" = set || CFLAGS="-g"
-fi
-
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-set dummy ${MAKE-make}; ac_make=$2
-if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftestmake <<\EOF
-all:
- @echo 'ac_maketemp="${MAKE}"'
-EOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
- eval ac_cv_prog_make_${ac_make}_set=yes
-else
- eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftestmake
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- SET_MAKE=
-else
- echo "$ac_t""no" 1>&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-for ac_prog in mawk gawk nawk awk
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_AWK="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-AWK="$ac_cv_prog_AWK"
-if test -n "$AWK"; then
- echo "$ac_t""$AWK" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$AWK" && break
-done
-
-
-
-# We use a path for perl so the #! line in bin/wscollect.pl will work.
-# Extract the first word of "perl", so it can be a program name with args.
-set dummy perl; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$PERL" in
- /*)
- ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_path_PERL="$ac_dir/$ac_word"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="no"
- ;;
-esac
-fi
-PERL="$ac_cv_path_PERL"
-if test -n "$PERL"; then
- echo "$ac_t""$PERL" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-
-if test "$PERL" != no; then
- PERL_SCRIPTS="bin/wscollect.pl"
-else
- echo "configure: warning: Some functions may work correctly" 1>&2
-fi
-
-#
-# checks for libraries
-#
-# Replace `main' with a function in -lm:
-echo $ac_n "checking for -lm""... $ac_c" 1>&6
-ac_lib_var=`echo m | tr '.-/+' '___p'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lm $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 832 "configure"
-#include "confdefs.h"
-
-int main() { return 0; }
-int t() {
-floor()
-; return 0; }
-EOF
-if eval $ac_link; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo m | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lm $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking for -lcompat""... $ac_c" 1>&6
-ac_lib_var=`echo compat | tr '.-/+' '___p'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lcompat $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 872 "configure"
-#include "confdefs.h"
-
-int main() { return 0; }
-int t() {
-rexec()
-; return 0; }
-EOF
-if eval $ac_link; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo compat | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lcompat $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking for -lucb""... $ac_c" 1>&6
-ac_lib_var=`echo ucb | tr '.-/+' '___p'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lucb $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 912 "configure"
-#include "confdefs.h"
-
-int main() { return 0; }
-int t() {
-wait3()
-; return 0; }
-EOF
-if eval $ac_link; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo ucb | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lucb $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking for -lsocket""... $ac_c" 1>&6
-ac_lib_var=`echo socket | tr '.-/+' '___p'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lsocket -lnsl $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 952 "configure"
-#include "confdefs.h"
-
-int main() { return 0; }
-int t() {
-connect()
-; return 0; }
-EOF
-if eval $ac_link; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo socket | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lsocket $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-#
-# checks for header files
-#
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # This must be in double quotes, not single quotes, because CPP may get
- # substituted into the Makefile and "${CC-cc}" will confuse make.
- CPP="${CC-cc} -E"
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp.
- cat > conftest.$ac_ext <<EOF
-#line 1003 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- rm -rf conftest*
- CPP="${CC-cc} -E -traditional-cpp"
- cat > conftest.$ac_ext <<EOF
-#line 1017 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- rm -rf conftest*
- CPP=/lib/cpp
-fi
-rm -f conftest*
-fi
-rm -f conftest*
- ac_cv_prog_CPP="$CPP"
-fi
- CPP="$ac_cv_prog_CPP"
-else
- ac_cv_prog_CPP="$CPP"
-fi
-echo "$ac_t""$CPP" 1>&6
-
-# If we cannot run a trivial program, we must be cross compiling.
-echo $ac_n "checking whether cross-compiling""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_c_cross'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_c_cross=yes
-else
-cat > conftest.$ac_ext <<EOF
-#line 1051 "configure"
-#include "confdefs.h"
-main(){return(0);}
-EOF
-eval $ac_link
-if test -s conftest && (./conftest; exit) 2>/dev/null; then
- ac_cv_c_cross=no
-else
- ac_cv_c_cross=yes
-fi
-fi
-rm -fr conftest*
-fi
-
-echo "$ac_t""$ac_cv_c_cross" 1>&6
-cross_compiling=$ac_cv_c_cross
-
-echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1073 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-EOF
-eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- ac_cv_header_stdc=yes
-else
- echo "$ac_err" >&5
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 1095 "configure"
-#include "confdefs.h"
-#include <string.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "memchr" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 1113 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "free" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-if test "$cross_compiling" = yes; then
- :
-else
-cat > conftest.$ac_ext <<EOF
-#line 1134 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int main () { int i; for (i = 0; i < 256; i++)
-if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
-exit (0); }
-
-EOF
-eval $ac_link
-if test -s conftest && (./conftest; exit) 2>/dev/null; then
- :
-else
- ac_cv_header_stdc=no
-fi
-fi
-rm -fr conftest*
-fi
-fi
-
-echo "$ac_t""$ac_cv_header_stdc" 1>&6
-if test $ac_cv_header_stdc = yes; then
- cat >> confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1169 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/wait.h>
-#ifndef WEXITSTATUS
-#define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
-#endif
-#ifndef WIFEXITED
-#define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
-#endif
-int main() { return 0; }
-int t() {
-int s;
-wait (&s);
-s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
-; return 0; }
-EOF
-if eval $ac_compile; then
- rm -rf conftest*
- ac_cv_header_sys_wait_h=yes
-else
- rm -rf conftest*
- ac_cv_header_sys_wait_h=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_header_sys_wait_h" 1>&6
-if test $ac_cv_header_sys_wait_h = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_SYS_WAIT_H 1
-EOF
-
-fi
-
-for ac_hdr in fcntl.h limits.h sgtty.h sys/time.h unistd.h
-do
-ac_safe=`echo "$ac_hdr" | tr './\055' '___'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1213 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | tr 'abcdefghijklmnopqrstuvwxyz./\055' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ___'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-#
-# checks for typedefs, structures, and compiler characteristics
-#
-echo $ac_n "checking for working const""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1250 "configure"
-#include "confdefs.h"
-
-int main() { return 0; }
-int t() {
-
-/* Ultrix mips cc rejects this. */
-typedef int charset[2]; const charset x;
-/* SunOS 4.1.1 cc rejects this. */
-char const *const *ccp;
-char **p;
-/* NEC SVR4.0.2 mips cc rejects this. */
-struct point {int x, y;};
-static struct point const zero = {0,0};
-/* AIX XL C 1.02.0.0 rejects this.
- It does not let you subtract one const X* pointer from another in an arm
- of an if-expression whose if-part is not a constant expression */
-const char *g = "string";
-ccp = &g + (g ? g-g : 0);
-/* HPUX 7.0 cc rejects these. */
-++ccp;
-p = (char**) ccp;
-ccp = (char const *const *) p;
-{ /* SCO 3.2v4 cc rejects this. */
- char *t;
- char const *s = 0 ? (char *) 0 : (char const *) 0;
-
- *t++ = 0;
-}
-{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
- int x[] = {25, 17};
- const int *foo = &x[0];
- ++foo;
-}
-{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
- typedef const int *iptr;
- iptr p = 0;
- ++p;
-}
-{ /* AIX XL C 1.02.0.0 rejects this saying
- "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
- struct s { int j; const int *ap[3]; };
- struct s *b; b->j = 5;
-}
-{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
- const int foo = 10;
-}
-
-; return 0; }
-EOF
-if eval $ac_compile; then
- rm -rf conftest*
- ac_cv_c_const=yes
-else
- rm -rf conftest*
- ac_cv_c_const=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_c_const" 1>&6
-if test $ac_cv_c_const = no; then
- cat >> confdefs.h <<\EOF
-#define const
-EOF
-
-fi
-
-echo $ac_n "checking for size_t""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1324 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#endif
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "size_t" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_type_size_t=yes
-else
- rm -rf conftest*
- ac_cv_type_size_t=no
-fi
-rm -f conftest*
-
-fi
-echo "$ac_t""$ac_cv_type_size_t" 1>&6
-if test $ac_cv_type_size_t = no; then
- cat >> confdefs.h <<\EOF
-#define size_t unsigned
-EOF
-
-fi
-
-echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1355 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-#undef signal
-#endif
-#ifdef __cplusplus
-extern "C" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
-
-int main() { return 0; }
-int t() {
-int i;
-; return 0; }
-EOF
-if eval $ac_compile; then
- rm -rf conftest*
- ac_cv_type_signal=void
-else
- rm -rf conftest*
- ac_cv_type_signal=int
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_type_signal" 1>&6
-cat >> confdefs.h <<EOF
-#define RETSIGTYPE $ac_cv_type_signal
-EOF
-
-
-echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1395 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-int main() { return 0; }
-int t() {
-struct tm *tp;
-; return 0; }
-EOF
-if eval $ac_compile; then
- rm -rf conftest*
- ac_cv_header_time=yes
-else
- rm -rf conftest*
- ac_cv_header_time=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_header_time" 1>&6
-if test $ac_cv_header_time = yes; then
- cat >> confdefs.h <<\EOF
-#define TIME_WITH_SYS_TIME 1
-EOF
-
-fi
-
-echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1429 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <time.h>
-int main() { return 0; }
-int t() {
-struct tm *tp; tp->tm_sec;
-; return 0; }
-EOF
-if eval $ac_compile; then
- rm -rf conftest*
- ac_cv_struct_tm=time.h
-else
- rm -rf conftest*
- ac_cv_struct_tm=sys/time.h
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_struct_tm" 1>&6
-if test $ac_cv_struct_tm = sys/time.h; then
- cat >> confdefs.h <<\EOF
-#define TM_IN_SYS_TIME 1
-EOF
-
-fi
-
-echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_struct_tm_zone'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1462 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <$ac_cv_struct_tm>
-int main() { return 0; }
-int t() {
-struct tm tm; tm.tm_zone;
-; return 0; }
-EOF
-if eval $ac_compile; then
- rm -rf conftest*
- ac_cv_struct_tm_zone=yes
-else
- rm -rf conftest*
- ac_cv_struct_tm_zone=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_struct_tm_zone" 1>&6
-if test "$ac_cv_struct_tm_zone" = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_TM_ZONE 1
-EOF
-
-else
- echo $ac_n "checking for tzname""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_var_tzname'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1494 "configure"
-#include "confdefs.h"
-#include <time.h>
-#ifndef tzname /* For SGI. */
-extern char *tzname[]; /* RS6000 and others reject char **tzname. */
-#endif
-int main() { return 0; }
-int t() {
-atoi(*tzname);
-; return 0; }
-EOF
-if eval $ac_link; then
- rm -rf conftest*
- ac_cv_var_tzname=yes
-else
- rm -rf conftest*
- ac_cv_var_tzname=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_var_tzname" 1>&6
- if test $ac_cv_var_tzname = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_TZNAME 1
-EOF
-
- fi
-fi
-
-cat > conftest.$ac_ext <<EOF
-#line 1526 "configure"
-#include "confdefs.h"
-#include <sys/time.h>
-int main() { return 0; }
-int t() {
-struct timeval thetime; struct timezone thezone;
- gettimeofday(&thetime, &thezone);
-; return 0; }
-EOF
-if eval $ac_compile; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define USE_TIMEZONE 1
-EOF
-
-fi
-rm -f conftest*
-
-
-#
-# checks for library functions
-#
-echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_func_memcmp'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_func_memcmp=no
-else
-cat > conftest.$ac_ext <<EOF
-#line 1556 "configure"
-#include "confdefs.h"
-
-main()
-{
- char c0 = 0x40, c1 = 0x80, c2 = 0x81;
- exit(memcmp(&c0, &c2, 1) < 0 && memcmp(&c1, &c2, 1) < 0 ? 0 : 1);
-}
-
-EOF
-eval $ac_link
-if test -s conftest && (./conftest; exit) 2>/dev/null; then
- ac_cv_func_memcmp=yes
-else
- ac_cv_func_memcmp=no
-fi
-fi
-rm -fr conftest*
-fi
-
-echo "$ac_t""$ac_cv_func_memcmp" 1>&6
-test $ac_cv_func_memcmp = no && LIBOBJS="$LIBOBJS memcmp.o"
-
-echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1584 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-#undef signal
-#endif
-#ifdef __cplusplus
-extern "C" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
-
-int main() { return 0; }
-int t() {
-int i;
-; return 0; }
-EOF
-if eval $ac_compile; then
- rm -rf conftest*
- ac_cv_type_signal=void
-else
- rm -rf conftest*
- ac_cv_type_signal=int
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_type_signal" 1>&6
-cat >> confdefs.h <<EOF
-#define RETSIGTYPE $ac_cv_type_signal
-EOF
-
-
-echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1624 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char vprintf(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-char vprintf();
-
-int main() { return 0; }
-int t() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_vprintf) || defined (__stub___vprintf)
-choke me
-#else
-vprintf();
-#endif
-
-; return 0; }
-EOF
-if eval $ac_link; then
- rm -rf conftest*
- eval "ac_cv_func_vprintf=yes"
-else
- rm -rf conftest*
- eval "ac_cv_func_vprintf=no"
-fi
-rm -f conftest*
-
-fi
-if eval "test \"`echo '$ac_cv_func_'vprintf`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_VPRINTF 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test "$ac_cv_func_vprintf" != yes; then
-echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1672 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char _doprnt(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-char _doprnt();
-
-int main() { return 0; }
-int t() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub__doprnt) || defined (__stub____doprnt)
-choke me
-#else
-_doprnt();
-#endif
-
-; return 0; }
-EOF
-if eval $ac_link; then
- rm -rf conftest*
- eval "ac_cv_func__doprnt=yes"
-else
- rm -rf conftest*
- eval "ac_cv_func__doprnt=no"
-fi
-rm -f conftest*
-
-fi
-if eval "test \"`echo '$ac_cv_func_'_doprnt`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_DOPRNT 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-fi
-
-echo $ac_n "checking for wait3 that fills in rusage""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_func_wait3'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_func_wait3=no
-else
-cat > conftest.$ac_ext <<EOF
-#line 1724 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <stdio.h>
-/* HP-UX has wait3 but does not fill in rusage at all. */
-main() {
- struct rusage r;
- int i;
- /* Use a field that we can force nonzero --
- voluntary context switches.
- For systems like NeXT and OSF/1 that don't set it,
- also use the system CPU time. And page faults (I/O) for Linux. */
- r.ru_nvcsw = 0;
- r.ru_stime.tv_sec = 0;
- r.ru_stime.tv_usec = 0;
- r.ru_majflt = r.ru_minflt = 0;
- switch (fork()) {
- case 0: /* Child. */
- sleep(1); /* Give up the CPU. */
- _exit(0);
- case -1: _exit(0); /* What can we do? */
- default: /* Parent. */
- wait3(&i, 0, &r);
- sleep(2); /* Avoid "text file busy" from rm on fast HP-UX machines. */
- exit(r.ru_nvcsw == 0 && r.ru_majflt == 0 && r.ru_minflt == 0
- && r.ru_stime.tv_sec == 0 && r.ru_stime.tv_usec == 0);
- }
-}
-EOF
-eval $ac_link
-if test -s conftest && (./conftest; exit) 2>/dev/null; then
- ac_cv_func_wait3=yes
-else
- ac_cv_func_wait3=no
-fi
-fi
-rm -fr conftest*
-fi
-
-echo "$ac_t""$ac_cv_func_wait3" 1>&6
-if test $ac_cv_func_wait3 = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_WAIT3 1
-EOF
-
-fi
-
-for ac_func in gethostname gettimeofday select socket strerror
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1780 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-char $ac_func();
-
-int main() { return 0; }
-int t() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if eval $ac_link; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-
-fi
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-#
-# checks for system services
-#
-
-#
-# all done
-#
-trap '' 1 2 15
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=\${\1='\2'}/p" \
- >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Any assignment to VPATH causes Sun make to only execute
-# the first set of double-colon rules, so remove it if not needed.
-# If there is a colon in the path, we need to keep it.
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-DEFS=-DHAVE_CONFIG_H
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# Generated automatically by configure.
-# Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# $0 $ac_configure_args
-#
-# Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
- case "\$ac_option" in
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
- exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
- -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "$CONFIG_STATUS generated by autoconf version 2.7"
- exit 0 ;;
- -help | --help | --hel | --he | --h)
- echo "\$ac_cs_usage"; exit 0 ;;
- *) echo "\$ac_cs_usage"; exit 1 ;;
- esac
-done
-
-ac_given_srcdir=$srcdir
-
-trap 'rm -fr `echo "Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-$ac_vpsub
-$extrasub
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@DEFS@%$DEFS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@LIBS@%$LIBS%g
-s%@exec_prefix@%$exec_prefix%g
-s%@prefix@%$prefix%g
-s%@program_transform_name@%$program_transform_name%g
-s%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-s%@PRODUCT@%$PRODUCT%g
-s%@VERSION@%$VERSION%g
-s%@host@%$host%g
-s%@host_alias@%$host_alias%g
-s%@host_cpu@%$host_cpu%g
-s%@host_vendor@%$host_vendor%g
-s%@host_os@%$host_os%g
-s%@target@%$target%g
-s%@target_alias@%$target_alias%g
-s%@target_cpu@%$target_cpu%g
-s%@target_vendor@%$target_vendor%g
-s%@target_os@%$target_os%g
-s%@build@%$build%g
-s%@build_alias@%$build_alias%g
-s%@build_cpu@%$build_cpu%g
-s%@build_vendor@%$build_vendor%g
-s%@build_os@%$build_os%g
-s%@CC@%$CC%g
-s%@SET_MAKE@%$SET_MAKE%g
-s%@AWK@%$AWK%g
-s%@PERL@%$PERL%g
-s%@PERL_SCRIPTS@%$PERL_SCRIPTS%g
-s%@CPP@%$CPP%g
-s%@LIBOBJS@%$LIBOBJS%g
-
-CEOF
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- # Adjust relative srcdir, etc. for subdirectories.
-
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- ac_dir_suffix= ac_dots=
- fi
-
- case "$ac_given_srcdir" in
- .) srcdir=.
- if test -z "$ac_dots"; then top_srcdir=.
- else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
- /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
-
- echo creating "$ac_file"
- rm -f "$ac_file"
- configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
- case "$ac_file" in
- *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
- *) ac_comsub= ;;
- esac
- sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-" -f conftest.subs $ac_given_srcdir/$ac_file_in > $ac_file
-fi; done
-rm -f conftest.subs
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
-ac_dC='\3'
-ac_dD='%g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='\([ ]\)%\1#\2define\3'
-ac_uC=' '
-ac_uD='\4%g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_eB='$%\1#\2define\3'
-ac_eC=' '
-ac_eD='%g'
-
-CONFIG_HEADERS=${CONFIG_HEADERS-"config.h"}
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- echo creating $ac_file
-
- rm -f conftest.frag conftest.in conftest.out
- cp $ac_given_srcdir/$ac_file_in conftest.in
-
-EOF
-
-# Transform confdefs.h into a sed script conftest.vals that substitutes
-# the proper values into config.h.in to produce config.h. And first:
-# Protect against being on the right side of a sed subst in config.status.
-# Protect against being in an unquoted here document in config.status.
-rm -f conftest.vals
-cat > conftest.hdr <<\EOF
-s/[\\&%]/\\&/g
-s%[\\$`]%\\&%g
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) \(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
-s%ac_d%ac_u%gp
-s%ac_u%ac_e%gp
-EOF
-sed -n -f conftest.hdr confdefs.h > conftest.vals
-rm -f conftest.hdr
-
-# This sed command replaces #undef with comments. This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >> conftest.vals <<\EOF
-s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
-EOF
-
-# Break up conftest.vals because some shells have a limit on
-# the size of here documents, and old seds have small limits too.
-# Maximum number of lines to put in a single here document.
-ac_max_here_lines=12
-
-rm -f conftest.tail
-while :
-do
- ac_lines=`grep -c . conftest.vals`
- # grep -c gives empty output for an empty file on some AIX systems.
- if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
- # Write a limited-size here document to conftest.frag.
- echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
- echo 'CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-' >> $CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
- rm -f conftest.vals
- mv conftest.tail conftest.vals
-done
-rm -f conftest.vals
-
-cat >> $CONFIG_STATUS <<\EOF
- rm -f conftest.frag conftest.h
- echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
- cat conftest.in >> conftest.h
- rm -f conftest.in
- if cmp -s $ac_file conftest.h 2>/dev/null; then
- echo "$ac_file is unchanged"
- rm -f conftest.h
- else
- rm -f $ac_file
- mv conftest.h $ac_file
- fi
-fi; done
-
-
-
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
-#
-# end
diff --git a/apps/JAWS/clients/WebSTONE/src/configure.in b/apps/JAWS/clients/WebSTONE/src/configure.in
deleted file mode 100644
index 449a6a16cef..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/configure.in
+++ /dev/null
@@ -1,99 +0,0 @@
-# configure.in
-# Configure template for WebStone
-# Process this file with autoconf to produce a configure script.
-#
-# This file and all files contained in this directory are
-# copyright 1995, Silicon Graphics, Inc.
-#
-# This software is provided without support and without any obligation on the
-# part of Silicon Graphics, Inc. to assist in its use, correction, modification
-# or enhancement. There is no guarantee that this software will be included in
-# future software releases, and it probably will not be included.
-#
-# THIS SOFTWARE IS PROVIDED "AS IS" WITH NO WARRANTIES OF ANY KIND INCLUDING
-# THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-#
-# In no event will Silicon Graphics, Inc. be liable for any lost revenue or
-# profits or other special, indirect and consequential damages, even if
-# Silicon Graphics, Inc. has been advised of the possibility of such damages.
-
-AC_INIT(webclient.c)
-AC_CONFIG_HEADER(config.h)
-PRODUCT=webstone
-VERSION=2.0b6
-AC_DEFINE_UNQUOTED(PRODUCT, "$PRODUCT")
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
-AC_SUBST(PRODUCT)
-AC_SUBST(VERSION)
-AC_PREFIX_DEFAULT(bin)
-
-# set system type
-AC_CANONICAL_SYSTEM
-
-#
-# checks for programs
-#
-AC_PROG_CC
-AC_PROG_MAKE_SET
-AC_PROG_AWK
-
-
-# We use a path for perl so the #! line in bin/wscollect.pl will work.
-AC_PATH_PROG(PERL, perl, no)
-AC_SUBST(PERL)
-AC_SUBST(PERL_SCRIPTS)
-if test "$PERL" != no; then
- PERL_SCRIPTS="bin/wscollect.pl"
-else
- AC_MSG_WARN(Some functions may work correctly, since perl was not found)
-fi
-
-#
-# checks for libraries
-#
-# Replace `main' with a function in -lm:
-AC_CHECK_LIB(m, floor)
-AC_CHECK_LIB(compat, rexec)
-AC_CHECK_LIB(ucb, wait3)
-AC_CHECK_LIB(socket, connect, AC_SUBST(LIBS), , -lnsl)
-
-#
-# checks for header files
-#
-AC_HEADER_STDC
-AC_HEADER_SYS_WAIT
-AC_CHECK_HEADERS(fcntl.h limits.h sgtty.h sys/time.h unistd.h)
-
-#
-# checks for typedefs, structures, and compiler characteristics
-#
-AC_C_CONST
-AC_TYPE_SIZE_T
-AC_TYPE_SIGNAL
-AC_HEADER_TIME
-AC_STRUCT_TIMEZONE
-AC_TRY_COMPILE([#include <sys/time.h>],
- [struct timeval thetime; struct timezone thezone;
- gettimeofday(&thetime, &thezone); ],
- AC_DEFINE(USE_TIMEZONE), )
-
-#
-# checks for library functions
-#
-AC_FUNC_MEMCMP
-AC_TYPE_SIGNAL
-AC_FUNC_VPRINTF
-AC_FUNC_WAIT3
-AC_CHECK_FUNCS(gethostname gettimeofday select socket strerror)
-
-#
-# checks for system services
-#
-
-#
-# all done
-#
-AC_OUTPUT(Makefile)
-#
-# end
diff --git a/apps/JAWS/clients/WebSTONE/src/debug.h b/apps/JAWS/clients/WebSTONE/src/debug.h
deleted file mode 100644
index f7a3a0eaf74..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/debug.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/**************************************************************************
- $Header$
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-#ifndef __DEBUG_H__
-
-#define D_PRINTF debug && fprintf(debugfile,
-#define D_FLUSH );fflush(debugfile)
-
-#define __DEBUG_H__
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/errexit.c b/apps/JAWS/clients/WebSTONE/src/errexit.c
deleted file mode 100644
index 2d5a7de34f1..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/errexit.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/**************************************************************************
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-/* errexit call for general error handling */
-
-#include <stdio.h>
-#ifndef WIN32
-#include <errno.h>
-#include <netdb.h>
-#include <unistd.h>
-#endif /* WIN32 */
-#include <stdarg.h>
-#include <sys/types.h>
-
-#include "sysdep.h"
-#include "bench.h"
-
-#ifdef HAVE_VPRINTF
-#define VPRINTF(stderr, format, args) vfprintf((stderr), (format), (args))
-#else
-#ifdef HAVE_DOPRNT
-#define VPRINTF(stderr, format, args) _doprnt((format), (args), (stderr))
-#endif /* HAVE_DOPRNT */
-#endif /* HAVE_VPRINTF */
-
-/* print an error message and exit 1 */
-void
-errexit(const char *format, ...)
-{
-va_list args;
-char hostname[64] = "";
-pid_t PID;
-
- PID = getpid();
- gethostname(hostname, sizeof(hostname));
- fprintf(stderr, "%s PID %d: ", hostname, PID);
-
- va_start(args, format);
- VPRINTF(stderr, format, args);
- debug && VPRINTF(debugfile, format, args);
- va_end(args);
- fflush(stderr);
- exit(1);
-}
-/* that's it */
-
-/* print an error message and return -1 */
-int
-returnerr(const char *format, ...)
-{
-va_list args;
-char hostname[64] = "";
-pid_t PID;
-
- PID = getpid();
- gethostname(hostname, sizeof(hostname));
- fprintf(stderr, "%s PID %d: ", hostname, PID);
-
- va_start(args, format);
- VPRINTF(stderr, format, args);
- debug && VPRINTF(debugfile, format, args);
- va_end(args);
- fflush(stderr);
- debug && fflush(debugfile);
- return(-1);
-}
-/* that's it */
-
-/* print a debug message and then flush */
-int
-d_printf(const char *format, ...)
-{
-va_list args;
-
- va_start(args, format);
- VPRINTF(debugfile, format, args);
- va_end(args);
-
- fflush(debugfile);
- return 0;
-}
-/* that's it */
-
-/* returns the last network error as a string */
-char *neterrstr(void) {
-static char buf[200];
-
-#ifdef WIN32
- sprintf(buf, "WSAGetLastError() = %d", WSAGetLastError());
- WSASetLastError(0);
-#else
- sprintf(buf, "errno = %d: %s", errno, strerror(errno));
- errno = 0;
-#endif /* WIN32 */
-
- return buf;
-}
diff --git a/apps/JAWS/clients/WebSTONE/src/gendata/genrand.mak b/apps/JAWS/clients/WebSTONE/src/gendata/genrand.mak
deleted file mode 100755
index 6202df261d1..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/gendata/genrand.mak
+++ /dev/null
@@ -1,227 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.10
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-!IF "$(CFG)" == ""
-CFG=genrand - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to genrand - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "genrand - Win32 Release" && "$(CFG)" !=\
- "genrand - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "genrand.mak" CFG="genrand - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "genrand - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "genrand - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "genrand - Win32 Debug"
-RSC=rc.exe
-CPP=cl.exe
-
-!IF "$(CFG)" == "genrand - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "WinRel"
-# PROP BASE Intermediate_Dir "WinRel"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "WinRel"
-# PROP Intermediate_Dir "WinRel"
-# PROP Target_Dir ""
-OUTDIR=.\WinRel
-INTDIR=.\WinRel
-
-ALL : ".\WinRel\genrand.exe"
-
-CLEAN :
- -@erase ".\WinRel\genrand.exe"
- -@erase ".\WinRel\genrand.obj"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-CPP_PROJ=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE"\
- /Fp"$(INTDIR)/genrand.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\WinRel/
-CPP_SBRS=.\.
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/genrand.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:console /incremental:no\
- /pdb:"$(OUTDIR)/genrand.pdb" /machine:I386 /out:"$(OUTDIR)/genrand.exe"
-LINK32_OBJS= \
- ".\WinRel\genrand.obj"
-
-".\WinRel\genrand.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "genrand - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-OUTDIR=.\Debug
-INTDIR=.\Debug
-
-ALL : ".\Debug\genrand.exe" ".\Debug\genrand.bsc"
-
-CLEAN :
- -@erase ".\Debug\genrand.bsc"
- -@erase ".\Debug\genrand.exe"
- -@erase ".\Debug\genrand.ilk"
- -@erase ".\Debug\genrand.obj"
- -@erase ".\Debug\genrand.pdb"
- -@erase ".\Debug\genrand.sbr"
- -@erase ".\Debug\vc40.idb"
- -@erase ".\Debug\vc40.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /FR /YX /c
-CPP_PROJ=/nologo /MLd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE"\
- /FR"$(INTDIR)/" /Fp"$(INTDIR)/genrand.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/"\
- /c
-CPP_OBJS=.\Debug/
-CPP_SBRS=.\Debug/
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/genrand.bsc"
-BSC32_SBRS= \
- ".\Debug\genrand.sbr"
-
-".\Debug\genrand.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
- $(BSC32) @<<
- $(BSC32_FLAGS) $(BSC32_SBRS)
-<<
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:console /incremental:yes\
- /pdb:"$(OUTDIR)/genrand.pdb" /debug /machine:I386 /out:"$(OUTDIR)/genrand.exe"
-LINK32_OBJS= \
- ".\Debug\genrand.obj"
-
-".\Debug\genrand.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-################################################################################
-# Begin Target
-
-# Name "genrand - Win32 Release"
-# Name "genrand - Win32 Debug"
-
-!IF "$(CFG)" == "genrand - Win32 Release"
-
-!ELSEIF "$(CFG)" == "genrand - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Source File
-
-SOURCE=\stone.jim\webstone.src\src\genrand.c
-DEP_CPP_GENRA=\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-NODEP_CPP_GENRA=\
- "..\config.h"\
-
-
-!IF "$(CFG)" == "genrand - Win32 Release"
-
-
-".\WinRel\genrand.obj" : $(SOURCE) $(DEP_CPP_GENRA) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF "$(CFG)" == "genrand - Win32 Debug"
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-".\Debug\genrand.obj" : $(SOURCE) $(DEP_CPP_GENRA) "$(INTDIR)"
- $(BuildCmds)
-
-".\Debug\genrand.sbr" : $(SOURCE) $(DEP_CPP_GENRA) "$(INTDIR)"
- $(BuildCmds)
-
-!ENDIF
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/apps/JAWS/clients/WebSTONE/src/genrand.c b/apps/JAWS/clients/WebSTONE/src/genrand.c
deleted file mode 100644
index 3aad47794fb..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/genrand.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/**************************************************************************
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-#include <stdio.h>
-#include <fcntl.h>
-#include <math.h>
-
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include "sysdep.h"
-
-void
-main(const int argc, char* argv[])
-{
- FILE* file;
- int i;
- int my_random;
- int size;
- char *cp;
-
- if (argc != 3) {
- printf("usage: %s file_size_in_bytes[K|M] name\n", argv[0]);
- exit(2);
- }
-
- if ((file = fopen(argv[2], "w")) == NULL) {
- perror("fopen");
- exit(1);
- }
-
- size = atoi(argv[1]);
- for (cp = argv[1]; *cp; cp++) {
- switch(*cp) {
- case 'k':
- case 'K':
- size *= 1024;
- break;
- case 'm':
- case 'M':
- size *= 1024*1024;
- break;
- }
- }
-
- for (i = 0; i < size; i++) {
- my_random = ((RANDOM() % 94) + 33);
- fputc((char)my_random, file);
- }
-
- fclose(file);
-}
diff --git a/apps/JAWS/clients/WebSTONE/src/get.c b/apps/JAWS/clients/WebSTONE/src/get.c
deleted file mode 100644
index 26b9bca4a1e..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/get.c
+++ /dev/null
@@ -1,317 +0,0 @@
-/**************************************************************************
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-/* THIS IS WHERE WE GO OUT AND FETCH A URL */
-
-#include <stdio.h>
-#include <errno.h>
-
-#ifndef WIN32
-#include <sys/types.h>
-#include <sys/errno.h>
-#include <sys/socket.h>
-#include <sys/param.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#endif /* WIN32 */
-
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#ifdef SUNOS
-#include <unistd.h>
-#endif
-#include <ctype.h>
-
-#ifdef WIN32
-#include <io.h>
-#include <windows.h>
-#include <winsock.h>
-#endif /* WIN32 */
-
-#include "sysdep.h"
-#include "bench.h"
-
-#define ACCEPT_COMMAND "Accept: */* HTTP/1.0\r\n\r\n"
-#define ACCEPT_COMMAND_LEN ((int)strlen(ACCEPT_COMMAND))
-#define MAXCOMMANDLEN 256
-#define HEADERBUFSIZ (8*1024)
-
-#define UPPER(c) (((c) >= 'a' && (c) <= 'z') ? (c) + 'A' - 'a' : (c))
-
-/* compare two strings with max length, ignoring case */
-int mystrincmp(const char *str1, const char *str2, int len) {
-register int diff;
-
- while (*str1 && *str2 && len--) {
- if (diff = UPPER(*str1) - UPPER(*str2))
- return diff < 0 ? -1 : 1;
- str1++;
- str2++;
- }
- return 0;
-}
-
-int
-get(char *loc, NETPORT port, char *url, rqst_timer_t *timer)
-{
- SOCKET sock = BADSOCKET_VALUE;
- int writelen;
- int bytesread;
- int totalbytesread;
- int headerlen;
- int bodylength;
- int contentlength = 0;
- int outputfile = -1;
- int status;
- char getcommand[MAXCOMMANDLEN];
- char headerbuffer[HEADERBUFSIZ+1];
- char *offset;
- char outputfilename[MAXPATHLEN];
- char version[100];
- int count;
-
-/*#define ABORTIVE_CLOSE 1*/
-#ifdef ABORTIVE_CLOSE
-#error don't enable this option
- struct linger {
- int l_onoff;
- int l_linger;
- } linger_opt;
-#endif /* ABORTIVE_CLOSE */
-
- /* can you really get an error from gettimeofday?? */
- if(GETTIMEOFDAY(&timer->entertime, &timer->entertimezone) != 0)
- {
- returnerr("Error retrieving entertime\n");
- goto error;
- }
- timer->valid = 1;
-
- if(GETTIMEOFDAY(&timer->beforeconnect, &timer->beforeconnectzone) != 0)
- {
- returnerr("Error retrieving beforeconnect\n");
- goto error;
- }
-
- sock = connectsock(loc, port, "tcp");
- if (BADSOCKET(sock))
- {
- D_PRINTF( "Call to connectsock returned %d (%s)\n", sock, neterrstr() );
- returnerr("Couldn't connect to WWW server: %s\n", neterrstr());
- goto error;
- }
-
-#ifdef ABORTIVE_CLOSE
-#error don't enable this option
- /* set up for abortive close */
- linger_opt.l_onoff = 1;
- linger_opt.l_linger = 0;
- if (setsockopt(sock, SOL_SOCKET, SO_LINGER,
- (char *) &linger_opt, sizeof(linger_opt)) < 0) {
- fprintf(stderr, "Can't set sockopt SO_LINGER");
- returnerr("Couldn't set SO_LINGER = 0\n");
- goto error;
- }
-#endif /* ABORTIVE_CLOSE */
-
- if(GETTIMEOFDAY(&timer->afterconnect, &timer->afterconnectzone) != 0)
- {
- NETCLOSE(sock);
- GETTIMEOFDAY(&timer->exittime, &timer->exittimezone);
- returnerr("Error retrieving afterconnect\n");
- goto error;
- }
-
- /*
- * SEND THE GET AND THE ACCEPT.
- */
- sprintf(getcommand, "GET %s HTTP/1.0\r\n%s", url,
- ACCEPT_COMMAND);
- D_PRINTF( "Writing to server: %s\n", getcommand );
- writelen = strlen(getcommand);
- status = NETWRITE(sock, getcommand, writelen);
- if(status != writelen)
- {
- returnerr("Error sending command line to server: %s\n",
- neterrstr());
- goto error;
- }
- /*
- * WE HAVE NOW SENT THE REQUEST SUCCESSFULLY.
- * WAIT FOR THE REPLY AND FIND THE HEADER
- */
-
- if(GETTIMEOFDAY(&timer->beforeheader, &timer->beforeheaderzone) != 0)
- {
- returnerr("Error retrieving beforeheader\n");
- goto error;
- }
-
- /* read the header and part of the file */
- totalbytesread = 0;
- headerlen = 0;
- while (totalbytesread < HEADERBUFSIZ)
- {
- bytesread = NETREAD(sock, headerbuffer+totalbytesread, HEADERBUFSIZ-totalbytesread);
- if (BADSOCKET(bytesread))
- {
- D_PRINTF( "Did not receive full header\n" );
- D_PRINTF( "NETREAD returned %d\n", bytesread );
- returnerr("Did not receive full header: %s\n",
- neterrstr());
- goto error;
- }
- totalbytesread += bytesread;
-
- /* search for end of header */
- headerbuffer[totalbytesread] = 0;
- if (offset = strstr(headerbuffer, "\n\n")) {
- headerlen = offset - headerbuffer + 2;
- break;
- } else if (offset = strstr(headerbuffer, "\n\r\n")) {
- headerlen = offset - headerbuffer + 3;
- break;
- }
- }
-
- if (headerlen == 0) {
- returnerr("Can't find the end of the header in \"%s\"\n", headerbuffer);
- goto error;
- }
-
- /* get and check status code from the first line of the header */
- count = sscanf(headerbuffer, "HTTP/%s %d", version, &status);
- if (count != 2) {
- returnerr("Bad status line in get(): %s\n", headerbuffer);
- goto error;
- }
- if (status < 200 || status > 300) {
- returnerr("Bad status (%d) in get() for url %s\n", status, url);
- goto error;
- }
-
- /* get the content length line from the header */
- offset = headerbuffer;
- while (offset < headerbuffer+headerlen && *offset) {
- if (*offset++ != '\n')
- continue;
-
- if (mystrincmp(offset, CONTENT_LENGTH_STRING, strlen(CONTENT_LENGTH_STRING)) == 0) {
- sscanf(offset+strlen(CONTENT_LENGTH_STRING), "%d", &contentlength);
- D_PRINTF( "Content-Length: %d\n", contentlength );
- }
- }
-
- if(GETTIMEOFDAY(&timer->afterheader, &timer->afterheaderzone) != 0)
- {
- returnerr("Error retrieving afterheader\n");
- goto error;
- }
-
- if(savefile)
- {
- sprintf(outputfilename,"/tmp/webstone.data.%d", (int)getpid());
- if((outputfile = open(outputfilename,(O_WRONLY|O_CREAT),0777)) < 0)
- {
- D_PRINTF( "outputfile %d %d\n", outputfile, errno );
- returnerr("Error saving file: %s\n", strerror(errno));
- goto error;
- }
- lseek(outputfile,1,SEEK_END); /* this is odd... JEF */
-
- /* if we have part of the file already, save that part */
- if(totalbytesread > headerlen)
- {
- write(outputfile, headerbuffer+headerlen, totalbytesread-headerlen);
- }
- }
-
- /* read the body of the file */
- do
- {
- bytesread = NETREAD(sock, headerbuffer, HEADERBUFSIZ);
- D_PRINTF( "Read %d bytes from socket %d\n", bytesread, sock );
-
- if (BADSOCKET(bytesread))
- {
- D_PRINTF( "Read returns %d, error: %s\n", bytesread,
- neterrstr() );
- returnerr("Error during read of page body. Read "
- "returns %d on socket %d, error: %s\n",
- bytesread, sock, neterrstr());
- goto error;
- }
-
- totalbytesread += bytesread;
-
- if (outputfile != -1 && bytesread)
- {
- write(outputfile, headerbuffer, bytesread);
- }
-
- } while (bytesread);
-
- /* done reading body */
- if ( contentlength && (totalbytesread - headerlen) != contentlength)
- {
- D_PRINTF( "Warning: file length (%d) doesn't match Content-length (%d)\n",
- totalbytesread - headerlen, contentlength);
- }
-
- bodylength = totalbytesread - headerlen;
-
- if(GETTIMEOFDAY(&timer->afterbody, &timer->afterbodyzone) != 0)
- {
- returnerr("Error retrieving afterbody\n");
- goto error;
- }
-
- NETCLOSE(sock);
- if (outputfile != -1)
- {
- close(outputfile);
- }
-
- D_PRINTF( "Read %d bytes, %d of that being body\n",
- totalbytesread, bodylength );
-
- if(GETTIMEOFDAY(&timer->exittime, &timer->exittimezone) != 0)
- {
- D_PRINTF( "Error retrieving exit time: %s\n", strerror(errno) );
- returnerr("Error retrieving exit time\n");
- goto error;
- }
- timer->valid = 2;
- timer->totalbytes = totalbytesread;
- timer->bodybytes = bodylength;
-
- D_PRINTF( "get returning totalbytes %d body %d valid %d\n",
- timer->totalbytes, timer->bodybytes, timer->valid );
-
- D_PRINTF( "get returning start %d, end %d\n",
- timer->entertime.tv_sec, timer->exittime.tv_sec );
-
- D_PRINTF( "get returning connect %d, request %d, header %d, body %d\n",
- timer->afterconnect.tv_sec, timer->beforeheader.tv_sec,
- timer->afterheader.tv_sec, timer->afterbody.tv_sec );
-
- return 0;
-
-error:
- if (!BADSOCKET(sock))
- NETCLOSE(sock);
- if (outputfile != -1)
- close(outputfile);
- GETTIMEOFDAY(&timer->exittime, &timer->exittimezone); /* needed? */
- return -1;
-}
diff --git a/apps/JAWS/clients/WebSTONE/src/get.h b/apps/JAWS/clients/WebSTONE/src/get.h
deleted file mode 100644
index 0b254d1519a..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/get.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __GET_H__
-#define __GET_H__
-/**************************************************************************
- $Header$
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs where *
- * deveolped by SGI for public use. If anychanges are made to this code *
- * please try to get the changes back to the author. Feel free to make *
- * modfications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-extern int get(char *loc, int port, char *url, rqst_timer_t *timer);
-
-#endif /* !__GET_H__ */
diff --git a/apps/JAWS/clients/WebSTONE/src/getopt.c b/apps/JAWS/clients/WebSTONE/src/getopt.c
deleted file mode 100644
index db2b6c6b91f..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/getopt.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* this is a public domain version of getopt */
-/* FTP Site: ftp.uu.net/pub/OS/unix/bsd-sources/lib/librpc/etc/getopt.c */
-
-#include <stdio.h>
-#include <string.h>
-
-#define MYNULL 0
-#define ERR(s, c) if(opterr){\
- extern size_t strlen();\
- extern int write();\
- char errbuf[2];\
- errbuf[0] = c; errbuf[1] = '\n';\
- (void) write(2, argv[0], strlen(argv[0]));\
- (void) write(2, s, strlen(s));\
- (void) write(2, errbuf, 2);}
-
-int opterr = 1;
-int optind = 1;
-int optopt;
-char *optarg;
-
-int
-getopt(argc, argv, opts)
-int argc;
-char **argv, *opts;
-{
- static int sp = 1;
- register int c;
- register char *cp;
-
- if(sp == 1)
- if(optind >= argc ||
- argv[optind][0] != '-' || argv[optind][1] == '\0')
- return(EOF);
- else if(strcmp(argv[optind], "--") == MYNULL) {
- optind++;
- return(EOF);
- }
- optopt = c = argv[optind][sp];
- if(c == ':' || (cp=strchr(opts, c)) == NULL) {
- ERR(": unknown option, -", c);
- if(argv[optind][++sp] == '\0') {
- optind++;
- sp = 1;
- }
- return('?');
- }
- if(*++cp == ':') {
- if(argv[optind][sp+1] != '\0')
- optarg = &argv[optind++][sp+1];
- else if(++optind >= argc) {
- ERR(": argument missing for -", c);
- sp = 1;
- return('?');
- } else
- optarg = argv[optind++];
- sp = 1;
- } else {
- if(argv[optind][++sp] == '\0') {
- sp = 1;
- optind++;
- }
- optarg = NULL;
- }
- return(c);
-}
diff --git a/apps/JAWS/clients/WebSTONE/src/gettimeofday.c b/apps/JAWS/clients/WebSTONE/src/gettimeofday.c
deleted file mode 100644
index 7d5614b8189..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/gettimeofday.c
+++ /dev/null
@@ -1,56 +0,0 @@
-
-/*
- * This file defines functions that are required for unix compatibility.
- *
- * These functions are not available in the Microsoft C/C++ Run Time
- * and the Win32 API.
- *
- * The following functions list may not be complete
- *
- * FUNCTIONS:
- * SHARED _gettimeofday
- *
- */
-
-
-#include <windows.h>
-#include <errno.h>
-#include <winsock.h> /* For definition of "timeval" structure */
-#include <sys/timeb.h> /* For prototype of "_ftime()" */
-
-
-/*
- * gettimeofday() -- gets the current time in elapsed seconds and
- * microsends since GMT Jan 1, 1970.
- *
- * ARGUMENTS: - Pointer to a timeval struct to return the time into
- *
- * RETURN CODES: - 0 on success
- * -1 on failure
- */
-int gettimeofday(curTimeP)
- struct timeval *curTimeP;
-{
-struct _timeb localTime;
-
- if (curTimeP == (struct timeval *) NULL) {
- errno = EFAULT;
- return (-1);
- }
-
- /*
- * Compute the elapsed time since Jan 1, 1970 by first
- * obtaining the elapsed time from the system using the
- * _ftime(..) call and then convert to the "timeval"
- * equivalent.
- */
-
- _ftime(&localTime);
-
- curTimeP->tv_sec = localTime.time + localTime.timezone;
- curTimeP->tv_usec = localTime.millitm * 1000;
-
- return(0);
-}
-
-
diff --git a/apps/JAWS/clients/WebSTONE/src/install-sh b/apps/JAWS/clients/WebSTONE/src/install-sh
deleted file mode 100755
index 89fc9b098b8..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/install-sh
+++ /dev/null
@@ -1,238 +0,0 @@
-#! /bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.
-#
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-tranformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd="$cpprog"
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd="$stripprog"
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "install: no input file specified"
- exit 1
-else
- true
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d $dst ]; then
- instcmd=:
- else
- instcmd=mkdir
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f $src -o -d $src ]
- then
- true
- else
- echo "install: $src does not exist"
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "install: no destination specified"
- exit 1
- else
- true
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d $dst ]
- then
- dst="$dst"/`basename $src`
- else
- true
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp="${pathcomp}${1}"
- shift
-
- if [ ! -d "${pathcomp}" ] ;
- then
- $mkdirprog "${pathcomp}"
- else
- true
- fi
-
- pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd $dst &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename $dst`
- else
- dstfile=`basename $dst $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename $dst`
- else
- true
- fi
-
-# Make a temp file name in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd $src $dsttmp &&
-
- trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
- $doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
-
-fi &&
-
-
-exit 0
diff --git a/apps/JAWS/clients/WebSTONE/src/logfile27859 b/apps/JAWS/clients/WebSTONE/src/logfile27859
deleted file mode 100644
index a65984d6f9a..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/logfile27859
+++ /dev/null
@@ -1,9 +0,0 @@
- entertime 867794927.279188
- beforeconnect 867794927.279189
- afterconnect 867794927.280504
- beforeheader 867794927.280604
- afterheader 867794927.299170
- afterbody 867794932.215967
- exittime 867794932.216306
- total bytes 5243057
- body bytes 5242880
diff --git a/apps/JAWS/clients/WebSTONE/src/master/webmaster.mak b/apps/JAWS/clients/WebSTONE/src/master/webmaster.mak
deleted file mode 100755
index 354ce87ee86..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/master/webmaster.mak
+++ /dev/null
@@ -1,476 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-!IF "$(CFG)" == ""
-CFG=Webmaster - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to Webmaster - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "Webmaster - Win32 Release" && "$(CFG)" !=\
- "Webmaster - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "webmaster.mak" CFG="Webmaster - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Webmaster - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "Webmaster - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "Webmaster - Win32 Debug"
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "Webmaster - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "WinRel"
-# PROP BASE Intermediate_Dir "WinRel"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "WinRel"
-# PROP Intermediate_Dir "WinRel"
-OUTDIR=.\WinRel
-INTDIR=.\WinRel
-
-ALL : "$(OUTDIR)\webmaster.exe" "$(OUTDIR)\webmaster.bsc"
-
-CLEAN :
- -@erase "$(INTDIR)\bench.obj"
- -@erase "$(INTDIR)\bench.sbr"
- -@erase "$(INTDIR)\errexit.obj"
- -@erase "$(INTDIR)\errexit.sbr"
- -@erase "$(INTDIR)\getopt.obj"
- -@erase "$(INTDIR)\getopt.sbr"
- -@erase "$(INTDIR)\gettimeofday.obj"
- -@erase "$(INTDIR)\gettimeofday.sbr"
- -@erase "$(INTDIR)\parse_file_list.obj"
- -@erase "$(INTDIR)\parse_file_list.sbr"
- -@erase "$(INTDIR)\rexec.obj"
- -@erase "$(INTDIR)\rexec.sbr"
- -@erase "$(INTDIR)\statistics.obj"
- -@erase "$(INTDIR)\statistics.sbr"
- -@erase "$(INTDIR)\sysdep.obj"
- -@erase "$(INTDIR)\sysdep.sbr"
- -@erase "$(INTDIR)\timefunc.obj"
- -@erase "$(INTDIR)\timefunc.sbr"
- -@erase "$(INTDIR)\webmaster.obj"
- -@erase "$(INTDIR)\webmaster.sbr"
- -@erase "$(OUTDIR)\webmaster.bsc"
- -@erase "$(OUTDIR)\webmaster.exe"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /FR /YX /c
-# ADD CPP /nologo /MTd /W3 /GX /O2 /I "WIN32" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /FR /YX /c
-CPP_PROJ=/nologo /MTd /W3 /GX /O2 /I "WIN32" /D "WIN32" /D "NDEBUG" /D\
- "_CONSOLE" /FR"$(INTDIR)/" /Fp"$(INTDIR)/webmaster.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\WinRel/
-CPP_SBRS=.\WinRel/
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/webmaster.bsc"
-BSC32_SBRS= \
- "$(INTDIR)\bench.sbr" \
- "$(INTDIR)\errexit.sbr" \
- "$(INTDIR)\getopt.sbr" \
- "$(INTDIR)\gettimeofday.sbr" \
- "$(INTDIR)\parse_file_list.sbr" \
- "$(INTDIR)\rexec.sbr" \
- "$(INTDIR)\statistics.sbr" \
- "$(INTDIR)\sysdep.sbr" \
- "$(INTDIR)\timefunc.sbr" \
- "$(INTDIR)\webmaster.sbr"
-
-"$(OUTDIR)\webmaster.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
- $(BSC32) @<<
- $(BSC32_FLAGS) $(BSC32_SBRS)
-<<
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-LINK32_FLAGS=wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no\
- /pdb:"$(OUTDIR)/webmaster.pdb" /machine:I386 /out:"$(OUTDIR)/webmaster.exe"
-LINK32_OBJS= \
- "$(INTDIR)\bench.obj" \
- "$(INTDIR)\errexit.obj" \
- "$(INTDIR)\getopt.obj" \
- "$(INTDIR)\gettimeofday.obj" \
- "$(INTDIR)\parse_file_list.obj" \
- "$(INTDIR)\rexec.obj" \
- "$(INTDIR)\statistics.obj" \
- "$(INTDIR)\sysdep.obj" \
- "$(INTDIR)\timefunc.obj" \
- "$(INTDIR)\webmaster.obj"
-
-"$(OUTDIR)\webmaster.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "Webmaster - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "WinDebug"
-# PROP BASE Intermediate_Dir "WinDebug"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "WinDebug"
-# PROP Intermediate_Dir "WinDebug"
-OUTDIR=.\WinDebug
-INTDIR=.\WinDebug
-
-ALL : "$(OUTDIR)\webmaster.exe" "$(OUTDIR)\webmaster.bsc"
-
-CLEAN :
- -@erase "$(INTDIR)\bench.obj"
- -@erase "$(INTDIR)\bench.sbr"
- -@erase "$(INTDIR)\errexit.obj"
- -@erase "$(INTDIR)\errexit.sbr"
- -@erase "$(INTDIR)\getopt.obj"
- -@erase "$(INTDIR)\getopt.sbr"
- -@erase "$(INTDIR)\gettimeofday.obj"
- -@erase "$(INTDIR)\gettimeofday.sbr"
- -@erase "$(INTDIR)\parse_file_list.obj"
- -@erase "$(INTDIR)\parse_file_list.sbr"
- -@erase "$(INTDIR)\rexec.obj"
- -@erase "$(INTDIR)\rexec.sbr"
- -@erase "$(INTDIR)\statistics.obj"
- -@erase "$(INTDIR)\statistics.sbr"
- -@erase "$(INTDIR)\sysdep.obj"
- -@erase "$(INTDIR)\sysdep.sbr"
- -@erase "$(INTDIR)\timefunc.obj"
- -@erase "$(INTDIR)\timefunc.sbr"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(INTDIR)\webmaster.obj"
- -@erase "$(INTDIR)\webmaster.sbr"
- -@erase "$(OUTDIR)\webmaster.bsc"
- -@erase "$(OUTDIR)\webmaster.exe"
- -@erase "$(OUTDIR)\webmaster.ilk"
- -@erase "$(OUTDIR)\webmaster.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-# ADD BASE CPP /nologo /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /FR /YX /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "WIN32" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /FR /YX /c
-CPP_PROJ=/nologo /MTd /W3 /Gm /GX /Zi /Od /I "WIN32" /D "WIN32" /D "_DEBUG" /D\
- "_CONSOLE" /FR"$(INTDIR)/" /Fp"$(INTDIR)/webmaster.pch" /YX /Fo"$(INTDIR)/"\
- /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\WinDebug/
-CPP_SBRS=.\WinDebug/
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/webmaster.bsc"
-BSC32_SBRS= \
- "$(INTDIR)\bench.sbr" \
- "$(INTDIR)\errexit.sbr" \
- "$(INTDIR)\getopt.sbr" \
- "$(INTDIR)\gettimeofday.sbr" \
- "$(INTDIR)\parse_file_list.sbr" \
- "$(INTDIR)\rexec.sbr" \
- "$(INTDIR)\statistics.sbr" \
- "$(INTDIR)\sysdep.sbr" \
- "$(INTDIR)\timefunc.sbr" \
- "$(INTDIR)\webmaster.sbr"
-
-"$(OUTDIR)\webmaster.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
- $(BSC32) @<<
- $(BSC32_FLAGS) $(BSC32_SBRS)
-<<
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# SUBTRACT LINK32 /pdb:none
-LINK32_FLAGS=wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes\
- /pdb:"$(OUTDIR)/webmaster.pdb" /debug /machine:I386\
- /out:"$(OUTDIR)/webmaster.exe"
-LINK32_OBJS= \
- "$(INTDIR)\bench.obj" \
- "$(INTDIR)\errexit.obj" \
- "$(INTDIR)\getopt.obj" \
- "$(INTDIR)\gettimeofday.obj" \
- "$(INTDIR)\parse_file_list.obj" \
- "$(INTDIR)\rexec.obj" \
- "$(INTDIR)\statistics.obj" \
- "$(INTDIR)\sysdep.obj" \
- "$(INTDIR)\timefunc.obj" \
- "$(INTDIR)\webmaster.obj"
-
-"$(OUTDIR)\webmaster.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-################################################################################
-# Begin Target
-
-# Name "Webmaster - Win32 Release"
-# Name "Webmaster - Win32 Debug"
-
-!IF "$(CFG)" == "Webmaster - Win32 Release"
-
-!ELSEIF "$(CFG)" == "Webmaster - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Source File
-
-SOURCE=..\bench.c
-DEP_CPP_BENCH=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\bench.obj" : $(SOURCE) $(DEP_CPP_BENCH) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\bench.sbr" : $(SOURCE) $(DEP_CPP_BENCH) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\errexit.c
-DEP_CPP_ERREX=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\errexit.obj" : $(SOURCE) $(DEP_CPP_ERREX) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\errexit.sbr" : $(SOURCE) $(DEP_CPP_ERREX) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\webmaster.c
-DEP_CPP_WEBMA=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\webmaster.obj" : $(SOURCE) $(DEP_CPP_WEBMA) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\webmaster.sbr" : $(SOURCE) $(DEP_CPP_WEBMA) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\timefunc.c
-DEP_CPP_TIMEF=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\timefunc.obj" : $(SOURCE) $(DEP_CPP_TIMEF) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\timefunc.sbr" : $(SOURCE) $(DEP_CPP_TIMEF) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\sysdep.c
-DEP_CPP_SYSDE=\
- "..\config.h"\
- "..\sysdep.h"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\sysdep.obj" : $(SOURCE) $(DEP_CPP_SYSDE) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\sysdep.sbr" : $(SOURCE) $(DEP_CPP_SYSDE) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\statistics.c
-DEP_CPP_STATI=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\statistics.obj" : $(SOURCE) $(DEP_CPP_STATI) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\statistics.sbr" : $(SOURCE) $(DEP_CPP_STATI) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\rexec.c
-DEP_CPP_REXEC=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\rexec.obj" : $(SOURCE) $(DEP_CPP_REXEC) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\rexec.sbr" : $(SOURCE) $(DEP_CPP_REXEC) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\getopt.c
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\getopt.obj" : $(SOURCE) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\getopt.sbr" : $(SOURCE) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=\nanbor\ACE_wrappers\apps\JAWS\clients\WebSTONE\src\parse_file_list.c
-DEP_CPP_PARSE=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\parse_file_list.obj" : $(SOURCE) $(DEP_CPP_PARSE) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\parse_file_list.sbr" : $(SOURCE) $(DEP_CPP_PARSE) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=\nanbor\ACE_wrappers\apps\JAWS\clients\WebSTONE\src\gettimeofday.c
-DEP_CPP_GETTI=\
- {$(INCLUDE)}"\sys\timeb.h"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\gettimeofday.obj" : $(SOURCE) $(DEP_CPP_GETTI) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\gettimeofday.sbr" : $(SOURCE) $(DEP_CPP_GETTI) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/buffer.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/buffer.h
deleted file mode 100644
index 8f368ed1525..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/buffer.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * buffer.h: For performing buffered I/O on a file or socket descriptor.
- *
- * This is an abstraction to allow I/O to be performed regardless of the
- * current system. That way, an integer file descriptor can be used under
- * UNIX but a stdio FILE structure could be used on systems which don't
- * support that or don't support it as efficiently.
- *
- * Two abstractions are defined: A file buffer, and a network buffer. A
- * distinction is made so that mmap() can be used on files (but is not
- * required). Also, the file buffer takes a file name as the object to
- * open instead of a file descriptor. A lot of the network buffering
- * is almost an exact duplicate of the non-mmap file buffering.
- *
- * If an error occurs, system-independent means to obtain an error string
- * are also provided. However, if the underlying system is UNIX the error
- * may not be accurate in a threaded environment.
- *
- * Rob McCool
- *
- */
-
-
-#ifndef BUFFER_H
-#define BUFFER_H
-
-#ifdef XP_WIN32
-#include <nt/ntbuffer.h>
-#else
-
-
-/*
- * We need certain system specific functions and symbols.
- */
-
-#include "file.h"
-#include "net.h"
-
-/*
- * Requires that the macro MALLOC be set to a "safe" malloc that will
- * exit if no memory is available. If not under MCC httpd, define MALLOC
- * to be the real malloc and play with fire, or make your own function.
- */
-
-#include "../netsite.h"
-
-#ifdef FILE_UNIX_MMAP
-#include <sys/types.h> /* caddr_t */
-#endif
-
-
-/* ------------------------------ Structures ------------------------------ */
-
-#ifdef FILE_UNIX_MMAP
-typedef struct {
- SYS_FILE fd;
- caddr_t fp;
- int len;
-
- char *inbuf; /* for buffer_grab */
- int cursize;
-
- int pos;
- char *errmsg;
-} filebuf;
-
-#else
-
-typedef struct {
- SYS_FILE fd;
-
- int pos, cursize, maxsize;
- char *inbuf;
- char *errmsg;
-} filebuf;
-
-#endif
-
-typedef struct {
- SYS_NETFD sd;
-
- int pos, cursize, maxsize, rdtimeout;
- char *inbuf;
- char *errmsg;
-} netbuf;
-
-
-/* -------------------------------- Macros -------------------------------- */
-
-
-/*
- * netbuf_getc gets a character from the given network buffer and returns
- * it. (as an integer).
- *
- * It will return (int) IO_ERROR for an error and (int) IO_EOF for
- * an error condition or EOF respectively.
- */
-
-#define netbuf_getc(b) \
- ((b)->pos != (b)->cursize ? (int)((b)->inbuf[(b)->pos++]) : netbuf_next(b,1))
-
-#ifdef FILE_UNIX_MMAP
-#define filebuf_getc(b) ((b)->pos == (b)->len ? IO_EOF : (b)->fp[(b)->pos++])
-#else
-#define filebuf_getc(b) \
- ((b)->pos != (b)->cursize ? (int)((b)->inbuf[(b)->pos++]) : filebuf_next(b,1))
-#endif
-
-
-/*
- * buffer_error returns the last error that occurred with buffer. Don't use
- * this unless you know an error occurred. Independent of network/file type.
- */
-
-#define buffer_error(b) ((b)->errmsg)
-
-/*
- * buffer_flush flushes any data after the current pos to the file
- * descriptor fd. Regardless of buffer type.
- */
-
-#define buffer_flush(buf,fd) \
- system_write(fd,&(buf)->inbuf[(buf)->pos], (buf)->cursize - (buf)->pos)
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * buffer_open opens a new buffer reading the specified file, with an I/O
- * buffer of size sz, and returns a new buffer structure which will hold
- * the data.
- *
- * If FILE_UNIX_MMAP is defined, this may return NULL. If it does, check
- * system_errmsg to get a message about the error.
- */
-
-filebuf *filebuf_open(SYS_FILE fd, int sz);
-netbuf *netbuf_open(SYS_NETFD sd, int sz);
-
-/*
- * filebuf_open_nostat is a convenience function for mmap() buffer opens,
- * if you happen to have the stat structure already.
- */
-
-#ifdef FILE_UNIX_MMAP
-#include <sys/stat.h>
-filebuf *filebuf_open_nostat(SYS_FILE fd, int sz, struct stat *finfo);
-
-#else
-#define filebuf_open_nostat(fd,sz,finfo) filebuf_open(fd,sz)
-#endif
-
-/*
- * buffer_next loads size more bytes into the given buffer and returns the
- * first one, or BUFFER_EOF on EOF and BUFFER_ERROR on error.
- */
-
-int filebuf_next(filebuf *buf, int advance);
-int netbuf_next(netbuf *buf, int advance);
-
-/*
- * buffer_close deallocates a buffer and closes its associated files
- * (does not close a network socket).
- */
-
-void filebuf_close(filebuf *buf);
-void netbuf_close(netbuf *buf);
-
-/*
- * buffer_grab will set the buffer's inbuf array to an array of sz bytes
- * from the buffer's associated object. It returns the number of bytes
- * actually read (between 1 and sz). It returns IO_EOF upon EOF or IO_ERROR
- * upon error. The cursize entry of the structure will reflect the size
- * of the iobuf array.
- *
- * The buffer will take care of allocation and deallocation of this array.
- */
-
-int filebuf_grab(filebuf *buf, int sz);
-int netbuf_grab(netbuf *buf, int sz);
-
-
-/*
- * netbuf_buf2sd will send n bytes from the (probably previously read)
- * buffer and send them to sd. If sd is -1, they are discarded. If n is
- * -1, it will continue until EOF is recieved. Returns IO_ERROR on error
- * and the number of bytes sent any other time.
- */
-
-int netbuf_buf2sd(netbuf *buf, SYS_NETFD sd, int len);
-
-/*
- * filebuf_buf2sd assumes that nothing has been read from the filebuf,
- * and just sends the file out to the given socket. Returns IO_ERROR on error
- * and the number of bytes sent otherwise.
- *
- * Does not currently support you having read from the buffer previously. This
- * can be changed transparently.
- */
-
-int filebuf_buf2sd(filebuf *buf, SYS_NETFD sd);
-
-#endif
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/cinfo.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/cinfo.h
deleted file mode 100644
index 6cfdbd6c2c6..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/cinfo.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * cinfo.h: Content Information for a file, i.e. its type, etc.
- *
- * See cinfo.c for dependency information.
- *
- * Rob McCool
- */
-
-
-
-#ifndef CINFO_H
-#define CINFO_H
-
-
-
-/* ------------------------------ Constants ------------------------------- */
-
-
-/*
- * This will be the first string in the file, followed by x.x version
- * where x is an integer.
- *
- * Updated due to trendy name change
- */
-
-#define MCC_MT_MAGIC "#--Mosaic Communications Corporation MIME Information"
-#define MCC_MT_MAGIC_LEN 53
-#define NCC_MT_MAGIC "#--Netscape Communications Corporation MIME Information"
-#define NCC_MT_MAGIC_LEN 55
-
-/* The character which separates extensions with cinfo_find */
-
-#define CINFO_SEPARATOR '.'
-
-/* The maximum length of a line in this file */
-
-#define CINFO_MAX_LEN 1024
-
-/* The hash function for the database. Hashed on extension. */
-#include <ctype.h>
-#define CINFO_HASH(s) (isalpha(s[0]) ? tolower(s[0]) - 'a' : 26)
-
-/* The hash table size for that function */
-#define CINFO_HASHSIZE 27
-
-
-/* ------------------------------ Structures ------------------------------ */
-
-
-/*
- * The ContentInfo structure.
- *
- * Currently, we support the following attributes:
- *
- * 1. Type: This identifies what kind of data is in the file.
- * 2. Encoding: Identifies any compression or otherwise content-independent
- * transformation which has been applied to the file (uuencode, etc.)
- * 3. Language: Identifies the language a text document is in.
- * 4. Description: A text string describing the file.
- * 5. Viewer: The program to use to view the file.
- *
- * Multiple items are separated with a comma, e.g.
- * encoding="x-gzip, x-uuencode"
- */
-
-typedef struct {
- char *type;
- char *encoding;
- char *language;
-} cinfo;
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * cinfo_init initializes the content info system. Call this before
- * cinfo_merge.
- */
-
-void cinfo_init(void);
-
-/*
- * cinfo_terminate frees the database for shutdown.
- */
-
-void cinfo_terminate(void);
-
-/*
- * cinfo_merge merges the contents of the given filename with the current
- * cinfo database. It returns NULL upon success and a string (which you
- * must deallocate) upon error.
- */
-
-char *cinfo_merge(char *fn);
-
-
-/*
- * cinfo_find finds any content information for the given uri. The file name
- * is the string following the last / in the uri. Multiple extensions are
- * separated by CINFO_SEPARATOR. You may pass in a filename instead of uri.
- *
- * Returns a newly allocated cinfo structure with the information it
- * finds. The elements of this structure are coming right out of the types
- * database and so if you change it or want to keep it around for long you
- * should strdup it. You should free only the structure itself when finished
- * with it.
- *
- * If there is no information for any one of the extensions it
- * finds, it will ignore that extension. If it cannot find information for
- * any of the extensions, it will return NULL.
- */
-
-cinfo *cinfo_find(char *uri);
-
-/*
- * cinfo_lookup finds the information about the given content-type, and
- * returns a cinfo structure so you can look up description and icon.
- */
-
-cinfo *cinfo_lookup(char *type);
-
-/*
- * cinfo_dump_database dumps the current database to the given file desc.
- */
-
-#include <stdio.h>
-void cinfo_dump_database(FILE *dump);
-
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/crit.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/crit.h
deleted file mode 100644
index 5ed576edb57..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/crit.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * crit.h: Critical section abstraction. Used in threaded servers to protect
- * areas where two threads can interfere with each other.
- *
- * Condvars are condition variables that are used for thread-thread
- * synchronization.
- *
- * Rob McCool
- */
-
-#ifndef CRIT_H
-#define CRIT_H
-
-
-#ifdef USE_NSPR
-#include <nspr/prmon.h>
-typedef PRMonitor* CRITICAL;
-#else
-typedef void *CRITICAL;
-#endif
-
-/*
- * crit_init creates and returns a new critical section variable. At the
- * time of creation no one has entered it.
- */
-#ifdef USE_NSPR
-#define crit_init() PR_NewMonitor(0)
-#else
-#define crit_init() (NULL)
-#endif
-
-/*
- * crit_enter enters a critical section. If someone is already in the
- * section, the calling thread is blocked until that thread exits.
- */
-#ifdef USE_NSPR
-#define crit_enter(id) PR_EnterMonitor(id)
-#else
-#define crit_enter(id) (0)
-#endif
-
-/*
- * crit_exit exits a critical section. If another thread is blocked waiting
- * to enter, it will be unblocked and given ownership of the section.
- */
-#ifdef USE_NSPR
-#define crit_exit(id) PR_ExitMonitor(id)
-#else
-#define crit_exit(id) (0)
-#endif
-
-/*
- * crit_terminate removes a previously allocated critical section variable.
- */
-#ifdef USE_NSPR
-#define crit_terminate(id) PR_DestroyMonitor(id)
-#else
-#define crit_terminate(id) (0)
-#endif
-
-
-#ifdef USE_NSPR
-typedef PRMonitor* CONDVAR;
-#else
-typedef void* CONDVAR;
-#endif
-
-/*
- * condvar_init initializes and returns a new condition variable. You
- * must provide a critical section to be associated with this condition
- * variable.
- */
-#ifdef USE_NSPR
-#define condvar_init(crit) (crit)
-#else
-#define condvar_init(crit) (crit)
-#endif
-
-/*
- * condvar_wait blocks on the given condition variable. The calling thread
- * will be blocked until another thread calls condvar_notify on this variable.
- * The caller must have entered the critical section associated with this
- * condition variable prior to waiting for it.
- */
-#ifdef USE_NSPR
-#define condvar_wait(cv) (PR_Wait(cv, LL_MAXINT))
-#else
-#define condvar_wait(cv) (0)
-#endif
-
-/*
- * condvar_notify awakens any threads blocked on the given condition
- * variable. The caller must have entered the critical section associated
- * with this variable first.
- */
-#ifdef USE_NSPR
-#define condvar_notify(cv) (PR_Notify(cv))
-#else
-#define condvar_notify(cv) (0)
-#endif
-
-/*
- * condvar_terminate frees the given previously allocated condition variable
- */
-#ifdef USE_NSPR
-#define condvar_terminate(cv) (0)
-#else
-#define condvar_terminate(cv) (0)
-#endif
-
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/daemon.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/daemon.h
deleted file mode 100644
index d3846b6de8b..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/daemon.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * daemon.h: Things related to the accepting connections
- *
- * Rob McCool
- */
-
-
-#ifndef DAEMON_H
-#define DAEMON_H
-
-#ifdef XP_WIN32
-#include <nt/ntdaemon.h>
-#else
-
-#include "net.h"
-#include "session.h"
-
-#include <pwd.h> /* struct passwd */
-
-
-/* ------------------------------- Defines -------------------------------- */
-
-
-#define child_exit exit
-
-
-/* Codes for child_status */
-#define CHILD_EMPTY_SLOT 0xfe
-#define CHILD_AWAIT_CONNECT 0xff
-#define CHILD_PROCESSING 0x00
-#define CHILD_READING 0x01
-#define CHILD_WRITING 0x02
-#define CHILD_RESOLVING 0x03
-
-
-typedef struct {
- char *ipstr;
- int port;
- struct passwd *pw;
- char *chr;
- char *pidfn;
- void (*rcback)(int);
-#if defined(DAEMON_UNIX_POOL) || defined(DAEMON_UNIX_MOBRULE)
- int maxprocs, minprocs, proclife;
-#endif
-#ifdef NET_SSL
- char *secure_keyfn;
- char *secure_certfn;
- char *secure_dongle;
- int secure_auth;
- int secure_session_timeout;
- int security;
-#endif
-} daemon_s;
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-#ifdef MCC_PROXY
-/* A unique serial number assigned to each child. */
-extern int child_serial;
-#endif
-
-/*
- * daemon_run accepts whether or not it should detach from its parent process,
- * and a daemon structure as its arguments. The daemon structure contains
- * a port number, a root directory to chroot to (can be NULL), a filename to
- * log the daemon pid to (can be NULL). daemon_run never returns.
- *
- * child_callback is a function which will be called every time a new
- * connection is recieved. Session is a new session ID.
- *
- * rcback is a function which is a restart function: When SIGHUP is received,
- * this function will be called. You may give SIG_DFL if you don't want to
- * support restarting. The rcback will be passed SIGHUP.
- *
- * pw is the passwd entry to run the daemon as. If the effective user id is
- * root, daemon_run will try to set its uid and gid to the user pointed
- * to by this structure. You may pass NULL.
- */
-
-void daemon_run(int det, void (*child_callback)(Session *), daemon_s *d);
-
-/*
- * fork is a wrapper for the system's fork function. This closes the listen
- * socket for the mob. This also makes sure that a threaded daemon only gets
- * the calling thread and not all of them.
- */
-
-pid_t child_fork(void);
-
-
-/*
- * Set status to the given code for statistics reporting
- */
-
-#ifdef DAEMON_STATS
-void child_status(int code);
-#else
-#define child_status(code) (void)(code)
-#endif
-
-
-#endif
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/dll.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/dll.h
deleted file mode 100644
index 65ba77dd0e7..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/dll.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * dll.h: Handle dynamically linked libraries
- *
- * Rob McCool
- */
-
-#ifndef _DLL_H
-#define _DLL_H
-
-#include "systems.h"
-
-#if defined(DLL_CAPABLE)
-
-/* --------------------------- Data structures ---------------------------- */
-
-
-#if defined(USE_NSPR)
-#include <nspr/prlink.h>
-typedef int DLHANDLE;
-
-#elif defined(DLL_DLOPEN)
-#include <dlfcn.h>
-typedef void *DLHANDLE; /* DLOPEN */
-
-#elif defined(DLL_HPSHL)
-#include <dl.h>
-typedef shl_t DLHANDLE; /* HP_SHL */
-
-#elif defined(DLL_WIN32)
-typedef HINSTANCE DLHANDLE; /* WIN32 */
-#endif
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * dll_open loads the library at the given path into memory, and returns
- * a handle to be used in later calls to dll_findsym and dll_close.
- */
-#if defined(USE_NSPR)
-#define dll_open(libfn) PR_LoadLibrary(libfn)
-
-#elif defined(DLL_DLOPEN)
-#define dll_open(libfn) dlopen(libfn, DLL_DLOPEN_FLAGS)
-
-#elif defined(DLL_HPSHL)
-#define dll_open(libfn) shl_load((libfn), BIND_IMMEDIATE, NULL)
-
-#elif defined(DLL_WIN32)
-DLHANDLE dll_open(char *libfn);
-#endif
-
-
-/*
- * dll_findsym looks for a symbol with the given name in the library
- * pointed to by the given handle. Returns a pointer to the named function.
- */
-
-#if defined(USE_NSPR)
-#define dll_findsym(dlp, name) PR_FindSymbol(name)
-
-#elif defined(DLL_DLOPEN)
-#define dll_findsym(dlp, name) dlsym(dlp, name)
-
-#elif defined(DLL_HPSHL)
-void *dll_findsym(DLHANDLE dlp, char *name);
-
-#elif defined(DLL_WIN32)
-#define dll_findsym(dlp, name) GetProcAddress(dlp, name)
-#endif
-
-
-/*
- * dll_error returns a string describing the last error on the given handle
- */
-#if defined(USE_NSPR)
-#define dll_error(dlp) system_errmsg(0)
-
-#elif defined(DLL_DLOPEN)
-#define dll_error(dlp) dlerror()
-
-#elif defined(DLL_HPSHL)
-#define dll_error(dlp) system_errmsg(0)
-
-#elif defined(DLL_WIN32)
-#define dll_error(dlp) system_errmsg(0)
-#endif
-
-
-/*
- * dll_close closes the previously opened library given by handle
- */
-#if defined(USE_NSPR)
-int dll_close(void *arg);
-
-#elif defined(DLL_DLOPEN)
-#define dll_close dlclose
-
-#elif defined (DLL_HPSHL)
-#define dll_close shl_unload
-
-#elif defined(DLL_WIN32)
-#define dll_close FreeLibrary
-#endif
-
-
-#endif /* DLL_CAPABLE */
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/ereport.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/ereport.h
deleted file mode 100644
index 8fe585f9e00..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/ereport.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * ereport.h: Records transactions, reports errors to administrators, etc.
- *
- * Rob McCool
- */
-
-
-#ifndef EREPORT_H
-#define EREPORT_H
-
-
-#include "../base/session.h" /* Session structure */
-#ifdef XP_UNIX
-#include <pwd.h> /* struct passwd */
-#endif /* XP_UNIX */
-
-
-/* ------------------------------ Constants ------------------------------- */
-
-
-/*
- * The maximum length of an error message. NOT RUN-TIME CHECKED
- */
-
-#define MAX_ERROR_LEN 8192
-
-/* A warning is a minor mishap, such as a 404 being issued. */
-#define LOG_WARN 0
-
-/*
- * A misconfig is when there is a syntax error or permission violation in
- * a config. file.
- */
-#define LOG_MISCONFIG 1
-
-/*
- * Security warnings are issued when authentication fails, or a host is
- * given a 403 return code.
- */
-#define LOG_SECURITY 2
-
-/*
- * A failure is when a request could not be fulfilled due to an internal
- * problem, such as a CGI script exiting prematurely, or a filesystem
- * permissions problem.
- */
-#define LOG_FAILURE 3
-
-/*
- * A catastrophe is a fatal server error such as running out of
- * memory or processes, or a system call failing, or even a server crash.
- * The server child cannot recover from a catastrophe.
- */
-#define LOG_CATASTROPHE 4
-
-/*
- * Informational message, of no concern.
- */
-#define LOG_INFORM 5
-
-/*
- * The time format to use in the error log
- */
-
-#define ERR_TIMEFMT "[%d/%b/%Y:%H:%M:%S]"
-
-
-/* The fd you will get if you are reporting errors to SYSLOG */
-
-#define ERRORS_TO_SYSLOG -1
-
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * ereport logs an error of the given degree and formats the arguments with
- * the printf() style fmt. Returns whether the log was successful. Records
- * the current date.
- */
-
-int ereport(int degree, char *fmt, ...);
-
-/*
- * ereport_init initializes the error logging subsystem and opens the static
- * file descriptors. It returns NULL upon success and an error string upon
- * error. If a userpw is given, the logs will be chowned to that user.
- *
- * email is the address of a person to mail upon catastrophic error. It
- * can be NULL if no e-mail is desired. ereport_init will not duplicate
- * its own copy of this string; you must make sure it stays around and free
- * it when you shut down the server.
- */
-
-char *ereport_init(char *err_fn, char *email, struct passwd *pw);
-
-/*
- * log_terminate closes the error and common log file descriptors.
- */
-void ereport_terminate(void);
-
-/* For restarts */
-SYS_FILE ereport_getfd(void);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/eventlog.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/eventlog.h
deleted file mode 100644
index ce78bab46be..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/eventlog.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-// EVENTLOG.H
-//
-// This file contains the defines that make NT an installable service.
-//
-// 1/12/95 aruna
-//
-
-// Functions in eventlog.c
-
-VOID InitializeAdminLogging(PCHAR ServiceName, PCHAR MessageFile);
-VOID InitializeHttpdLogging(PCHAR ServiceName, PCHAR MessageFile);
-VOID InitializeHttpsLogging(PCHAR ServiceName, PCHAR MessageFile);
-
-VOID TerminateAdminLogging();
-VOID TerminateHttpdLogging();
-VOID TerminateHttpsLogging();
-
-VOID LogErrorEvent(PCHAR ServiceName, WORD fwEventType, WORD fwCategory, DWORD IDEvent,
- LPTSTR chMsg, LPTSTR lpszMsg);
-
-// Functions in error.c
-
-VOID ReportError(PCHAR ErrorMsg);
-
-BOOL CALLBACK ErrorDialogProc(
- HWND hDlg,
- UINT message,
- WPARAM wParam,
- LPARAM lParam
- );
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/file.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/file.h
deleted file mode 100644
index fc4d26b32ec..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/file.h
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * file.h: system specific functions for reading/writing files
- *
- * Rob McCool
- */
-
-
-#ifndef FILE_H
-#define FILE_H
-
-#ifdef XP_WIN32
-#include <nt/ntfile.h>
-#else
-
-
-#include "netsite.h"
-#include "systems.h"
-
-
-/*
- * I cheat: These are set up such that system_read can be a macro for read
- * under UNIX. IO_OKAY is anything positive.
- */
-
-#define IO_OKAY 1
-#define IO_ERROR -1
-#define IO_EOF 0
-
-
-#ifdef FILE_STDIO
-#include <stdio.h>
-
-#elif defined(FILE_UNIX)
-#include <sys/types.h>
-#include <sys/file.h>
-#include <fcntl.h>
-#include <unistd.h>
-#endif
-
-
-/* -------------------------- File related defs --------------------------- */
-
-
-/* The disk page size on this machine. */
-#define FILE_BUFFERSIZE 4096
-
-
-/*
- * The fd data type for this system.
- */
-
-#if defined(FILE_STDIO)
-typedef FILE* SYS_FILE;
-#define SYS_ERROR_FD NULL
-#define SYS_STDERR stderr
-
-#elif defined(FILE_UNIX)
-typedef int SYS_FILE;
-#define SYS_ERROR_FD -1
-#define SYS_STDERR STDERR_FILENO
-
-#else
-#error "undefined file typing for current system"
-#endif
-
-#ifdef XP_UNIX
-#define FILE_PATHSEP '/'
-#define FILE_PARENT "../"
-
-#define system_chdir chdir
-#endif
-
-
-/*
- * system_fread reads sz bytes from fd into to buf, return number of bytes
- * read, or IO_EOF if EOF, or IO_ERROR if error.
- */
-
-#if defined(FILE_STDIO)
-int system_fread(SYS_FILE fd, char *buf, int sz);
-
-#elif defined(FILE_UNIX)
-#define system_fread(fd,buf,sz) read(fd,buf,sz)
-
-#endif
-
-/*
- * system_fopenRO opens a given file for reading only
- * system_fopenWA opens a given file for writing, appending new output
- */
-
-#if defined(FILE_STDIO)
-#define system_fopenRO(path) fopen(path,"r")
-#define system_fopenWA(path) fopen(path,"a")
-#define system_fopenRW(path) fopen(path,"w")
-
-#elif defined(FILE_UNIX)
-#define system_fopenRO(path) open(path, O_RDONLY)
-#define system_fopenWA(path) \
- open(path, O_RDWR | O_CREAT | O_APPEND, 0644)
-#define system_fopenRW(path) \
- open(path, O_RDWR | O_CREAT, 0644)
-
-#endif
-
-
-/*
- * system_fclose closes the file fd
- */
-
-#if defined(FILE_STDIO)
-#define system_fclose(fd) fclose(fd)
-
-#elif defined(FILE_UNIX)
-#define system_fclose(fd) close(fd)
-#endif
-
-/*
- * This call stops core dumps in a portable way. Returns -1 on error.
- */
-
-int system_nocoredumps(void);
-
-
-#if defined(FILE_STDIO)
-#define system_lseek fseek
-
-#elif defined(FILE_UNIX)
-#define system_lseek lseek
-
-#endif
-
-/*
- * system_write writes sz bytes from buf to fd. The handler function should
- * handle partial writes and anything else like that. Returns IO_*
- */
-
-int system_fwrite(SYS_FILE fd,char *buf,int sz);
-
-/*
- * system_fwrite_atomic locks the given fd before writing to it. This avoids
- * interference between simultaneous writes. Returns IO_*
- */
-
-int system_fwrite_atomic(SYS_FILE fd, char *buf, int sz);
-
-/*
- * system_errmsg returns the last error that occured while processing file
- * descriptor fd. fd does not have to be specified (if the error is a global
- * such as in UNIX systems). PPS: Rob is a halfwit. This parameter is useless.
- */
-
-#ifndef FILE_WIN32
-#include <errno.h>
-
-extern char *sys_errlist[];
-#define file_notfound() (errno == ENOENT)
-#define system_errmsg(fd) (sys_errlist[errno])
-#endif
-
-
-/*
- * flock locks a file against interference from other processes
- * ulock unlocks it.
- */
-#ifdef BSD_FLOCK
-#include <sys/file.h>
-#define system_initlock(fd) (0)
-#define system_flock(fd) flock(fd, LOCK_EX)
-#define system_ulock(fd) flock(fd, LOCK_UN)
-
-#elif defined(FILE_UNIX)
-#include <unistd.h>
-#define system_initlock(fd) (0)
-#define system_flock(fd) lockf(fd, F_LOCK, 0)
-#define system_ulock(fd) lockf(fd, F_ULOCK, 0)
-
-#endif
-
-
-/*
- * unix2local converts a unix-style pathname to a local one
- */
-
-#ifdef XP_UNIX
-#define file_unix2local(path,p2) strcpy(p2,path)
-#endif
-
-/* -------------------------- Dir related defs ---------------------------- */
-
-
-#ifdef XP_UNIX
-#include <dirent.h>
-typedef DIR* SYS_DIR;
-typedef struct dirent SYS_DIRENT;
-#define dir_open opendir
-#define dir_read readdir
-#define dir_close closedir
-
-#endif
-#endif
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/minissl.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/minissl.h
deleted file mode 100644
index 4eb09688d4c..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/minissl.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-
-/* Prototypes for SSL I/O functions */
-extern int SSL_Close(int);
-extern int SSL_Socket(int, int, int);
-extern int SSL_GetSockOpt(int, int, int, void *, int *);
-extern int SSL_SetSockOpt(int, int, int, const void *, int);
-extern int SSL_Bind(int, const void *, int);
-extern int SSL_Listen(int, int);
-extern int SSL_Accept(int, void *, int *);
-extern int SSL_Read(int, void *, int);
-extern int SSL_Write(int, const void *, int);
-extern int SSL_GetPeerName(int, void *, int *);
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h
deleted file mode 100644
index 349018ba048..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * net.h: system specific networking definitions
- *
- * Rob McCool
- */
-
-
-#ifndef NET_H
-#define NET_H
-
-#include "systems.h"
-
-#include "file.h" /* for client file descriptors */
-
-#include "pblock.h" /* for client data block */
-
-
-/* This should be a user-given parameter later */
-#define NET_BUFFERSIZE 8192
-/* So should this. */
-#define NET_READ_TIMEOUT 120
-#define NET_WRITE_TIMEOUT 300
-
-#define SSL_HANDSHAKE_TIMEOUT 300
-
-#if defined(NET_SOCKETS) || defined(NET_SSL)
-
-#ifdef NET_WINSOCK
-#include <winsock.h>
-#else /* XP_UNIX */
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h> /* sockaddr and in_addr */
-#include <arpa/inet.h> /* inet_ntoa */
-#include <netdb.h> /* hostent stuff */
-#endif /* NET_WINSOCK */
-
-#ifdef NET_SSL
-#include "minissl.h"
-#endif
-
-
-/* -------------------------------- Global -------------------------------- */
-
-extern int net_enabledns;
-
-
-
-/* ------------------------------ Data types ------------------------------ */
-
-
-#ifdef NET_WINSOCK
-typedef SOCKET SYS_NETFD;
-#else /* XP_UNIX */
-typedef int SYS_NETFD;
-#endif /* NET_WINSOCK */
-
-#define SYS_NET_ERRORFD -1
-
-
-/* -------------------------------- Macros -------------------------------- */
-
-
-/* These may be different for non-UNIX systems. */
-
-
-#ifndef NET_SSL
-#define net_socket socket
-#define net_setsockopt setsockopt
-#define net_getsockopt getsockopt
-#define net_listen listen
-#define net_select select
-#define net_getpeername getpeername
-
-#ifndef NET_WINSOCK
-#define net_close(sd) close(sd)
-#define net_bind bind
-#else /* NET_WINSOCK */
-#define net_close(sd) closesocket(sd)
-#define system_netbind bind
-int net_bind(SYS_NETFD s, const struct sockaddr *name, int namelen);
-#endif /* NET_WINSOCK */
-
-#ifdef DAEMON_NEEDS_SEMAPHORE
-#define net_accept net_semaccept
-#else /* ! DAEMON_NEEDS_SEMAPHORE */
-#define net_accept accept
-#endif /* DAEMON_NEEDS_SEMAPHORE */
-
-#else /* NET_SSL */
-#define net_close(sd) SSL_Close(sd)
-#define net_socket SSL_Socket
-#define net_setsockopt SSL_SetSockOpt
-#define net_getsockopt SSL_GetSockOpt
-
-#ifdef XP_UNIX
-#define net_bind SSL_Bind
-#else /* WIN32 */
-#define system_netbind SSL_Bind
-int net_bind(SYS_NETFD s, const struct sockaddr *name, int namelen);
-#endif /* XP_UNIX */
-
-#define net_listen SSL_Listen
-#define net_select select /* !!! */
-#define net_getpeername SSL_GetPeerName
-#define net_accept SSL_Accept
-#endif /* ! NET_SSL */
-
-
-/* Users should never call the system_net* functions. */
-#ifdef NET_SSL
-#define system_netread(sd, buf, sz) SSL_Read(sd, buf, sz)
-#define system_netwrite SSL_Write
-#else /* ! NET_SSL */
-
-#if !defined(NET_WINSOCK)
-#define system_netread(sd, buf, sz) read(sd, buf, sz)
-#define system_netwrite write
-#else /* NET_WINSOCK */
-#define system_netread(sd, buf, sz) recv(sd, buf, sz, 0)
-#define system_netwrite(sd, buf, sz) send(sd, buf, sz, 0)
-#endif /* ! NET_WINSOCK */
-
-#endif /* NET_SSL */
-
-int net_read(SYS_NETFD sd, char *buf, int sz, int timeout);
-int net_write(SYS_NETFD sd, char *buf, int sz);
-
-#ifdef DAEMON_NEEDS_SEMAPHORE
-int net_semaccept_init(int port);
-int net_semaccept(int s, struct sockaddr *addr, int *addrlen);
-void net_semaccept_terminate(void);
-#endif
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * net_find_fqdn looks through the given hostent structure trying to find
- * a FQDN for the host. If it finds none, it returns NULL. Otherwise, it
- * returns a newly allocated copy of that string.
- */
-
-char *net_find_fqdn(struct hostent *p);
-
-/*
- * net_ip2host transforms the given textual IP number into a FQDN. If it
- * can't find a FQDN, it will return what it can get. Otherwise, NULL.
- *
- * verify is whether or not the function should verify the hostname it
- * gets. This takes an extra query but is safer for use in access control.
- */
-
-char *net_ip2host(char *ip, int verify);
-
-/*
- * net_sendmail sends mail to the specified recipient with the given subject
- * and message. Currently uses external programs.
- */
-
-int net_sendmail(char *to, char *subject, char *msg);
-
-#endif
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nodelock.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nodelock.h
deleted file mode 100644
index e0672366a2a..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nodelock.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * nodelock.h: licensing stuff
- */
-
-#ifndef _NODELOCK_H
-#define _NODELOCK_H
-
-/*
- * Do the initial IP address check and expiration date check. Reads a file
- * from admin/config, as #define'd.
- *
- * Returns 1 on error, 0 on AOK.
- */
-
-int node_init(void);
-
-/*
- * Check the expiration date against The Now.
- *
- * Returns 1 on error, 0 on AOK.
- */
-
-int node_check(void);
-
-/*
- * So how we doin, license
- *
- * Returns 1 on error, 0 on AOK
- */
-int node_status(void);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nterrors.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nterrors.h
deleted file mode 100644
index d83a3caaf6e..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nterrors.h
+++ /dev/null
@@ -1,736 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/* DO NOT EDIT THIS FILE - it is automatically generated */
-
-struct _NtError {
- int ErrorNumber;
- char *ErrorString;
- struct _NtError *next;
-} ;
-
-typedef struct _NtError NtError;
-
-NtError NtErrorStrings[] = {
-{ 0 , "ERROR_SUCCESS" },
-{ 0 , "NO_ERROR" },
-{ 1 , "ERROR_INVALID_FUNCTION" },
-{ 2 , "ERROR_FILE_NOT_FOUND" },
-{ 3 , "ERROR_PATH_NOT_FOUND" },
-{ 4 , "ERROR_TOO_MANY_OPEN_FILES" },
-{ 5 , "ERROR_ACCESS_DENIED" },
-{ 6 , "ERROR_INVALID_HANDLE" },
-{ 7 , "ERROR_ARENA_TRASHED" },
-{ 8 , "ERROR_NOT_ENOUGH_MEMORY" },
-{ 9 , "ERROR_INVALID_BLOCK" },
-{ 10 , "ERROR_BAD_ENVIRONMENT" },
-{ 11 , "ERROR_BAD_FORMAT" },
-{ 12 , "ERROR_INVALID_ACCESS" },
-{ 13 , "ERROR_INVALID_DATA" },
-{ 14 , "ERROR_OUTOFMEMORY" },
-{ 15 , "ERROR_INVALID_DRIVE" },
-{ 16 , "ERROR_CURRENT_DIRECTORY" },
-{ 17 , "ERROR_NOT_SAME_DEVICE" },
-{ 18 , "ERROR_NO_MORE_FILES" },
-{ 19 , "ERROR_WRITE_PROTECT" },
-{ 20 , "ERROR_BAD_UNIT" },
-{ 21 , "ERROR_NOT_READY" },
-{ 22 , "ERROR_BAD_COMMAND" },
-{ 23 , "ERROR_CRC" },
-{ 24 , "ERROR_BAD_LENGTH" },
-{ 25 , "ERROR_SEEK" },
-{ 26 , "ERROR_NOT_DOS_DISK" },
-{ 27 , "ERROR_SECTOR_NOT_FOUND" },
-{ 28 , "ERROR_OUT_OF_PAPER" },
-{ 29 , "ERROR_WRITE_FAULT" },
-{ 30 , "ERROR_READ_FAULT" },
-{ 31 , "ERROR_GEN_FAILURE" },
-{ 32 , "ERROR_SHARING_VIOLATION" },
-{ 33 , "ERROR_LOCK_VIOLATION" },
-{ 34 , "ERROR_WRONG_DISK" },
-{ 36 , "ERROR_SHARING_BUFFER_EXCEEDED" },
-{ 38 , "ERROR_HANDLE_EOF" },
-{ 39 , "ERROR_HANDLE_DISK_FULL" },
-{ 50 , "ERROR_NOT_SUPPORTED" },
-{ 51 , "ERROR_REM_NOT_LIST" },
-{ 52 , "ERROR_DUP_NAME" },
-{ 53 , "ERROR_BAD_NETPATH" },
-{ 54 , "ERROR_NETWORK_BUSY" },
-{ 55 , "ERROR_DEV_NOT_EXIST" },
-{ 56 , "ERROR_TOO_MANY_CMDS" },
-{ 57 , "ERROR_ADAP_HDW_ERR" },
-{ 58 , "ERROR_BAD_NET_RESP" },
-{ 59 , "ERROR_UNEXP_NET_ERR" },
-{ 60 , "ERROR_BAD_REM_ADAP" },
-{ 61 , "ERROR_PRINTQ_FULL" },
-{ 62 , "ERROR_NO_SPOOL_SPACE" },
-{ 63 , "ERROR_PRINT_CANCELLED" },
-{ 64 , "ERROR_NETNAME_DELETED" },
-{ 65 , "ERROR_NETWORK_ACCESS_DENIED" },
-{ 66 , "ERROR_BAD_DEV_TYPE" },
-{ 67 , "ERROR_BAD_NET_NAME" },
-{ 68 , "ERROR_TOO_MANY_NAMES" },
-{ 69 , "ERROR_TOO_MANY_SESS" },
-{ 70 , "ERROR_SHARING_PAUSED" },
-{ 71 , "ERROR_REQ_NOT_ACCEP" },
-{ 72 , "ERROR_REDIR_PAUSED" },
-{ 80 , "ERROR_FILE_EXISTS" },
-{ 82 , "ERROR_CANNOT_MAKE" },
-{ 83 , "ERROR_FAIL_I24" },
-{ 84 , "ERROR_OUT_OF_STRUCTURES" },
-{ 85 , "ERROR_ALREADY_ASSIGNED" },
-{ 86 , "ERROR_INVALID_PASSWORD" },
-{ 87 , "ERROR_INVALID_PARAMETER" },
-{ 88 , "ERROR_NET_WRITE_FAULT" },
-{ 89 , "ERROR_NO_PROC_SLOTS" },
-{ 100 , "ERROR_TOO_MANY_SEMAPHORES" },
-{ 101 , "ERROR_EXCL_SEM_ALREADY_OWNED" },
-{ 102 , "ERROR_SEM_IS_SET" },
-{ 103 , "ERROR_TOO_MANY_SEM_REQUESTS" },
-{ 104 , "ERROR_INVALID_AT_INTERRUPT_TIME" },
-{ 105 , "ERROR_SEM_OWNER_DIED" },
-{ 106 , "ERROR_SEM_USER_LIMIT" },
-{ 107 , "ERROR_DISK_CHANGE" },
-{ 108 , "ERROR_DRIVE_LOCKED" },
-{ 109 , "ERROR_BROKEN_PIPE" },
-{ 110 , "ERROR_OPEN_FAILED" },
-{ 111 , "ERROR_BUFFER_OVERFLOW" },
-{ 112 , "ERROR_DISK_FULL" },
-{ 113 , "ERROR_NO_MORE_SEARCH_HANDLES" },
-{ 114 , "ERROR_INVALID_TARGET_HANDLE" },
-{ 117 , "ERROR_INVALID_CATEGORY" },
-{ 118 , "ERROR_INVALID_VERIFY_SWITCH" },
-{ 119 , "ERROR_BAD_DRIVER_LEVEL" },
-{ 120 , "ERROR_CALL_NOT_IMPLEMENTED" },
-{ 121 , "ERROR_SEM_TIMEOUT" },
-{ 122 , "ERROR_INSUFFICIENT_BUFFER" },
-{ 123 , "ERROR_INVALID_NAME" },
-{ 124 , "ERROR_INVALID_LEVEL" },
-{ 125 , "ERROR_NO_VOLUME_LABEL" },
-{ 126 , "ERROR_MOD_NOT_FOUND" },
-{ 127 , "ERROR_PROC_NOT_FOUND" },
-{ 128 , "ERROR_WAIT_NO_CHILDREN" },
-{ 129 , "ERROR_CHILD_NOT_COMPLETE" },
-{ 130 , "ERROR_DIRECT_ACCESS_HANDLE" },
-{ 131 , "ERROR_NEGATIVE_SEEK" },
-{ 132 , "ERROR_SEEK_ON_DEVICE" },
-{ 133 , "ERROR_IS_JOIN_TARGET" },
-{ 134 , "ERROR_IS_JOINED" },
-{ 135 , "ERROR_IS_SUBSTED" },
-{ 136 , "ERROR_NOT_JOINED" },
-{ 137 , "ERROR_NOT_SUBSTED" },
-{ 138 , "ERROR_JOIN_TO_JOIN" },
-{ 139 , "ERROR_SUBST_TO_SUBST" },
-{ 140 , "ERROR_JOIN_TO_SUBST" },
-{ 141 , "ERROR_SUBST_TO_JOIN" },
-{ 142 , "ERROR_BUSY_DRIVE" },
-{ 143 , "ERROR_SAME_DRIVE" },
-{ 144 , "ERROR_DIR_NOT_ROOT" },
-{ 145 , "ERROR_DIR_NOT_EMPTY" },
-{ 146 , "ERROR_IS_SUBST_PATH" },
-{ 147 , "ERROR_IS_JOIN_PATH" },
-{ 148 , "ERROR_PATH_BUSY" },
-{ 149 , "ERROR_IS_SUBST_TARGET" },
-{ 150 , "ERROR_SYSTEM_TRACE" },
-{ 151 , "ERROR_INVALID_EVENT_COUNT" },
-{ 152 , "ERROR_TOO_MANY_MUXWAITERS" },
-{ 153 , "ERROR_INVALID_LIST_FORMAT" },
-{ 154 , "ERROR_LABEL_TOO_LONG" },
-{ 155 , "ERROR_TOO_MANY_TCBS" },
-{ 156 , "ERROR_SIGNAL_REFUSED" },
-{ 157 , "ERROR_DISCARDED" },
-{ 158 , "ERROR_NOT_LOCKED" },
-{ 159 , "ERROR_BAD_THREADID_ADDR" },
-{ 160 , "ERROR_BAD_ARGUMENTS" },
-{ 161 , "ERROR_BAD_PATHNAME" },
-{ 162 , "ERROR_SIGNAL_PENDING" },
-{ 164 , "ERROR_MAX_THRDS_REACHED" },
-{ 167 , "ERROR_LOCK_FAILED" },
-{ 170 , "ERROR_BUSY" },
-{ 173 , "ERROR_CANCEL_VIOLATION" },
-{ 174 , "ERROR_ATOMIC_LOCKS_NOT_SUPPORTED" },
-{ 180 , "ERROR_INVALID_SEGMENT_NUMBER" },
-{ 182 , "ERROR_INVALID_ORDINAL" },
-{ 183 , "ERROR_ALREADY_EXISTS" },
-{ 186 , "ERROR_INVALID_FLAG_NUMBER" },
-{ 187 , "ERROR_SEM_NOT_FOUND" },
-{ 188 , "ERROR_INVALID_STARTING_CODESEG" },
-{ 189 , "ERROR_INVALID_STACKSEG" },
-{ 190 , "ERROR_INVALID_MODULETYPE" },
-{ 191 , "ERROR_INVALID_EXE_SIGNATURE" },
-{ 192 , "ERROR_EXE_MARKED_INVALID" },
-{ 193 , "ERROR_BAD_EXE_FORMAT" },
-{ 194 , "ERROR_ITERATED_DATA_EXCEEDS_64k" },
-{ 195 , "ERROR_INVALID_MINALLOCSIZE" },
-{ 196 , "ERROR_DYNLINK_FROM_INVALID_RING" },
-{ 197 , "ERROR_IOPL_NOT_ENABLED" },
-{ 198 , "ERROR_INVALID_SEGDPL" },
-{ 199 , "ERROR_AUTODATASEG_EXCEEDS_64k" },
-{ 200 , "ERROR_RING2SEG_MUST_BE_MOVABLE" },
-{ 201 , "ERROR_RELOC_CHAIN_XEEDS_SEGLIM" },
-{ 202 , "ERROR_INFLOOP_IN_RELOC_CHAIN" },
-{ 203 , "ERROR_ENVVAR_NOT_FOUND" },
-{ 205 , "ERROR_NO_SIGNAL_SENT" },
-{ 206 , "ERROR_FILENAME_EXCED_RANGE" },
-{ 207 , "ERROR_RING2_STACK_IN_USE" },
-{ 208 , "ERROR_META_EXPANSION_TOO_LONG" },
-{ 209 , "ERROR_INVALID_SIGNAL_NUMBER" },
-{ 210 , "ERROR_THREAD_1_INACTIVE" },
-{ 212 , "ERROR_LOCKED" },
-{ 214 , "ERROR_TOO_MANY_MODULES" },
-{ 215 , "ERROR_NESTING_NOT_ALLOWED" },
-{ 230 , "ERROR_BAD_PIPE" },
-{ 231 , "ERROR_PIPE_BUSY" },
-{ 232 , "ERROR_NO_DATA" },
-{ 233 , "ERROR_PIPE_NOT_CONNECTED" },
-{ 234 , "ERROR_MORE_DATA" },
-{ 240 , "ERROR_VC_DISCONNECTED" },
-{ 254 , "ERROR_INVALID_EA_NAME" },
-{ 255 , "ERROR_EA_LIST_INCONSISTENT" },
-{ 259 , "ERROR_NO_MORE_ITEMS" },
-{ 266 , "ERROR_CANNOT_COPY" },
-{ 267 , "ERROR_DIRECTORY" },
-{ 275 , "ERROR_EAS_DIDNT_FIT" },
-{ 276 , "ERROR_EA_FILE_CORRUPT" },
-{ 277 , "ERROR_EA_TABLE_FULL" },
-{ 278 , "ERROR_INVALID_EA_HANDLE" },
-{ 282 , "ERROR_EAS_NOT_SUPPORTED" },
-{ 288 , "ERROR_NOT_OWNER" },
-{ 298 , "ERROR_TOO_MANY_POSTS" },
-{ 299 , "ERROR_PARTIAL_COPY" },
-{ 317 , "ERROR_MR_MID_NOT_FOUND" },
-{ 487 , "ERROR_INVALID_ADDRESS" },
-{ 534 , "ERROR_ARITHMETIC_OVERFLOW" },
-{ 535 , "ERROR_PIPE_CONNECTED" },
-{ 536 , "ERROR_PIPE_LISTENING" },
-{ 994 , "ERROR_EA_ACCESS_DENIED" },
-{ 995 , "ERROR_OPERATION_ABORTED" },
-{ 996 , "ERROR_IO_INCOMPLETE" },
-{ 997 , "ERROR_IO_PENDING" },
-{ 998 , "ERROR_NOACCESS" },
-{ 999 , "ERROR_SWAPERROR" },
-{ 1001 , "ERROR_STACK_OVERFLOW" },
-{ 1002 , "ERROR_INVALID_MESSAGE" },
-{ 1003 , "ERROR_CAN_NOT_COMPLETE" },
-{ 1004 , "ERROR_INVALID_FLAGS" },
-{ 1005 , "ERROR_UNRECOGNIZED_VOLUME" },
-{ 1006 , "ERROR_FILE_INVALID" },
-{ 1007 , "ERROR_FULLSCREEN_MODE" },
-{ 1008 , "ERROR_NO_TOKEN" },
-{ 1009 , "ERROR_BADDB" },
-{ 1010 , "ERROR_BADKEY" },
-{ 1011 , "ERROR_CANTOPEN" },
-{ 1012 , "ERROR_CANTREAD" },
-{ 1013 , "ERROR_CANTWRITE" },
-{ 1014 , "ERROR_REGISTRY_RECOVERED" },
-{ 1015 , "ERROR_REGISTRY_CORRUPT" },
-{ 1016 , "ERROR_REGISTRY_IO_FAILED" },
-{ 1017 , "ERROR_NOT_REGISTRY_FILE" },
-{ 1018 , "ERROR_KEY_DELETED" },
-{ 1019 , "ERROR_NO_LOG_SPACE" },
-{ 1020 , "ERROR_KEY_HAS_CHILDREN" },
-{ 1021 , "ERROR_CHILD_MUST_BE_VOLATILE" },
-{ 1022 , "ERROR_NOTIFY_ENUM_DIR" },
-{ 1051 , "ERROR_DEPENDENT_SERVICES_RUNNING" },
-{ 1052 , "ERROR_INVALID_SERVICE_CONTROL" },
-{ 1053 , "ERROR_SERVICE_REQUEST_TIMEOUT" },
-{ 1054 , "ERROR_SERVICE_NO_THREAD" },
-{ 1055 , "ERROR_SERVICE_DATABASE_LOCKED" },
-{ 1056 , "ERROR_SERVICE_ALREADY_RUNNING" },
-{ 1057 , "ERROR_INVALID_SERVICE_ACCOUNT" },
-{ 1058 , "ERROR_SERVICE_DISABLED" },
-{ 1059 , "ERROR_CIRCULAR_DEPENDENCY" },
-{ 1060 , "ERROR_SERVICE_DOES_NOT_EXIST" },
-{ 1061 , "ERROR_SERVICE_CANNOT_ACCEPT_CTRL" },
-{ 1062 , "ERROR_SERVICE_NOT_ACTIVE" },
-{ 1063 , "ERROR_FAILED_SERVICE_CONTROLLER_CONNECT" },
-{ 1064 , "ERROR_EXCEPTION_IN_SERVICE" },
-{ 1065 , "ERROR_DATABASE_DOES_NOT_EXIST" },
-{ 1066 , "ERROR_SERVICE_SPECIFIC_ERROR" },
-{ 1067 , "ERROR_PROCESS_ABORTED" },
-{ 1068 , "ERROR_SERVICE_DEPENDENCY_FAIL" },
-{ 1069 , "ERROR_SERVICE_LOGON_FAILED" },
-{ 1070 , "ERROR_SERVICE_START_HANG" },
-{ 1071 , "ERROR_INVALID_SERVICE_LOCK" },
-{ 1072 , "ERROR_SERVICE_MARKED_FOR_DELETE" },
-{ 1073 , "ERROR_SERVICE_EXISTS" },
-{ 1074 , "ERROR_ALREADY_RUNNING_LKG" },
-{ 1075 , "ERROR_SERVICE_DEPENDENCY_DELETED" },
-{ 1076 , "ERROR_BOOT_ALREADY_ACCEPTED" },
-{ 1077 , "ERROR_SERVICE_NEVER_STARTED" },
-{ 1078 , "ERROR_DUPLICATE_SERVICE_NAME" },
-{ 1100 , "ERROR_END_OF_MEDIA" },
-{ 1101 , "ERROR_FILEMARK_DETECTED" },
-{ 1102 , "ERROR_BEGINNING_OF_MEDIA" },
-{ 1103 , "ERROR_SETMARK_DETECTED" },
-{ 1104 , "ERROR_NO_DATA_DETECTED" },
-{ 1105 , "ERROR_PARTITION_FAILURE" },
-{ 1106 , "ERROR_INVALID_BLOCK_LENGTH" },
-{ 1107 , "ERROR_DEVICE_NOT_PARTITIONED" },
-{ 1108 , "ERROR_UNABLE_TO_LOCK_MEDIA" },
-{ 1109 , "ERROR_UNABLE_TO_UNLOAD_MEDIA" },
-{ 1110 , "ERROR_MEDIA_CHANGED" },
-{ 1111 , "ERROR_BUS_RESET" },
-{ 1112 , "ERROR_NO_MEDIA_IN_DRIVE" },
-{ 1113 , "ERROR_NO_UNICODE_TRANSLATION" },
-{ 1114 , "ERROR_DLL_INIT_FAILED" },
-{ 1115 , "ERROR_SHUTDOWN_IN_PROGRESS" },
-{ 1116 , "ERROR_NO_SHUTDOWN_IN_PROGRESS" },
-{ 1117 , "ERROR_IO_DEVICE" },
-{ 1118 , "ERROR_SERIAL_NO_DEVICE" },
-{ 1119 , "ERROR_IRQ_BUSY" },
-{ 1120 , "ERROR_MORE_WRITES" },
-{ 1121 , "ERROR_COUNTER_TIMEOUT" },
-{ 1122 , "ERROR_FLOPPY_ID_MARK_NOT_FOUND" },
-{ 1123 , "ERROR_FLOPPY_WRONG_CYLINDER" },
-{ 1124 , "ERROR_FLOPPY_UNKNOWN_ERROR" },
-{ 1125 , "ERROR_FLOPPY_BAD_REGISTERS" },
-{ 1126 , "ERROR_DISK_RECALIBRATE_FAILED" },
-{ 1127 , "ERROR_DISK_OPERATION_FAILED" },
-{ 1128 , "ERROR_DISK_RESET_FAILED" },
-{ 1129 , "ERROR_EOM_OVERFLOW" },
-{ 1130 , "ERROR_NOT_ENOUGH_SERVER_MEMORY" },
-{ 1131 , "ERROR_POSSIBLE_DEADLOCK" },
-{ 1132 , "ERROR_MAPPED_ALIGNMENT" },
-{ 1140 , "ERROR_SET_POWER_STATE_VETOED" },
-{ 1141 , "ERROR_SET_POWER_STATE_FAILED" },
-{ 1150 , "ERROR_OLD_WIN_VERSION" },
-{ 1151 , "ERROR_APP_WRONG_OS" },
-{ 1152 , "ERROR_SINGLE_INSTANCE_APP" },
-{ 1153 , "ERROR_RMODE_APP" },
-{ 1154 , "ERROR_INVALID_DLL" },
-{ 1155 , "ERROR_NO_ASSOCIATION" },
-{ 1156 , "ERROR_DDE_FAIL" },
-{ 1157 , "ERROR_DLL_NOT_FOUND" },
-{ 2202 , "ERROR_BAD_USERNAME" },
-{ 2250 , "ERROR_NOT_CONNECTED" },
-{ 2401 , "ERROR_OPEN_FILES" },
-{ 2402 , "ERROR_ACTIVE_CONNECTIONS" },
-{ 2404 , "ERROR_DEVICE_IN_USE" },
-{ 1200 , "ERROR_BAD_DEVICE" },
-{ 1201 , "ERROR_CONNECTION_UNAVAIL" },
-{ 1202 , "ERROR_DEVICE_ALREADY_REMEMBERED" },
-{ 1203 , "ERROR_NO_NET_OR_BAD_PATH" },
-{ 1204 , "ERROR_BAD_PROVIDER" },
-{ 1205 , "ERROR_CANNOT_OPEN_PROFILE" },
-{ 1206 , "ERROR_BAD_PROFILE" },
-{ 1207 , "ERROR_NOT_CONTAINER" },
-{ 1208 , "ERROR_EXTENDED_ERROR" },
-{ 1209 , "ERROR_INVALID_GROUPNAME" },
-{ 1210 , "ERROR_INVALID_COMPUTERNAME" },
-{ 1211 , "ERROR_INVALID_EVENTNAME" },
-{ 1212 , "ERROR_INVALID_DOMAINNAME" },
-{ 1213 , "ERROR_INVALID_SERVICENAME" },
-{ 1214 , "ERROR_INVALID_NETNAME" },
-{ 1215 , "ERROR_INVALID_SHARENAME" },
-{ 1216 , "ERROR_INVALID_PASSWORDNAME" },
-{ 1217 , "ERROR_INVALID_MESSAGENAME" },
-{ 1218 , "ERROR_INVALID_MESSAGEDEST" },
-{ 1219 , "ERROR_SESSION_CREDENTIAL_CONFLICT" },
-{ 1220 , "ERROR_REMOTE_SESSION_LIMIT_EXCEEDED" },
-{ 1221 , "ERROR_DUP_DOMAINNAME" },
-{ 1222 , "ERROR_NO_NETWORK" },
-{ 1223 , "ERROR_CANCELLED" },
-{ 1224 , "ERROR_USER_MAPPED_FILE" },
-{ 1225 , "ERROR_CONNECTION_REFUSED" },
-{ 1226 , "ERROR_GRACEFUL_DISCONNECT" },
-{ 1227 , "ERROR_ADDRESS_ALREADY_ASSOCIATED" },
-{ 1228 , "ERROR_ADDRESS_NOT_ASSOCIATED" },
-{ 1229 , "ERROR_CONNECTION_INVALID" },
-{ 1230 , "ERROR_CONNECTION_ACTIVE" },
-{ 1231 , "ERROR_NETWORK_UNREACHABLE" },
-{ 1232 , "ERROR_HOST_UNREACHABLE" },
-{ 1233 , "ERROR_PROTOCOL_UNREACHABLE" },
-{ 1234 , "ERROR_PORT_UNREACHABLE" },
-{ 1235 , "ERROR_REQUEST_ABORTED" },
-{ 1236 , "ERROR_CONNECTION_ABORTED" },
-{ 1237 , "ERROR_RETRY" },
-{ 1238 , "ERROR_CONNECTION_COUNT_LIMIT" },
-{ 1239 , "ERROR_LOGIN_TIME_RESTRICTION" },
-{ 1240 , "ERROR_LOGIN_WKSTA_RESTRICTION" },
-{ 1241 , "ERROR_INCORRECT_ADDRESS" },
-{ 1242 , "ERROR_ALREADY_REGISTERED" },
-{ 1243 , "ERROR_SERVICE_NOT_FOUND" },
-{ 1244 , "ERROR_NOT_AUTHENTICATED" },
-{ 1245 , "ERROR_NOT_LOGGED_ON" },
-{ 1246 , "ERROR_CONTINUE" },
-{ 1247 , "ERROR_ALREADY_INITIALIZED" },
-{ 1248 , "ERROR_NO_MORE_DEVICES" },
-{ 1300 , "ERROR_NOT_ALL_ASSIGNED" },
-{ 1301 , "ERROR_SOME_NOT_MAPPED" },
-{ 1302 , "ERROR_NO_QUOTAS_FOR_ACCOUNT" },
-{ 1303 , "ERROR_LOCAL_USER_SESSION_KEY" },
-{ 1304 , "ERROR_NULL_LM_PASSWORD" },
-{ 1305 , "ERROR_UNKNOWN_REVISION" },
-{ 1306 , "ERROR_REVISION_MISMATCH" },
-{ 1307 , "ERROR_INVALID_OWNER" },
-{ 1308 , "ERROR_INVALID_PRIMARY_GROUP" },
-{ 1309 , "ERROR_NO_IMPERSONATION_TOKEN" },
-{ 1310 , "ERROR_CANT_DISABLE_MANDATORY" },
-{ 1311 , "ERROR_NO_LOGON_SERVERS" },
-{ 1312 , "ERROR_NO_SUCH_LOGON_SESSION" },
-{ 1313 , "ERROR_NO_SUCH_PRIVILEGE" },
-{ 1314 , "ERROR_PRIVILEGE_NOT_HELD" },
-{ 1315 , "ERROR_INVALID_ACCOUNT_NAME" },
-{ 1316 , "ERROR_USER_EXISTS" },
-{ 1317 , "ERROR_NO_SUCH_USER" },
-{ 1318 , "ERROR_GROUP_EXISTS" },
-{ 1319 , "ERROR_NO_SUCH_GROUP" },
-{ 1320 , "ERROR_MEMBER_IN_GROUP" },
-{ 1321 , "ERROR_MEMBER_NOT_IN_GROUP" },
-{ 1322 , "ERROR_LAST_ADMIN" },
-{ 1323 , "ERROR_WRONG_PASSWORD" },
-{ 1324 , "ERROR_ILL_FORMED_PASSWORD" },
-{ 1325 , "ERROR_PASSWORD_RESTRICTION" },
-{ 1326 , "ERROR_LOGON_FAILURE" },
-{ 1327 , "ERROR_ACCOUNT_RESTRICTION" },
-{ 1328 , "ERROR_INVALID_LOGON_HOURS" },
-{ 1329 , "ERROR_INVALID_WORKSTATION" },
-{ 1330 , "ERROR_PASSWORD_EXPIRED" },
-{ 1331 , "ERROR_ACCOUNT_DISABLED" },
-{ 1332 , "ERROR_NONE_MAPPED" },
-{ 1333 , "ERROR_TOO_MANY_LUIDS_REQUESTED" },
-{ 1334 , "ERROR_LUIDS_EXHAUSTED" },
-{ 1335 , "ERROR_INVALID_SUB_AUTHORITY" },
-{ 1336 , "ERROR_INVALID_ACL" },
-{ 1337 , "ERROR_INVALID_SID" },
-{ 1338 , "ERROR_INVALID_SECURITY_DESCR" },
-{ 1340 , "ERROR_BAD_INHERITANCE_ACL" },
-{ 1341 , "ERROR_SERVER_DISABLED" },
-{ 1342 , "ERROR_SERVER_NOT_DISABLED" },
-{ 1343 , "ERROR_INVALID_ID_AUTHORITY" },
-{ 1344 , "ERROR_ALLOTTED_SPACE_EXCEEDED" },
-{ 1345 , "ERROR_INVALID_GROUP_ATTRIBUTES" },
-{ 1346 , "ERROR_BAD_IMPERSONATION_LEVEL" },
-{ 1347 , "ERROR_CANT_OPEN_ANONYMOUS" },
-{ 1348 , "ERROR_BAD_VALIDATION_CLASS" },
-{ 1349 , "ERROR_BAD_TOKEN_TYPE" },
-{ 1350 , "ERROR_NO_SECURITY_ON_OBJECT" },
-{ 1351 , "ERROR_CANT_ACCESS_DOMAIN_INFO" },
-{ 1352 , "ERROR_INVALID_SERVER_STATE" },
-{ 1353 , "ERROR_INVALID_DOMAIN_STATE" },
-{ 1354 , "ERROR_INVALID_DOMAIN_ROLE" },
-{ 1355 , "ERROR_NO_SUCH_DOMAIN" },
-{ 1356 , "ERROR_DOMAIN_EXISTS" },
-{ 1357 , "ERROR_DOMAIN_LIMIT_EXCEEDED" },
-{ 1358 , "ERROR_INTERNAL_DB_CORRUPTION" },
-{ 1359 , "ERROR_INTERNAL_ERROR" },
-{ 1360 , "ERROR_GENERIC_NOT_MAPPED" },
-{ 1361 , "ERROR_BAD_DESCRIPTOR_FORMAT" },
-{ 1362 , "ERROR_NOT_LOGON_PROCESS" },
-{ 1363 , "ERROR_LOGON_SESSION_EXISTS" },
-{ 1364 , "ERROR_NO_SUCH_PACKAGE" },
-{ 1365 , "ERROR_BAD_LOGON_SESSION_STATE" },
-{ 1366 , "ERROR_LOGON_SESSION_COLLISION" },
-{ 1367 , "ERROR_INVALID_LOGON_TYPE" },
-{ 1368 , "ERROR_CANNOT_IMPERSONATE" },
-{ 1369 , "ERROR_RXACT_INVALID_STATE" },
-{ 1370 , "ERROR_RXACT_COMMIT_FAILURE" },
-{ 1371 , "ERROR_SPECIAL_ACCOUNT" },
-{ 1372 , "ERROR_SPECIAL_GROUP" },
-{ 1373 , "ERROR_SPECIAL_USER" },
-{ 1374 , "ERROR_MEMBERS_PRIMARY_GROUP" },
-{ 1375 , "ERROR_TOKEN_ALREADY_IN_USE" },
-{ 1376 , "ERROR_NO_SUCH_ALIAS" },
-{ 1377 , "ERROR_MEMBER_NOT_IN_ALIAS" },
-{ 1378 , "ERROR_MEMBER_IN_ALIAS" },
-{ 1379 , "ERROR_ALIAS_EXISTS" },
-{ 1380 , "ERROR_LOGON_NOT_GRANTED" },
-{ 1381 , "ERROR_TOO_MANY_SECRETS" },
-{ 1382 , "ERROR_SECRET_TOO_LONG" },
-{ 1383 , "ERROR_INTERNAL_DB_ERROR" },
-{ 1384 , "ERROR_TOO_MANY_CONTEXT_IDS" },
-{ 1385 , "ERROR_LOGON_TYPE_NOT_GRANTED" },
-{ 1386 , "ERROR_NT_CROSS_ENCRYPTION_REQUIRED" },
-{ 1387 , "ERROR_NO_SUCH_MEMBER" },
-{ 1388 , "ERROR_INVALID_MEMBER" },
-{ 1389 , "ERROR_TOO_MANY_SIDS" },
-{ 1390 , "ERROR_LM_CROSS_ENCRYPTION_REQUIRED" },
-{ 1391 , "ERROR_NO_INHERITANCE" },
-{ 1392 , "ERROR_FILE_CORRUPT" },
-{ 1393 , "ERROR_DISK_CORRUPT" },
-{ 1394 , "ERROR_NO_USER_SESSION_KEY" },
-{ 1395 , "ERROR_LICENSE_QUOTA_EXCEEDED" },
-{ 1400 , "ERROR_INVALID_WINDOW_HANDLE" },
-{ 1401 , "ERROR_INVALID_MENU_HANDLE" },
-{ 1402 , "ERROR_INVALID_CURSOR_HANDLE" },
-{ 1403 , "ERROR_INVALID_ACCEL_HANDLE" },
-{ 1404 , "ERROR_INVALID_HOOK_HANDLE" },
-{ 1405 , "ERROR_INVALID_DWP_HANDLE" },
-{ 1406 , "ERROR_TLW_WITH_WSCHILD" },
-{ 1407 , "ERROR_CANNOT_FIND_WND_CLASS" },
-{ 1408 , "ERROR_WINDOW_OF_OTHER_THREAD" },
-{ 1409 , "ERROR_HOTKEY_ALREADY_REGISTERED" },
-{ 1410 , "ERROR_CLASS_ALREADY_EXISTS" },
-{ 1411 , "ERROR_CLASS_DOES_NOT_EXIST" },
-{ 1412 , "ERROR_CLASS_HAS_WINDOWS" },
-{ 1413 , "ERROR_INVALID_INDEX" },
-{ 1414 , "ERROR_INVALID_ICON_HANDLE" },
-{ 1415 , "ERROR_PRIVATE_DIALOG_INDEX" },
-{ 1416 , "ERROR_LISTBOX_ID_NOT_FOUND" },
-{ 1417 , "ERROR_NO_WILDCARD_CHARACTERS" },
-{ 1418 , "ERROR_CLIPBOARD_NOT_OPEN" },
-{ 1419 , "ERROR_HOTKEY_NOT_REGISTERED" },
-{ 1420 , "ERROR_WINDOW_NOT_DIALOG" },
-{ 1421 , "ERROR_CONTROL_ID_NOT_FOUND" },
-{ 1422 , "ERROR_INVALID_COMBOBOX_MESSAGE" },
-{ 1423 , "ERROR_WINDOW_NOT_COMBOBOX" },
-{ 1424 , "ERROR_INVALID_EDIT_HEIGHT" },
-{ 1425 , "ERROR_DC_NOT_FOUND" },
-{ 1426 , "ERROR_INVALID_HOOK_FILTER" },
-{ 1427 , "ERROR_INVALID_FILTER_PROC" },
-{ 1428 , "ERROR_HOOK_NEEDS_HMOD" },
-{ 1429 , "ERROR_GLOBAL_ONLY_HOOK" },
-{ 1430 , "ERROR_JOURNAL_HOOK_SET" },
-{ 1431 , "ERROR_HOOK_NOT_INSTALLED" },
-{ 1432 , "ERROR_INVALID_LB_MESSAGE" },
-{ 1433 , "ERROR_SETCOUNT_ON_BAD_LB" },
-{ 1434 , "ERROR_LB_WITHOUT_TABSTOPS" },
-{ 1435 , "ERROR_DESTROY_OBJECT_OF_OTHER_THREAD" },
-{ 1436 , "ERROR_CHILD_WINDOW_MENU" },
-{ 1437 , "ERROR_NO_SYSTEM_MENU" },
-{ 1438 , "ERROR_INVALID_MSGBOX_STYLE" },
-{ 1439 , "ERROR_INVALID_SPI_VALUE" },
-{ 1440 , "ERROR_SCREEN_ALREADY_LOCKED" },
-{ 1441 , "ERROR_HWNDS_HAVE_DIFF_PARENT" },
-{ 1442 , "ERROR_NOT_CHILD_WINDOW" },
-{ 1443 , "ERROR_INVALID_GW_COMMAND" },
-{ 1444 , "ERROR_INVALID_THREAD_ID" },
-{ 1445 , "ERROR_NON_MDICHILD_WINDOW" },
-{ 1446 , "ERROR_POPUP_ALREADY_ACTIVE" },
-{ 1447 , "ERROR_NO_SCROLLBARS" },
-{ 1448 , "ERROR_INVALID_SCROLLBAR_RANGE" },
-{ 1449 , "ERROR_INVALID_SHOWWIN_COMMAND" },
-{ 1450 , "ERROR_NO_SYSTEM_RESOURCES" },
-{ 1451 , "ERROR_NONPAGED_SYSTEM_RESOURCES" },
-{ 1452 , "ERROR_PAGED_SYSTEM_RESOURCES" },
-{ 1453 , "ERROR_WORKING_SET_QUOTA" },
-{ 1454 , "ERROR_PAGEFILE_QUOTA" },
-{ 1455 , "ERROR_COMMITMENT_LIMIT" },
-{ 1456 , "ERROR_MENU_ITEM_NOT_FOUND" },
-{ 1500 , "ERROR_EVENTLOG_FILE_CORRUPT" },
-{ 1501 , "ERROR_EVENTLOG_CANT_START" },
-{ 1502 , "ERROR_LOG_FILE_FULL" },
-{ 1503 , "ERROR_EVENTLOG_FILE_CHANGED" },
-{ 1700 , "RPC_S_INVALID_STRING_BINDING" },
-{ 1701 , "RPC_S_WRONG_KIND_OF_BINDING" },
-{ 1702 , "RPC_S_INVALID_BINDING" },
-{ 1703 , "RPC_S_PROTSEQ_NOT_SUPPORTED" },
-{ 1704 , "RPC_S_INVALID_RPC_PROTSEQ" },
-{ 1705 , "RPC_S_INVALID_STRING_UUID" },
-{ 1706 , "RPC_S_INVALID_ENDPOINT_FORMAT" },
-{ 1707 , "RPC_S_INVALID_NET_ADDR" },
-{ 1708 , "RPC_S_NO_ENDPOINT_FOUND" },
-{ 1709 , "RPC_S_INVALID_TIMEOUT" },
-{ 1710 , "RPC_S_OBJECT_NOT_FOUND" },
-{ 1711 , "RPC_S_ALREADY_REGISTERED" },
-{ 1712 , "RPC_S_TYPE_ALREADY_REGISTERED" },
-{ 1713 , "RPC_S_ALREADY_LISTENING" },
-{ 1714 , "RPC_S_NO_PROTSEQS_REGISTERED" },
-{ 1715 , "RPC_S_NOT_LISTENING" },
-{ 1716 , "RPC_S_UNKNOWN_MGR_TYPE" },
-{ 1717 , "RPC_S_UNKNOWN_IF" },
-{ 1718 , "RPC_S_NO_BINDINGS" },
-{ 1719 , "RPC_S_NO_PROTSEQS" },
-{ 1720 , "RPC_S_CANT_CREATE_ENDPOINT" },
-{ 1721 , "RPC_S_OUT_OF_RESOURCES" },
-{ 1722 , "RPC_S_SERVER_UNAVAILABLE" },
-{ 1723 , "RPC_S_SERVER_TOO_BUSY" },
-{ 1724 , "RPC_S_INVALID_NETWORK_OPTIONS" },
-{ 1725 , "RPC_S_NO_CALL_ACTIVE" },
-{ 1726 , "RPC_S_CALL_FAILED" },
-{ 1727 , "RPC_S_CALL_FAILED_DNE" },
-{ 1728 , "RPC_S_PROTOCOL_ERROR" },
-{ 1730 , "RPC_S_UNSUPPORTED_TRANS_SYN" },
-{ 1732 , "RPC_S_UNSUPPORTED_TYPE" },
-{ 1733 , "RPC_S_INVALID_TAG" },
-{ 1734 , "RPC_S_INVALID_BOUND" },
-{ 1735 , "RPC_S_NO_ENTRY_NAME" },
-{ 1736 , "RPC_S_INVALID_NAME_SYNTAX" },
-{ 1737 , "RPC_S_UNSUPPORTED_NAME_SYNTAX" },
-{ 1739 , "RPC_S_UUID_NO_ADDRESS" },
-{ 1740 , "RPC_S_DUPLICATE_ENDPOINT" },
-{ 1741 , "RPC_S_UNKNOWN_AUTHN_TYPE" },
-{ 1742 , "RPC_S_MAX_CALLS_TOO_SMALL" },
-{ 1743 , "RPC_S_STRING_TOO_LONG" },
-{ 1744 , "RPC_S_PROTSEQ_NOT_FOUND" },
-{ 1745 , "RPC_S_PROCNUM_OUT_OF_RANGE" },
-{ 1746 , "RPC_S_BINDING_HAS_NO_AUTH" },
-{ 1747 , "RPC_S_UNKNOWN_AUTHN_SERVICE" },
-{ 1748 , "RPC_S_UNKNOWN_AUTHN_LEVEL" },
-{ 1749 , "RPC_S_INVALID_AUTH_IDENTITY" },
-{ 1750 , "RPC_S_UNKNOWN_AUTHZ_SERVICE" },
-{ 1751 , "EPT_S_INVALID_ENTRY" },
-{ 1752 , "EPT_S_CANT_PERFORM_OP" },
-{ 1753 , "EPT_S_NOT_REGISTERED" },
-{ 1754 , "RPC_S_NOTHING_TO_EXPORT" },
-{ 1755 , "RPC_S_INCOMPLETE_NAME" },
-{ 1756 , "RPC_S_INVALID_VERS_OPTION" },
-{ 1757 , "RPC_S_NO_MORE_MEMBERS" },
-{ 1758 , "RPC_S_NOT_ALL_OBJS_UNEXPORTED" },
-{ 1759 , "RPC_S_INTERFACE_NOT_FOUND" },
-{ 1760 , "RPC_S_ENTRY_ALREADY_EXISTS" },
-{ 1761 , "RPC_S_ENTRY_NOT_FOUND" },
-{ 1762 , "RPC_S_NAME_SERVICE_UNAVAILABLE" },
-{ 1763 , "RPC_S_INVALID_NAF_ID" },
-{ 1764 , "RPC_S_CANNOT_SUPPORT" },
-{ 1765 , "RPC_S_NO_CONTEXT_AVAILABLE" },
-{ 1766 , "RPC_S_INTERNAL_ERROR" },
-{ 1767 , "RPC_S_ZERO_DIVIDE" },
-{ 1768 , "RPC_S_ADDRESS_ERROR" },
-{ 1769 , "RPC_S_FP_DIV_ZERO" },
-{ 1770 , "RPC_S_FP_UNDERFLOW" },
-{ 1771 , "RPC_S_FP_OVERFLOW" },
-{ 1772 , "RPC_X_NO_MORE_ENTRIES" },
-{ 1773 , "RPC_X_SS_CHAR_TRANS_OPEN_FAIL" },
-{ 1774 , "RPC_X_SS_CHAR_TRANS_SHORT_FILE" },
-{ 1775 , "RPC_X_SS_IN_NULL_CONTEXT" },
-{ 1777 , "RPC_X_SS_CONTEXT_DAMAGED" },
-{ 1778 , "RPC_X_SS_HANDLES_MISMATCH" },
-{ 1779 , "RPC_X_SS_CANNOT_GET_CALL_HANDLE" },
-{ 1780 , "RPC_X_NULL_REF_POINTER" },
-{ 1781 , "RPC_X_ENUM_VALUE_OUT_OF_RANGE" },
-{ 1782 , "RPC_X_BYTE_COUNT_TOO_SMALL" },
-{ 1783 , "RPC_X_BAD_STUB_DATA" },
-{ 1784 , "ERROR_INVALID_USER_BUFFER" },
-{ 1785 , "ERROR_UNRECOGNIZED_MEDIA" },
-{ 1786 , "ERROR_NO_TRUST_LSA_SECRET" },
-{ 1787 , "ERROR_NO_TRUST_SAM_ACCOUNT" },
-{ 1788 , "ERROR_TRUSTED_DOMAIN_FAILURE" },
-{ 1789 , "ERROR_TRUSTED_RELATIONSHIP_FAILURE" },
-{ 1790 , "ERROR_TRUST_FAILURE" },
-{ 1791 , "RPC_S_CALL_IN_PROGRESS" },
-{ 1792 , "ERROR_NETLOGON_NOT_STARTED" },
-{ 1793 , "ERROR_ACCOUNT_EXPIRED" },
-{ 1794 , "ERROR_REDIRECTOR_HAS_OPEN_HANDLES" },
-{ 1795 , "ERROR_PRINTER_DRIVER_ALREADY_INSTALLED" },
-{ 1796 , "ERROR_UNKNOWN_PORT" },
-{ 1797 , "ERROR_UNKNOWN_PRINTER_DRIVER" },
-{ 1798 , "ERROR_UNKNOWN_PRINTPROCESSOR" },
-{ 1799 , "ERROR_INVALID_SEPARATOR_FILE" },
-{ 1800 , "ERROR_INVALID_PRIORITY" },
-{ 1801 , "ERROR_INVALID_PRINTER_NAME" },
-{ 1802 , "ERROR_PRINTER_ALREADY_EXISTS" },
-{ 1803 , "ERROR_INVALID_PRINTER_COMMAND" },
-{ 1804 , "ERROR_INVALID_DATATYPE" },
-{ 1805 , "ERROR_INVALID_ENVIRONMENT" },
-{ 1806 , "RPC_S_NO_MORE_BINDINGS" },
-{ 1807 , "ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT" },
-{ 1808 , "ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT" },
-{ 1809 , "ERROR_NOLOGON_SERVER_TRUST_ACCOUNT" },
-{ 1810 , "ERROR_DOMAIN_TRUST_INCONSISTENT" },
-{ 1811 , "ERROR_SERVER_HAS_OPEN_HANDLES" },
-{ 1812 , "ERROR_RESOURCE_DATA_NOT_FOUND" },
-{ 1813 , "ERROR_RESOURCE_TYPE_NOT_FOUND" },
-{ 1814 , "ERROR_RESOURCE_NAME_NOT_FOUND" },
-{ 1815 , "ERROR_RESOURCE_LANG_NOT_FOUND" },
-{ 1816 , "ERROR_NOT_ENOUGH_QUOTA" },
-{ 1817 , "RPC_S_NO_INTERFACES" },
-{ 1818 , "RPC_S_CALL_CANCELLED" },
-{ 1819 , "RPC_S_BINDING_INCOMPLETE" },
-{ 1820 , "RPC_S_COMM_FAILURE" },
-{ 1821 , "RPC_S_UNSUPPORTED_AUTHN_LEVEL" },
-{ 1822 , "RPC_S_NO_PRINC_NAME" },
-{ 1823 , "RPC_S_NOT_RPC_ERROR" },
-{ 1824 , "RPC_S_UUID_LOCAL_ONLY" },
-{ 1825 , "RPC_S_SEC_PKG_ERROR" },
-{ 1826 , "RPC_S_NOT_CANCELLED" },
-{ 1827 , "RPC_X_INVALID_ES_ACTION" },
-{ 1828 , "RPC_X_WRONG_ES_VERSION" },
-{ 1829 , "RPC_X_WRONG_STUB_VERSION" },
-{ 1898 , "RPC_S_GROUP_MEMBER_NOT_FOUND" },
-{ 1899 , "EPT_S_CANT_CREATE" },
-{ 1900 , "RPC_S_INVALID_OBJECT" },
-{ 1901 , "ERROR_INVALID_TIME" },
-{ 1902 , "ERROR_INVALID_FORM_NAME" },
-{ 1903 , "ERROR_INVALID_FORM_SIZE" },
-{ 1904 , "ERROR_ALREADY_WAITING" },
-{ 1905 , "ERROR_PRINTER_DELETED" },
-{ 1906 , "ERROR_INVALID_PRINTER_STATE" },
-{ 1907 , "ERROR_PASSWORD_MUST_CHANGE" },
-{ 1908 , "ERROR_DOMAIN_CONTROLLER_NOT_FOUND" },
-{ 1909 , "ERROR_ACCOUNT_LOCKED_OUT" },
-{ 6118 , "ERROR_NO_BROWSER_SERVERS_FOUND" },
-{ 2000 , "ERROR_INVALID_PIXEL_FORMAT" },
-{ 2001 , "ERROR_BAD_DRIVER" },
-{ 2002 , "ERROR_INVALID_WINDOW_STYLE" },
-{ 2003 , "ERROR_METAFILE_NOT_SUPPORTED" },
-{ 2004 , "ERROR_TRANSFORM_NOT_SUPPORTED" },
-{ 2005 , "ERROR_CLIPPING_NOT_SUPPORTED" },
-{ 3000 , "ERROR_UNKNOWN_PRINT_MONITOR" },
-{ 3001 , "ERROR_PRINTER_DRIVER_IN_USE" },
-{ 3002 , "ERROR_SPOOL_FILE_NOT_FOUND" },
-{ 3003 , "ERROR_SPL_NO_STARTDOC" },
-{ 3004 , "ERROR_SPL_NO_ADDJOB" },
-{ 3005 , "ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED" },
-{ 3006 , "ERROR_PRINT_MONITOR_ALREADY_INSTALLED" },
-{ 4000 , "ERROR_WINS_INTERNAL" },
-{ 4001 , "ERROR_CAN_NOT_DEL_LOCAL_WINS" },
-{ 4002 , "ERROR_STATIC_INIT" },
-{ 4003 , "ERROR_INC_BACKUP" },
-{ 4004 , "ERROR_FULL_BACKUP" },
-{ 4005 , "ERROR_REC_NON_EXISTENT" },
-{ 4006 , "ERROR_RPL_NOT_ALLOWED" },
-{ 10004 , "WSAEINTR" },
-{ 10009 , "WSAEBADF" },
-{ 10013 , "WSAEACCES" },
-{ 10014 , "WSAEFAULT" },
-{ 10022 , "WSAEINVAL" },
-{ 10024 , "WSAEMFILE" },
-{ 10035 , "WSAEWOULDBLOCK" },
-{ 10036 , "WSAEINPROGRESS" },
-{ 10037 , "WSAEALREADY" },
-{ 10038 , "WSAENOTSOCK" },
-{ 10039 , "WSAEDESTADDRREQ" },
-{ 10040 , "WSAEMSGSIZE" },
-{ 10041 , "WSAEPROTOTYPE" },
-{ 10042 , "WSAENOPROTOOPT" },
-{ 10043 , "WSAEPROTONOSUPPORT" },
-{ 10044 , "WSAESOCKTNOSUPPORT" },
-{ 10045 , "WSAEOPNOTSUPP" },
-{ 10046 , "WSAEPFNOSUPPORT" },
-{ 10047 , "WSAEAFNOSUPPORT" },
-{ 10048 , "WSAEADDRINUSE" },
-{ 10049 , "WSAEADDRNOTAVAIL" },
-{ 10050 , "WSAENETDOWN" },
-{ 10051 , "WSAENETUNREACH" },
-{ 10052 , "WSAENETRESET" },
-{ 10053 , "WSAECONNABORTED" },
-{ 10054 , "WSAECONNRESET" },
-{ 10055 , "WSAENOBUFS" },
-{ 10056 , "WSAEISCONN" },
-{ 10057 , "WSAENOTCONN" },
-{ 10058 , "WSAESHUTDOWN" },
-{ 10059 , "WSAETOOMANYREFS" },
-{ 10060 , "WSAETIMEDOUT" },
-{ 10061 , "WSAECONNREFUSED" },
-{ 10062 , "WSAELOOP" },
-{ 10063 , "WSAENAMETOOLONG" },
-{ 10064 , "WSAEHOSTDOWN" },
-{ 10065 , "WSAEHOSTUNREACH" },
-{ 10066 , "WSAENOTEMPTY" },
-{ 10067 , "WSAEPROCLIM" },
-{ 10068 , "WSAEUSERS" },
-{ 10069 , "WSAEDQUOT" },
-{ 10070 , "WSAESTALE" },
-{ 10071 , "WSAEREMOTE" },
-{ 10101 , "WSAEDISCON" },
-{ 10091 , "WSASYSNOTREADY" },
-{ 10092 , "WSAVERNOTSUPPORTED" },
-{ 10093 , "WSANOTINITIALISED" },
-{ 11001 , "WSAHOST_NOT_FOUND" },
-{ 11002 , "WSATRY_AGAIN" },
-{ 11003 , "WSANO_RECOVERY" },
-{ 11004 , "WSANO_DATA" },
-{ 0, NULL }
-};
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/objndx.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/objndx.h
deleted file mode 100644
index 09573ffeb03..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/objndx.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-#ifndef __objndx_h
-#define __objndx_h
-
-/* Define maximum length of object name strings */
-#define OBJNDXNAMLEN 16
-
-/* Functions in objndx.c */
-extern void * objndx_create(int size, void (*freefunc)(void *));
-extern char * objndx_register(void * objndx, void * objptr, char * namebuf);
-extern void * objndx_lookup(void * objndx, char * objname);
-extern void * objndx_remove(void * objndx, char * objname);
-extern void objndx_destroy(void * objndx);
-
-#endif /* __objndx_h */
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/pblock.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/pblock.h
deleted file mode 100644
index dc0c8de76e4..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/pblock.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * pblock.h: Header for Parameter Block handling functions
- *
- *
- * A parameter block is a set of name=value pairs which are generally used
- * as parameters, but can be anything. They are kept in a hash table for
- * reasonable speed, but if you are doing any intensive modification or
- * access of them you should probably make a local copy of each parameter
- * while working.
- *
- * When creating a pblock, you specify the hash table size for that pblock.
- * You should set this size larger if you know that many items will be in
- * that pblock, and smaller if only a few will be used or if speed is not
- * a concern.
- *
- * The hashing function is very simple right now, and only looks at the
- * first character of name.
- *
- * Rob McCool
- *
- */
-
-#ifndef PBLOCK_H
-#define PBLOCK_H
-
-/*
- * Requires that the macros MALLOC and STRDUP be set to "safe" versions that
- * will exit if no memory is available. If not under MCC httpd, define
- * them to be the real functions and play with fire, or make your own
- * function.
- */
-
-#include "../netsite.h"
-
-#include <ctype.h> /* isspace */
-#include <stdio.h> /* sprintf */
-#include <string.h> /* strlen, strcmp */
-
-
-/* ------------------------------ Structures ------------------------------ */
-
-
-typedef struct {
- char *name,*value;
-} pb_param;
-
-struct pb_entry {
- pb_param *param;
- struct pb_entry *next;
-};
-
-typedef struct {
- int hsize;
- struct pb_entry **ht;
-} pblock;
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * param_create creates a parameter with the given name and value. If name
- * and value are non-NULL, they are copied and placed into the new pb_param
- * struct.
- */
-
-pb_param *param_create(char *name, char *value);
-
-/*
- * param_free frees a given parameter if it's non-NULL, and returns 1 if
- * p was non-NULL, and 0 if p was NULL.
- *
- * Useful for error checking pblock_remove.
- */
-
-int param_free(pb_param *pp);
-
-/*
- * pblock_create creates a new pblock with hash table size n.
- *
- * It returns the newly allocated pblock.
- */
-
-pblock *pblock_create(int n);
-
-/*
- * pblock_free frees the given pblock and any entries inside it.
- *
- * If you want to save anything in a pblock, remove its entities with
- * pblock_remove first and save the pointers you get.
- */
-
-void pblock_free(pblock *pb);
-
-/*
- * pblock_find finds the entry with the given name in pblock pb.
- *
- * If it is successful, it returns the param block. If not, it returns NULL.
- */
-
-#define pblock_find(name, pb) (_pblock_fr(name,pb,0))
-
-/*
- * pblock_findval finds the entry with the given name in pblock pb, and
- * returns its value, otherwise returns NULL.
- */
-
-char *pblock_findval(char *name, pblock *pb);
-
-/*
- * pblock_remove behaves exactly like pblock_find, but removes the given
- * entry from pb.
- */
-
-#define pblock_remove(name, pb) (_pblock_fr(name,pb,1))
-
-/*
- * pblock_nvinsert creates a new parameter with the given name and value
- * and inserts it into pblock pb. The name and value in the parameter are
- * also newly allocated. Returns the pb_param it allocated (in case you
- * need it).
- *
- * pblock_nninsert inserts a numerical value.
- */
-
-pb_param *pblock_nvinsert(char *name, char *value, pblock *pb);
-pb_param *pblock_nninsert(char *name, int value, pblock *pb);
-
-/*
- * pblock_pinsert inserts a pb_param into a pblock.
- */
-
-void pblock_pinsert(pb_param *pp, pblock *pb);
-
-/*
- * pblock_str2pblock scans the given string str for parameter pairs
- * name=value, or name="value". Any \ must be followed by a literal
- * character. If a string value is found, with no unescaped = signs, it
- * will be added with the name 1, 2, 3, etc. depending on whether it was
- * first, second, third, etc. in the stream (zero doesn't count).
- *
- * Returns the number of parameters added to the table, or -1 upon error.
- */
-
-int pblock_str2pblock(char *str, pblock *pb);
-
-/*
- * pblock_pblock2str places all of the parameters in the given pblock
- * into the given string (NULL if it needs creation). It will re-allocate
- * more space for the string. Each parameter is separated by a space and of
- * the form name="value"
- */
-
-char *pblock_pblock2str(pblock *pb, char *str);
-
-/*
- * pblock_copy copies the entries in the given source pblock to the
- * destination one. The entries are newly allocated so that the original
- * pblock may be freed or the new one changed without affecting the other.
- */
-
-void pblock_copy(pblock *src, pblock *dst);
-
-/*
- * pblock_pb2env copies the given pblock into the given environment, with
- * one new env entry for each name/value pair in the pblock.
- */
-
-char **pblock_pb2env(pblock *pb, char **env);
-
-
-/* --------------------------- Internal things ---------------------------- */
-
-
-pb_param *_pblock_fr(char *name, pblock *pb, int remove);
-
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/sem.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/sem.h
deleted file mode 100644
index a6d061b1a5b..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/sem.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * sem.h: Attempt to provide multi-process semaphores across platforms
- *
- * Rob McCool
- */
-
-
-#ifndef SEM_H
-#define SEM_H
-
-#include "systems.h"
-
-
-/* All of the implementations currently use int as the semaphore type */
-#ifdef SEM_WIN32
-typedef HANDLE SEMAPHORE;
-#define SEM_ERROR NULL
-/* That oughta hold them (I hope) */
-#define SEM_MAXVALUE 32767
-
-#else /* ! SEM_WIN32 */
-typedef int SEMAPHORE;
-#define SEM_ERROR -1
-#endif /* SEM_WIN32 */
-
-/*
- * sem_init creates a semaphore using the given name and unique
- * identification number. filename should be a file accessible to the
- * process. Returns SEM_ERROR on error.
- */
-
-SEMAPHORE sem_init(char *name, int number);
-
-/*
- * sem_terminate de-allocates the given semaphore.
- */
-
-void sem_terminate(SEMAPHORE id);
-
-/*
- * sem_grab attempts to gain exclusive access to the given semaphore. If
- * it can't get it, the caller will block. Returns -1 on error.
- */
-
-int sem_grab(SEMAPHORE id);
-
-/*
- * sem_release releases this process's exclusive control over the given
- * semaphore. Returns -1 on error.
- */
-
-int sem_release(SEMAPHORE id);
-
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/session.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/session.h
deleted file mode 100644
index 4531a34e966..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/session.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * session.h: Deals with virtual sessions
- *
- * A session is the time between when a client connects and when it
- * disconnects. Several requests may be handled in one session.
- *
- * Rob McCool
- */
-
-
-#ifndef SESSION_H
-#define SESSION_H
-
-
-#include "../netsite.h" /* MALLOC etc */
-#include "net.h" /* dns-related stuff */
-#include "buffer.h" /* netbuf */
-
-
-/* ------------------------------ Structures ------------------------------ */
-
-
-
-#define SESSION_HASHSIZE 5
-
-
-typedef struct {
- /* Client-specific information */
- pblock *client;
-
- SYS_NETFD csd;
- netbuf *inbuf;
-
- struct in_addr iaddr;
-} Session;
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * session_create creates a new request structure for the client with the
- * given socket descriptor and sockaddr.
- */
-
-Session *session_create(SYS_NETFD csd, struct sockaddr_in *sac);
-
-/*
- * session_free frees the given session
- */
-
-void session_free(Session *sn);
-
-/*
- * session_dns returns the DNS hostname of the client of this session,
- * and inserts it into the client pblock. Returns NULL if unavailable.
- */
-
-#define session_dns(sn) session_dns_lookup(sn, 0)
-
-/*
- * session_maxdns looks up a hostname from an IP address, and then verifies
- * that the host is really who they claim to be.
- */
-
-#define session_maxdns(sn) session_dns_lookup(sn, 1)
-
-char *session_dns_lookup(Session *sn, int verify);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h
deleted file mode 100644
index d7a49a65aaf..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * shexp.h: Defines and prototypes for shell exp. match routines
- *
- *
- * This routine will match a string with a shell expression. The expressions
- * accepted are based loosely on the expressions accepted by zsh.
- *
- * o * matches anything
- * o ? matches one character
- * o \ will escape a special character
- * o $ matches the end of the string
- * o [abc] matches one occurence of a, b, or c. The only character that needs
- * to be escaped in this is ], all others are not special.
- * o [a-z] matches any character between a and z
- * o [^az] matches any character except a or z
- * o ~ followed by another shell expression will remove any pattern
- * matching the shell expression from the match list
- * o (foo|bar) will match either the substring foo, or the substring bar.
- * These can be shell expressions as well.
- *
- * The public interface to these routines is documented below.
- *
- * Rob McCool
- *
- */
-
-#ifndef SHEXP_H
-#define SHEXP_H
-
-/*
- * Requires that the macro MALLOC be set to a "safe" malloc that will
- * exit if no memory is available. If not under MCC httpd, define MALLOC
- * to be the real malloc and play with fire, or make your own function.
- */
-
-#include "../netsite.h"
-
-#include <ctype.h> /* isalnum */
-#include <string.h> /* strlen */
-
-
-
-/* --------------------------- Public routines ---------------------------- */
-
-
-/*
- * shexp_valid takes a shell expression exp as input. It returns:
- *
- * NON_SXP if exp is a standard string
- * INVALID_SXP if exp is a shell expression, but invalid
- * VALID_SXP if exp is a valid shell expression
- */
-
-#define NON_SXP -1
-#define INVALID_SXP -2
-#define VALID_SXP 1
-
-int shexp_valid(char *exp);
-
-/*
- * shexp_match
- *
- * Takes a prevalidated shell expression exp, and a string str.
- *
- * Returns 0 on match and 1 on non-match.
- */
-
-int shexp_match(char *str, char *exp);
-
-
-/*
- * shexp_cmp
- *
- * Same as above, but validates the exp first. 0 on match, 1 on non-match,
- * -1 on invalid exp. shexp_casecmp does the same thing but is case
- * insensitive.
- */
-
-int shexp_cmp(char *str, char *exp);
-int shexp_casecmp(char *str, char *exp);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shmem.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shmem.h
deleted file mode 100644
index 345efe9ad2f..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shmem.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * shmem.h: Portable abstraction for memory shared among a server's workers
- *
- * Rob McCool
- */
-
-
-#ifndef _SHMEM_H
-#define _SHMEM_H
-
-#include "netsite.h"
-#include "systems.h"
-
-
-/* --------------------------- Data structures ---------------------------- */
-
-
-#if defined (SHMEM_UNIX_MMAP) || defined (SHMEM_WIN32_MMAP)
-#include "file.h" /* SYS_FILE */
-
-typedef struct {
- void *data; /* the data */
-#ifdef SHMEM_WIN32_MMAP
- HANDLE fdmap;
-#endif /* SHMEM_WIN32_MMAP */
- int size; /* the maximum length of the data */
-
- char *name; /* internal use: filename to unlink if exposed */
- SYS_FILE fd; /* internal use: file descriptor for region */
-} shmem_s;
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * shmem_alloc allocates a region of shared memory of the given size, using
- * the given name to avoid conflicts between multiple regions within the
- * program. The region will not be automatically grown if its boundaries
- * are over-run, use shmem_realloc for that.
- *
- * If expose is non-zero and the underlying system supports it, the
- * file used to create the shared region will be visible to other processes
- * running on the system.
- *
- * name should be unique to the program which calls this routine, otherwise
- * conflicts will arise.
- *
- * Returns a new shared memory region, with the data element being a
- * pointer to the shared memory. This function must be called before any
- * daemon workers are spawned, in order for the handle to the shared region
- * to be inherited by the children.
- *
- * Because of the requirement that the region must be inherited by the
- * children, the region cannot be re-allocated with a larger size when
- * necessary.
- */
-shmem_s *shmem_alloc(char *name, int size, int expose);
-
-
-/*
- * shmem_free de-allocates the specified region of shared memory.
- */
-void shmem_free(shmem_s *region);
-
-#endif /* SHMEM_UNIX_MMAP || SHMEM_WIN32_MMAP */
-
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systems.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systems.h
deleted file mode 100644
index 5635625e2bb..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systems.h
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * systems.h: Lists of defines for systems
- *
- * This sets what general flavor the system is (UNIX, etc.),
- * and defines what extra functions your particular system needs.
- */
-
-
-#ifndef SYSTEMS_H
-#define SYSTEMS_H
-
-#include <string.h>
-
-
-#define DAEMON_ANY
-#define DAEMON_LISTEN_SIZE 128
-#ifndef MCC_ADMSERV
-#define DAEMON_STATS
-#endif
-
-/* Linux is not currently supported */
-#ifdef linux
-
-#define FILE_UNIX
-#undef FILE_STDIO
-#undef DAEMON_UNIX_FORK
-#undef DAEMON_UNIX_POOL
-#define DAEMON_UNIX_MOBRULE
-#undef DAEMON_STATS
-#define BSD_FLOCK
-#define BSD_RLIMIT
-#define NET_SOCKETS
-#define FILE_UNIX_MMAP
-#define FILE_MMAP_FLAGS (MAP_FILE | MAP_PRIVATE)
-#undef BSD_SIGNALS
-
-#undef NEED_CRYPT_PROTO
-#undef AUTH_DBM
-#define SEM_FLOCK
-
-
-#define ZERO(ptr,len) memset(ptr,0,len)
-
-#elif defined(BSDI)
-
-#define FILE_UNIX
-#define DAEMON_UNIX_MOBRULE
-#define BSD_FLOCK
-#define BSD_RLIMIT
-#define NET_SOCKETS
-#define FILE_UNIX_MMAP
-#define FILE_MMAP_FLAGS (MAP_FILE | MAP_PRIVATE)
-#define BSD_SIGNALS
-#define BSD_TIME
-#define BSD_MAIL
-#undef NEED_CRYPT_PROTO
-#define AUTH_DBM
-#define SEM_FLOCK
-
-#define ZERO(ptr,len) memset(ptr,0,len)
-
-#elif defined(SOLARIS)
-
-#define FILE_UNIX
-#undef FILE_STDIO
-#define DAEMON_UNIX_MOBRULE
-#define DAEMON_NEEDS_SEMAPHORE
-#define NET_SOCKETS
-#define FILE_UNIX_MMAP
-#define FILE_MMAP_FLAGS MAP_PRIVATE
-#undef BSD_SIGNALS
-#define BSD_RLIMIT
-#define NEED_CRYPT_H
-#define AUTH_DBM
-/* The Solaris routines return ENOSPC when too many semaphores are SEM_UNDO. */
-#define SEM_FLOCK
-#define DLL_CAPABLE
-#define DLL_DLOPEN
-
-#define ZERO(ptr,len) memset(ptr,0,len)
-
-#elif defined(SUNOS4)
-
-#define BSD_SIGNALS
-#define BSD_TIME
-#define BSD_MAIL
-#define BSD_FLOCK
-#define BSD_RLIMIT
-#define FILE_UNIX
-#undef FILE_STDIO
-#define DAEMON_UNIX_MOBRULE
-#define NET_SOCKETS
-#define FILE_UNIX_MMAP
-#define FILE_MMAP_FLAGS MAP_PRIVATE
-#undef NEED_CRYPT_H
-#define NEED_CRYPT_PROTO
-#define AUTH_DBM
-#define SEM_FLOCK
-#define ZERO(ptr,len) memset(ptr,0,len)
-#define DLL_CAPABLE
-#define DLL_DLOPEN
-
-#elif defined(OSF1)
-
-#undef BSD_SIGNALS
-#define BSD_TIME
-#define BSD_FLOCK
-#define BSD_RLIMIT
-#define FILE_UNIX
-#undef FILE_STDIO
-#define DAEMON_UNIX_MOBRULE
-#define DAEMON_NEEDS_SEMAPHORE
-#define NET_SOCKETS
-#define FILE_UNIX_MMAP
-#define FILE_MMAP_FLAGS MAP_PRIVATE
-#define AUTH_DBM
-#define SEM_FLOCK
-#define ZERO(ptr,len) memset(ptr,0,len)
-#define DLL_CAPABLE
-#define DLL_DLOPEN
-
-#elif defined(AIX)
-
-#define FILE_UNIX
-#undef FILE_STDIO
-#undef DAEMON_UNIX_FORK
-#undef DAEMON_UNIX_POOL
-#define DAEMON_UNIX_MOBRULE
-#define DAEMON_NEEDS_SEMAPHORE
-#define NET_SOCKETS
-#define FILE_UNIX_MMAP
-#define FILE_MMAP_FLAGS MAP_PRIVATE
-#undef BSD_SIGNALS
-#define BSD_RLIMIT
-#undef NEED_CRYPT_H
-#define AUTH_DBM
-#define SEM_FLOCK
-#define ZERO(ptr,len) memset(ptr,0,len)
-#define DLL_CAPABLE
-#define DLL_DLOPEN
-
-#elif defined(HPUX)
-
-#define FILE_UNIX
-#undef FILE_STDIO
-#define DAEMON_UNIX_MOBRULE
-#define DAEMON_NEEDS_SEMAPHORE
-#define NET_SOCKETS
-#define FILE_UNIX_MMAP
-#define FILE_MMAP_FLAGS MAP_PRIVATE
-#undef BSD_SIGNALS
-#undef BSD_RLIMIT
-#undef NEED_CRYPT_H
-#define AUTH_DBM
-#define SEM_FLOCK
-#define ZERO(ptr,len) memset(ptr,0,len)
-#define DLL_CAPABLE
-#define DLL_HPSHL
-
-#elif defined (IRIX)
-
-#define FILE_UNIX
-#undef FILE_STDIO
-#undef DAEMON_UNIX_FORK
-#undef DAEMON_UNIX_POOL
-#define DAEMON_UNIX_MOBRULE
-#define DLL_CAPABLE
-#define DLL_DLOPEN
-#define NET_SOCKETS
-#define FILE_UNIX_MMAP
-#define FILE_MMAP_FLAGS MAP_PRIVATE
-#undef BSD_SIGNALS
-#define BSD_RLIMIT
-#define NEED_CRYPT_H
-#define AUTH_DBM
-#define SEM_FLOCK
-#define ZERO(ptr,len) memset(ptr,0,len)
-
-#else /* Windows NT */
-
-#include <wtypes.h>
-#include <winbase.h>
-
-typedef void* PASSWD;
-
-#define FILE_WIN32
-#define NET_SOCKETS
-#define NET_WINSOCK
-#define DAEMON_WIN32
-#undef AUTH_DBM
-#define ZERO(ptr, len) ZeroMemory(ptr, len)
-#define SEM_WIN32
-#define DLL_CAPABLE
-#define DLL_WIN32
-#define NO_NODELOCK /* aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagh */
-
-/* The stat call under NT doesn't define these macros */
-#define S_ISDIR(mode) ((mode&S_IFMT) == S_IFDIR)
-#define S_ISREG(mode) ((mode&S_IFMT) == S_IFREG)
-
-#define strcasecmp util_strcasecmp
-#define strncasecmp util_strncasecmp
-int util_strcasecmp(const char *s1, const char *s2);
-int util_strncasecmp(const char *s1, const char *s2, int n);
-#endif /* Windows NT */
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systhr.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systhr.h
deleted file mode 100644
index f359b8b9a64..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systhr.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * systhr.h: Abstracted threading mechanisms
- *
- * Rob McCool
- */
-
-#ifndef _SYSTHR_H
-#define _SYSTHR_H
-
-#include "netsite.h"
-#include "systems.h"
-
-#ifdef THREAD_ANY
-
-#ifdef USE_NSPR
-#include <nspr/prthread.h>
-#include <nspr/prglobal.h>
-
-typedef PRThread* SYS_THREAD;
-#endif
-
-#ifdef THREAD_WIN32
-#include <nspr/prthread.h>
-#include <nspr/prglobal.h>
-#include <process.h>
-typedef struct {
- HANDLE hand;
- DWORD id;
-} sys_thread_s;
-typedef sys_thread_s *SYS_THREAD;
-#endif
-
-/*
- * systhread_start creates a thread with the given priority, will allocate
- * a stack of stksz bytes, and calls fn with arg as its argument. stksz
- * of zero will allocate a default stack size.
- *
- * XXX Priorities are system dependent
- */
-
-SYS_THREAD systhread_start(int prio, int stksz, void (*fn)(void *), void *arg);
-
-/*
- * systhread_current returns a pointer to the current thread.
- */
-#ifdef USE_NSPR
-#define systhread_current() PR_CurrentThread()
-#elif defined(THREAD_WIN32)
-#define systhread_current() GetCurrentThreadId()
-#endif
-
-/*
- * systhread_attach makes an existing thread an NSPR thread. Currently this
- * is used only in NT.
- */
-
-SYS_THREAD systhread_attach();
-
-/*
- * systhread_terminate terminates the thread that is passed in.
- */
-void systhread_terminate(SYS_THREAD thr);
-
-
-/*
- * systhread_sleep puts the calling thread to sleep for the given number
- * of milliseconds.
- */
-void systhread_sleep(int milliseconds);
-
-/*
- * systhread_init initializes the threading system. name is a name for the
- * program for debugging.
- */
-void systhread_init(char *name);
-
-/*
- * systhread_timerset starts or re-sets the interrupt timer for a thread
- * system. This should be considered a suggestion as most systems don't allow
- * the timer interval to be changed.
- */
-#ifdef THREAD_NSPR_USER
-#define systhread_timerset(usec) PR_StartEvents(usec)
-
-#elif defined(USE_NSPR)
-#define systhread_timerset(usec) (void)(usec)
-
-#elif defined(THREAD_WIN32)
-#define systhread_timerset(usec) (void)(usec)
-#endif
-
-
-/*
- * newkey allocates a new integer id for thread-private data. Use this
- * key to identify a variable which you want to appear differently
- * between threads, and then use setdata to associate a value with this
- * key for each thread.
- */
-int systhread_newkey(void);
-
-/*
- * Get data that has been previously associated with key in this thread.
- * Returns NULL if setkey has not been called with this key by this
- * thread previously, or the data that was previously used with setkey
- * by this thread with this key.
- */
-void *systhread_getdata(int key);
-
-/*
- * Associate data with the given key number in this thread.
- */
-void systhread_setdata(int key, void *data);
-
-#endif
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/util.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/util.h
deleted file mode 100644
index 17972cb518a..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/util.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * util.h: A hodge podge of utility functions and standard functions which
- * are unavailable on certain systems
- *
- * Rob McCool
- */
-
-
-#ifndef HTTPD_UTIL_H
-#define HTTPD_UTIL_H
-
-#include "buffer.h" /* filebuf for getline */
-
-#include <time.h> /* struct tm */
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * getline scans in buf until it finds a LF or CRLF, storing the string in
- * l. It will terminate the string and return:
- *
- * 0 when done, with the scanned line (minus CR or LF) in l
- * 1 upon EOF, with the scanned line (minus CR or LF) in l
- * -1 on error with the error description in l (uses lineno for information)
- */
-
-int util_getline(filebuf *buf, int lineno, int maxlen, char *l);
-
-
-/*
- * can_exec returns 1 if you can execute the file described by finfo, and
- * 0 if you can't.
- */
-
-#ifdef XP_UNIX
-#include <sys/stat.h>
-#include <sys/types.h>
-
-int util_can_exec(struct stat *finfo, uid_t uid, gid_t gid);
-
-#endif /* XP_UNIX */
-/*
- * env_create creates a new environment with the given env, with n new
- * entries, and places the current position that you should add your
- * entries with at pos.
- *
- * If env is NULL, it will allocate a new one. If not, it will reallocate
- * that one.
- */
-
-char **util_env_create(char **env, int n, int *pos);
-
-/*
- * util_env_str allocates a string from the given name and value and
- * returns it. It does not check for things like = signs in name.
- */
-
-char *util_env_str(char *name, char *value);
-
-/*
- * env_replace replaces the occurrence of the given variable with the
- * value you give.
- */
-
-void util_env_replace(char **env, char *name, char *value);
-
-/*
- * util_env_free frees an environment.
- */
-
-void util_env_free(char **env);
-
-/*
- * util_env_find looks through env for the named string. Returns the
- * corresponding value if the named string is found, or NULL if not.
- */
-char *util_env_find(char **env, char *name);
-
-
-/*
- * hostname gets the local hostname. Returns NULL if it can't find a FQDN.
- * You are free to realloc or free this string.
- */
-
-char *util_hostname(void);
-
-
-/*
- * chdir2path changes the current directory to the one that the file
- * path is in. path should point to a file. Caveat: path must be a writable
- * string. It won't get modified permanently.
- */
-
-int util_chdir2path(char *path);
-
-/*
- * is_mozilla checks if the given user-agent is mozilla, of at least
- * the given major and minor revisions. These are strings to avoid
- * ambiguities like 1.56 > 1.5
- */
-
-int util_is_mozilla(char *ua, char *major, char *minor);
-
-/*
- * is_url will return 1 if the given string seems to be a URL, or will
- * return 0 otherwise.
- *
- * Because of stupid news URLs, this will return 1 if the string has
- * all alphabetic characters up to the first colon and will not check for
- * the double slash.
- */
-
-int util_is_url(char *url);
-
-/*
- * util_later_than checks the date in the string ims, and if that date is
- * later than or equal to the one in the tm struct lms, then it returns 1.
- *
- * Handles RFC 822, 850, and ctime formats.
- */
-
-int util_later_than(struct tm *lms, char *ims);
-
-
-/*
- * util_uri_is_evil returns 1 if a URL has ../ or // in it.
- */
-int util_uri_is_evil(char *t);
-
-/*
- * util_uri_parse gets rid of /../, /./, and //.
- *
- * Assumes that either the string starts with a /, or the string will
- * not .. right off of its beginning. As such, ../foo.gif will
- * not be changed, although /../foo.gif will become /foo.gif.
- */
-
-void util_uri_parse(char *uri);
-
-/*
- * util_uri_unescape unescapes the given URI in place (% conversions only).
- */
-
-void util_uri_unescape(char *s);
-
-/*
- * util_uri_escape escapes any nasty chars in s and copies the string into d.
- * If d is NULL, it will allocate and return a properly sized string.
- * Warning: does not check bounds on a given d.
- *
- * util_url_escape does the same thing but does it for a url, i.e. ?:+ is
- * not escaped.
- */
-
-char *util_uri_escape(char *d, char *s);
-char *util_url_escape(char *d, char *s);
-
-/*
- * util_sh_escape places a \ in front of any shell-special characters.
- * Returns a newly-allocated copy of the string.
- */
-
-char *util_sh_escape(char *s);
-
-/*
- * util_itoa converts the given integer to a string into a.
- */
-
-int util_itoa(int i, char *a);
-
-/*
- * util_vsprintf and util_sprintf are simplified clones of the System V
- * vsprintf and sprintf routines.
- *
- * Returns the number of characters printed. Only handles %d and %s,
- * does not handle any width or precision.
- */
-
-#include <stdarg.h>
-
-int util_vsprintf(char *s, register char *fmt, va_list args);
-int util_sprintf(char *s, char *fmt, ...);
-
-/* These routines perform bounds checks. */
-int util_vsnprintf(char *s, int n, register char *fmt, va_list args);
-int util_snprintf(char *s, int n, char *fmt, ...);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/conf.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/conf.h
deleted file mode 100644
index 79a8b84dbbc..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/conf.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * conf.h: Deals with the server configuration file.
- *
- * Object configuration is an entirely different matter. This deals with
- * things like what port the server runs on, how many children it spawns,
- * and other server-related issues. Information related configuration is
- * handled by the object conf.
- *
- * Rob McCool
- */
-
-
-#ifndef CONF_H
-#define CONF_H
-
-#ifdef XP_WIN32
-#include <nt/ntconf.h>
-#else
-
-#include "netsite.h"
-#include "frame/objset.h"
-#include "base/daemon.h" /* daemon struct */
-
-#include <pwd.h> /* struct passwd */
-
-/* ------------------------------ Constants ------------------------------- */
-
-
-/* The longest line in the configuration file */
-#define CONF_MAXLEN 16384
-
-#define LF 10
-#define CR 13
-
-
-#if defined(DAEMON_ANY)
-#ifdef MCC_PROXY
-#define DEFAULT_PORT 8080
-#else
-#define DEFAULT_PORT 80
-#endif
-#endif
-
-#if defined(DAEMON_UNIX_POOL) || defined(DAEMON_UNIX_MOBRULE)
-#define DEFAULT_POOL_MAX 50
-#endif
-
-
-
-/* ------------------------------- Globals -------------------------------- */
-
-
-#ifndef CONF_C
-
-/*
- * These server parameters are made global because they really don't
- * belong anywhere else.
- */
-
-#if defined(DAEMON_ANY)
-
-#include <sys/types.h>
-
-/* What port we listen to */
-extern int port;
-
-/* What address to bind to */
-extern char *addr;
-
-/* User to run as */
-extern struct passwd *userpw;
-
-/* Directory to chroot to */
-extern char *chr;
-
-/* Where to log our pid to */
-extern char *pidfn;
-
-#if defined(DAEMON_UNIX_POOL) || defined(DAEMON_UNIX_MOBRULE)
-/* The maximum number of processes to keep in the pool */
-extern int pool_max;
-/* The minimum number of processes to keep in the pool */
-extern int pool_min;
-/* The maximum number of requests each process should handle. -1=default */
-extern int pool_life;
-#endif
-
-#ifdef NET_SSL
-extern char *secure_keyfn;
-extern char *secure_certfn;
-extern char *secure_dongle;
-extern int security_active;
-extern int secure_auth;
-extern int security_session_timeout;
-#endif
-
-#endif
-
-/* The server's hostname as should be reported in self-ref URLs */
-extern char *server_hostname;
-
-/* The main object from which all are derived */
-extern char *root_object;
-
-/* The object set the administrator has asked us to load */
-extern httpd_objset *std_os;
-
-/* The main error log, where all errors are logged */
-extern char *master_error_log;
-
-/* The e-mail address of someone to mail upon catastrophic error */
-extern char *admin_email;
-
-#endif
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * conf_init reads the given configuration file and sets any non-default
- * parameters to their given setting.
- */
-
-char *conf_init(char *cfn);
-
-/*
- * conf_terminate frees any data the conf routines may be holding.
- */
-
-void conf_terminate(void);
-
-
-/*
- * conf_vars2daemon transfers these globals to a daemon structure
- */
-void conf_vars2daemon(daemon_s *d);
-
-#endif
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/dnfilter.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/dnfilter.h
deleted file mode 100644
index 63545df5ad1..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/dnfilter.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-#ifndef __dnfilter_h
-#define __dnfilter_h
-
-/* Error codes */
-#define DNFERR_MAX (-1) /* maximum error code */
-#define DNFERR_MALLOC (-1) /* insufficient memory */
-#define DNFERR_FOPEN (-2) /* file open error */
-#define DNFERR_FILEIO (-3) /* file I/O error */
-#define DNFERR_DUPSPEC (-4) /* duplicate filter specification */
-#define DNFERR_INTERR (-5) /* internal error (bug) */
-#define DNFERR_SYNTAX (-6) /* syntax error in filter file */
-#define DNFERR_MIN (-6) /* minimum error code */
-
-/* This is used to return error information from dns_filter_setup() */
-typedef struct DNSFilterErr_s DNSFilterErr_t;
-struct DNSFilterErr_s {
- int errNo; /* DNFERR_xxxx error code */
- int lineno; /* file line number, if applicable */
- char * filename; /* filename, if applicable */
- char * errstr; /* error text, if any */
-};
-
-/* Data and functions in dnfilter.c */
-extern void * dnf_objndx;
-extern void dns_filter_destroy(void * dnfptr);
-extern int dns_filter_setup(pblock * client, DNSFilterErr_t * reterr);
-extern int dns_filter_check(pblock * client, char * cdns);
-
-#endif /* __dnfilter_h */
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/func.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/func.h
deleted file mode 100644
index 7bce6c285ba..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/func.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * func.h: Handles the function hash table
- *
- * httpd uses a table of internal functions hashed by a name string such that
- * users can reference specific functions from the configuration files.
- *
- * Any function referenced by configuration files will be passed a
- * parameter, a Request structure. The functions do not return anything.
- *
- * Rob McCool
- */
-
-#ifndef FUNC_H
-#define FUNC_H
-
-
-#include "netsite.h"
-#include "base/pblock.h"
-#include "base/session.h" /* Session structure */
-#include "frame/req.h" /* Request structure */
-
-
-/* -------------------------- Structure and Type -------------------------- */
-
-
-/*
- * FuncPtr is a pointer to our kind of functions
- */
-
-typedef int Func(pblock *, Session *, Request *);
-typedef Func *FuncPtr;
-
-/*
- * FuncStruct is a structure used in the static declaration of the
- * functions. This static declaration is parsed into a hash table at
- * startup. You should initialize the next entry to NULL.
- */
-
-struct FuncStruct {
- char *name;
- FuncPtr func;
- struct FuncStruct *next;
-};
-
-
-/* --------------------------- Hash definitions --------------------------- */
-
-
-/*
- * This is a primitive hash function. Once more is known about the names of
- * the functions, this will be optimized.
- */
-
-#define NUM_HASH 20
-#define FUNC_HASH(s) (s[0] % NUM_HASH)
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * func_init reads the static FuncStruct arrays and creates the global
- * function table from them.
- *
- * func_init will only read from the static arrays defined in func.c.
- */
-
-void func_init(void);
-
-/*
- * func_find returns a pointer to the function named name, or NULL if none
- * exists.
- */
-
-FuncPtr func_find(char *name);
-
-/*
- * func_exec will try to execute the function whose name is the "fn" entry
- * in the given pblock. If name is not found, it will log a misconfig of
- * missing fn parameter. If it can't find it, it will log that. In these
- * cases it will return REQ_ABORTED. Otherwise, it will return what the
- * function being executed returns.
- */
-
-int func_exec(pblock *pb, Session *sn, Request *rq);
-
-/*
- * func_insert dynamically inserts a named function into the server's
- * table of functions. Returns the FuncStruct it keeps in internal
- * databases, because on server restart you are responsible for freeing
- * (or not) its contents.
- */
-
-struct FuncStruct *func_insert(char *name, FuncPtr fn);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/http.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/http.h
deleted file mode 100644
index c139d536482..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/http.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * http.h: Deals with HTTP-related issues
- *
- * Rob McCool
- */
-
-
-#ifndef HTTP_H
-#define HTTP_H
-
-
-#include "netsite.h"
-#include "base/session.h"
-#include "base/pblock.h"
-
-#include "frame/req.h" /* REQ_MAX_LINE, Request structure */
-
-/* ------------------------------ Constants ------------------------------- */
-
-
-#define HTTP_DATE_LEN 128
-#define HTTP_DATE_FMT "%A, %d-%b-%y %T GMT"
-
-
-/* The maximum number of RFC-822 headers we'll allow */
-/* This would be smaller if a certain browser wasn't so damn stupid. */
-#define HTTP_MAX_HEADERS 200
-
-/* Whether or not we should read the headers for if-modified-since */
-#define HTTP_DO_IMS
-#define HTTP_ALWAYS_LOADHDRS
-
-/* HTTP status codes */
-
-#define PROTOCOL_OK 200
-#define PROTOCOL_NO_RESPONSE 204
-#define PROTOCOL_REDIRECT 302
-#define PROTOCOL_NOT_MODIFIED 304
-#define PROTOCOL_BAD_REQUEST 400
-#define PROTOCOL_UNAUTHORIZED 401
-#define PROTOCOL_FORBIDDEN 403
-#define PROTOCOL_NOT_FOUND 404
-#define PROTOCOL_PROXY_UNAUTHORIZED 407
-#define PROTOCOL_SERVER_ERROR 500
-#define PROTOCOL_NOT_IMPLEMENTED 501
-
-
-#ifdef NET_SSL
-#define HTTPS_PORT 443
-#define HTTPS_URL "https"
-#endif
-#define HTTP_PORT 80
-#define HTTP_URL "http"
-
-/* -------------------------- http_scan_headers --------------------------- */
-
-
-/*
- * parses the first line of an HTTP request
- */
-
-#define protocol_parse_request http_parse_request
-int http_parse_request(char *t, Request *rq, Session *sn);
-
-/*
- * Scans HTTP headers from the given netbuf, and places them in headers.
- * If netbuf is NULL, the session's inbuf is used.
- *
- * Folded lines are joined and the linefeed removed (but not the whitespace).
- * If there are any repeat headers they are joined and the two field bodies
- * separated by a comma and space.
- *
- * t should be a string of length REQ_MAX_LINE. This is a convenience to
- * req.c so that we don't use too much runtime stack.
- *
- * Session is an optional parameter. Use NULL if you wish. It's used for
- * error logs.
- */
-
-#define protocol_scan_headers http_scan_headers
-int http_scan_headers(Session *sn, netbuf *buf, char *t, pblock *headers);
-
-
-/*
- * Starts the HTTP response. If HTTP/0.9, does nothing. If 1.0, sends header.
- * If this returns REQ_NOACTION, the method was head and no body should be
- * sent. Otherwise, it will return REQ_PROCEED.
- */
-
-#define protocol_start_response http_start_response
-int http_start_response(Session *sn, Request *rq);
-
-
-/*
- * http_hdrs2env takes the entries from the given pblock and converts them
- * to an environment.
- *
- * Each name entry will be made uppercase, prefixed with HTTP_ and any
- * occurrence of - will be converted to _.
- */
-
-char **http_hdrs2env(pblock *pb);
-
-
-/*
- * http_status sets status to the code n, with reason string r. If r is
- * NULL, the server will attempt to find one for the given status code.
- * If it finds none, it will give "Because I felt like it."
- */
-
-#define protocol_status http_status
-void http_status(Session *sn, Request *rq, int n, char *r);
-
-/*
- * http_set_finfo sets content-length and last-modified
- */
-
-#define protocol_set_finfo http_set_finfo
-int http_set_finfo(Session *sn, Request *rq, struct stat *finfo);
-
-
-/*
- * Takes the given pblock and prints headers into the given buffer at
- * position pos. Returns the buffer, reallocated if needed. Modifies pos.
- */
-
-char *http_dump822(pblock *pb, char *t, int *pos, int tsz);
-
-/*
- * Finishes a request. For HTTP, this just closes the socket.
- */
-
-#define protocol_finish_request http_finish_request
-void http_finish_request(Session *sn, Request *rq);
-
-
-/*
- * http_handle_session processes each request generated by Session
- */
-
-#define protocol_handle_session http_handle_session
-void http_handle_session(Session *sn);
-
-/*
- * http_uri2url takes the give URI prefix and URI suffix and creates a
- * newly-allocated full URL from them of the form
- * http://(server):(port)(prefix)(suffix)
- *
- * If you want either prefix or suffix to be skipped, use "" instead of NULL.
- */
-
-#define protocol_uri2url http_uri2url
-char *http_uri2url(char *prefix, char *suffix);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/httpact.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/httpact.h
deleted file mode 100644
index ee50b8a7821..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/httpact.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * httpact.h: Defines the API characteristics for HTTP servers
- *
- * Rob McCool
- */
-
-
-#ifndef HTTPACT_H
-#define HTTPACT_H
-
-#include "frame/req.h"
-#include "frame/object.h"
-
-
-/* ------------------------------ Constants ------------------------------- */
-
-#ifdef MCC_BATMAN
-#define NUM_DIRECTIVES 5
-#else
-#ifdef MCC_PROXY
-#define NUM_DIRECTIVES 10
-#else
-#define NUM_DIRECTIVES 7
-#endif
-#endif
-
-
-/* -------------------------- Generic Prototypes -------------------------- */
-
-
-/*
- * directive_name2num will return the position of the abbreviated directive
- * dir in the directive table.
- *
- * If dir does not exist in the table, it will return -1.
- */
-
-int directive_name2num(char *dir);
-
-
-/*
- * directive_num2name returns a string describing directive number num.
- */
-const char *directive_num2name(int num);
-
-
-/*
- * servact_finderror looks through the request's object set to find a
- * suitable error function to execute. Returns REQ_PROCEED if a function
- * was found and executed successfully, REQ_NOACTION otherwise.
- */
-int servact_finderror(Session *sn, Request *rq);
-
-
-/*
- * Read in and handle one request from the given session
- */
-void servact_handle(Session *sn);
-
-
-/* ----------------------- HTTP specific prototypes ----------------------- */
-
-
-int servact_handle_processed(Session *sn, Request *rq);
-
-/*
- * Returns the translated path (filename) for the given uri, NULL otherwise.
- * If authentication is required for the given uri, nothing is returned even
- * if the current user has authenticated to that area.
- */
-char *servact_translate_uri(char *uri, Session *sn);
-
-
-
-#ifdef MCC_PROXY
-
-/* ----------------------- proxy specific prototypes ---------------------- */
-
-/*
- * Resolves the given hostname, first trying to find a resolver
- * function from obj.conf, and if that fails, just calls gethostbyname().
- *
- */
-struct hostent *servact_gethostbyname(char *host, Session *sn, Request *rq);
-
-
-/*
- * Establishes a connection to the specified host and port using
- * a Connect class function from obj.conf. Returns the sockect
- * descriptor that is connected (and which should be SSL_Import()'ed
- * by the caller).
- *
- * Returns -2 (REQ_NOACTION), if no such Connect class function exists.
- * The caller should use the native connect mechanism in that case.
- *
- * Returns -1 (REQ_ABORT) on failure to connect. The caller should not
- * attempt to use the native connect.
- *
- */
-int servact_connect(char *host, int port, Session *sn, Request *rq);
-
-
-#endif /* ! MCC_PROXY */
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/ipfilter.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/ipfilter.h
deleted file mode 100644
index a5d490798c3..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/ipfilter.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-#ifndef __ipfilter_h
-#define __ipfilter_h
-
-/* Define error codes */
-#define IPFERR_MAX (-1) /* maximum error code value */
-#define IPFERR_MALLOC (-1) /* insufficient memory */
-#define IPFERR_FOPEN (-2) /* file open error */
-#define IPFERR_FILEIO (-3) /* file I/O error */
-#define IPFERR_DUPSPEC (-4) /* duplicate filter specification */
-#define IPFERR_INTERR (-5) /* internal error (bug) */
-#define IPFERR_SYNTAX (-6) /* syntax error in filter file */
-#define IPFERR_CNFLICT (-7) /* conflicting filter specification */
-#define IPFERR_MIN (-7) /* minimum error code value */
-
-/* Define a scalar IP address value */
-typedef unsigned long IPAddr_t;
-
-/* Define structure for returning error information */
-typedef struct IPFilterErr_s IPFilterErr_t;
-struct IPFilterErr_s {
- int errNo; /* IPFERR_xxxx error code */
- int lineno; /* file line number, if applicable */
- char * filename; /* filename, if applicable */
- char * errstr; /* error text, if any */
-};
-
-/* Data and functions in ipfilter.c */
-extern void * ipf_objndx;
-extern void ip_filter_destroy(void * ipfptr);
-extern int ip_filter_setup(pblock * client, IPFilterErr_t * reterr);
-extern int ip_filter_check(pblock * client, IPAddr_t cip);
-
-#endif /* __ipfilter_h */
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/log.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/log.h
deleted file mode 100644
index 6666b336c15..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/log.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * log.h: Records transactions, reports errors to administrators, etc.
- *
- * Rob McCool
- */
-
-
-#ifndef LOG_H
-#define LOG_H
-
-
-#include "netsite.h"
-#include "base/session.h" /* Session structure */
-#include "frame/req.h" /* Request struct */
-#include "base/ereport.h" /* Error reporting, degrees */
-
-
-#define ERROR_CUTOFF 128
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * log_error logs an error of the given degree from the function func
- * and formats the arguments with the printf() style fmt. Returns whether the
- * log was successful. Records the current date.
- *
- * sn and rq are optional parameters. If given, information about the client
- * will be reported.
- */
-
-int log_error(int degree, char *func, Session *sn, Request *rq,
- char *fmt, ...);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/object.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/object.h
deleted file mode 100644
index 40a1590e913..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/object.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * object.h: Handle httpd objects
- *
- * Manages information about a document from config. files. Called mainly
- * by objset.c.
- *
- * This module does not assume anything about the directives being parsed.
- * That is handled by objset.c.
- *
- * This module requires the pblock module from the base library.
- *
- * Rob McCool
- *
- */
-
-
-#ifndef OBJECT_H
-#define OBJECT_H
-
-
-#include "netsite.h"
-#include "base/pblock.h"
-#include "base/session.h"
-
-
-
-
-/* ------------------------------ Constants ------------------------------- */
-
-
-/* The maximum directive length unabbreviated, plus one space */
-#define MAX_DNAME_LEN 11
-#define NUM_DIRECTIVES 7
-
-
-/* ------------------------------ Structures ------------------------------ */
-
-
-
-/*
- * Hierarchy of httpd_object
- *
- * An object contains dtables.
- *
- * Each dtable is a table of directives that were entered of a certain type.
- * There is one dtable for each unique type of directive.
- *
- * Each dtable contains an array of directives, each of which is equivalent
- * to one directive that occurred in a config. file.
- *
- * It is up to the caller to determine how many dtables will be allocated
- * and to keep track of which of their directive types maps to which dtable
- * number.
- */
-
-
-/*
- * directive is a structure containing the protection and parameters to an
- * instance of a directive within an httpd_object.
- *
- * param is the parameters, client is the protection.
- */
-
-typedef struct {
- pblock *param;
- pblock *client;
-} directive;
-
-/*
- * dtable is a structure for creating tables of directives
- */
-
-typedef struct {
- int ni;
- directive *inst;
-} dtable;
-
-/*
- * The httpd_object structure.
- *
- * The name pblock array contains the names for this object, such as its
- * virtual location, its physical location, or its identifier.
- *
- * tmpl contains any templates allocated to this object.
- */
-
-typedef struct {
- pblock *name;
-
- int nd;
- dtable *dt;
-} httpd_object;
-
-
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * directive_name2num will return the position of the abbreviated directive
- * dir in the directive table.
- *
- * If dir does not exist in the table, it will return -1.
- */
-
-int directive_name2num(char *dir);
-
-
-/*
- * directive_num2name returns a string describing directive number num.
- */
-
-const char *directive_num2name(int num);
-
-
-/*
- * object_create will create a new object and return a pointer to it.
- * It will allocate space for nd directive types and set name accordingly.
- */
-
-httpd_object *object_create(int nd, pblock *name);
-
-/*
- * object_free will free an object and any data associated with it.
- */
-
-void object_free(httpd_object *obj);
-
-/*
- * object_add_directive will add a new directive to the dtable for
- * the directive class at position dc.
- */
-
-void object_add_directive(int dc, pblock *p, pblock *c, httpd_object *obj);
-
-
-/*
- * object_findnext finds the object configured to follow the given object,
- * and stores the variables in rq->vars. It returns REQ_PROCEED if more
- * objects should be processed, or REQ_NOACTION if it did not find any
- * further objects to process. If something bad happens, REQ_ABORTED is
- * returned.
- *
- * Handles all DIRECTIVE_CONSTRUCT type directives such as NameTrans and
- * AuthType.
- */
-
-
-/* --------- Prototype moved to req.h because of interdependency ---------- */
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/objset.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/objset.h
deleted file mode 100644
index 6022433e27d..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/objset.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * objset.h: Handles object sets
- *
- * Each object is produced by reading a config file of some form. See the
- * server documentation for descriptions of the directives that are
- * recognized, what they do, and how they are parsed.
- *
- * This module requires the pblock and buffer modules from the base library.
- *
- * Rob McCool
- */
-
-
-#ifndef OBJSET_H
-#define OBJSET_H
-
-#ifdef XP_WIN32
-#include <nt/ntobjset.h>
-#else
-
-
-#include "netsite.h"
-#include "base/pblock.h"
-#include "base/buffer.h"
-#include "frame/object.h"
-
-
-
-/* ------------------------------ Constants ------------------------------- */
-
-
-/*
- * The default number of objects to leave room for in an object set,
- * and the number of new entries by which to increase the size when that
- * room is filled.
- */
-
-#define OBJSET_INCSIZE 8
-
-/*
- * When parsing config. files, httpd will put a limit on how long
- * the parameters to a directive can be (in characters).
- *
- * Currently set to 10 lines (80 chars/line).
- */
-
-#define MAX_DIRECTIVE_LEN 800
-
-/*
- * The size of the hash tables that store a directive's parameters
- */
-
-#define PARAMETER_HASH_SIZE 3
-
-
-/* ------------------------------ Structures ------------------------------ */
-
-
-/*
- * httpd_objset is a container for a bunch of objects. obj is a
- * NULL-terminated array of objects. pos points to the entry after the last
- * one in the array. You should not mess with pos, but can read it to find
- * the last entry.
- */
-
-typedef struct {
- int pos;
- httpd_object **obj;
-} httpd_objset;
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * objset_scan_buffer will scan through buffer, looking for object
- * configuration information, and adding them to the object set os if it
- * finds any. If os is NULL it will allocate a new object set.
- *
- * If any error occurs (syntax error, premature EOF) this function will
- * free os, print an error message into errstr, and return NULL.
- * This is because a config. file error is viewed as a catastrophic error
- * from which httpd should not try to recover. If httpd were to continue
- * after an error, it would not behave as the admin. expected and he/she
- * may not notice until it's too late.
- *
- * Upon EOF the file will not be closed.
- */
-
-httpd_objset *objset_scan_buffer(filebuf *buf, char *errstr, httpd_objset *os);
-
-/*
- * objset_create creates a new object set and returns a pointer to it.
- */
-
-httpd_objset *objset_create(void);
-
-/*
- * objset_free will free an object set and any associated objects.
- */
-
-void objset_free(httpd_objset *os);
-
-/*
- * objset_free_setonly frees only the object set.
- */
-void objset_free_setonly(httpd_objset *os);
-
-/*
- * objset_new_object will add a new object to objset with the specified
- * name. It returns a pointer to the new object (which may be anywhere in
- * the objset).
- */
-
-httpd_object *objset_new_object(pblock *name, httpd_objset *os);
-
-/*
- * objset_add_object will add the existing object to os.
- */
-
-void objset_add_object(httpd_object *obj, httpd_objset *os);
-
-/*
- * objset_findbyname will find the object in objset having the given name,
- * and return the object if found, and NULL otherwise.
- * ign is a set of objects to ignore.
- */
-
-httpd_object *objset_findbyname(char *name, httpd_objset *ign,
- httpd_objset *os);
-
-/*
- * objset_findbyppath will find the object in objset having the given
- * partial path entry. Returns object if found, NULL otherwise.
- * ign is a set of objects to ignore.
- */
-
-httpd_object *objset_findbyppath(char *ppath, httpd_objset *ign,
- httpd_objset *os);
-
-
-#endif
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/protocol.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/protocol.h
deleted file mode 100644
index bf7f6ec3e4d..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/protocol.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * protocol.h: Switch which protocol we're speaking.
- *
- * Currently only HTTP, but expected to include MTP in the future.
- *
- * Rob McCool
- */
-
-
-#ifdef MCC_HTTPD
-#include "http.h"
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/req.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/req.h
deleted file mode 100644
index e198ce22df8..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/req.h
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * req.h: Request-specific data structures and functions
- *
- * Rob McCool
- */
-
-
-#ifndef REQ_H
-#define REQ_H
-
-
-#include "netsite.h"
-#include "base/pblock.h"
-#include "base/session.h"
-#include "frame/objset.h"
-
-#include <sys/stat.h>
-
-
-
-/* ------------------------------ Constants ------------------------------- */
-
-
-#define REQ_HASHSIZE 10
-#define REQ_MAX_LINE 4096
-
-
-/*
- * The REQ_ return codes. These codes are used to determine what the server
- * should do after a particular module completes its task.
- *
- * Func type functions return these as do many internal functions.
- */
-
-/* The function performed its task, proceed with the request */
-#define REQ_PROCEED 0
-/* The entire request should be aborted: An error occurred */
-#define REQ_ABORTED -1
-/* The function performed no task, but proceed anyway. */
-#define REQ_NOACTION -2
-/* Tear down the session and exit */
-#define REQ_EXIT -3
-
-
-
-/* ------------------------------ Structures ------------------------------ */
-
-
-typedef struct {
- /* Server working variables */
- pblock *vars;
-
- /* The method, URI, and protocol revision of this request */
- pblock *reqpb;
- /* Protocol specific headers */
- int loadhdrs;
- pblock *headers;
-
- /* Server's response headers */
- pblock *srvhdrs;
-
- /* The object set constructed to fulfill this request */
- httpd_objset *os;
- /* Array of objects that were created from .nsconfig files */
- httpd_objset *tmpos;
-
- /* The stat last returned by request_stat_path */
- char *statpath;
- char *staterr;
- struct stat *finfo;
-
-#ifdef MCC_PROXY
- /* SOCKS request data */
- void *socks_rq;
-#endif
-
-} Request;
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * request_create creates a new request structure.
- */
-
-Request *request_create(void);
-
-/*
- * request_free destroys a request structure.
- */
-
-void request_free(Request *req);
-
-
-/*
- * Restarts a request for a given URI internally. If rq is non-NULL, the
- * function will keep the old request's headers and protocol, but with a new
- * URI and method of GET. If the previous method was HEAD, this is preserved.
- * Any other method becomes GET. You may assume that if you give it a request
- * structure that it will use the same structure.
- *
- * Once you have this new Request, you must then do what you want with
- * it (e.g. send the object back, perform uri2path translation, etc.)
- */
-
-Request *request_restart_internal(char *uri, Request *rq);
-
-
-/*
- * request_translate_uri performs virtual to physical mapping on the given
- * uri and returns either a path string or NULL depending on whether it was
- * successful or not.
- */
-
-char *request_translate_uri(char *uri, Session *sn);
-
-
-/*
- * request_header finds the named header depending on the requesting
- * protocol. If possible, it will not load headers until the first is
- * requested. You have to watch out because this can return REQ_ABORTED.
- */
-
-int request_header(char *name, char **value, Session *sn, Request *rq);
-
-/*
- * request_loadheaders just makes sure the headers have been loaded.
- */
-
-int request_loadheaders(Session *sn, Request *rq);
-
-
-/*
- * request_stat_path tries to stat path. If path is NULL, it will look in
- * the vars pblock for "path". If the stat is successful, it returns the stat
- * structure. If not, returns NULL and leaves a message in rq->staterr. If a
- * previous call to this function was successful, and path is the same, the
- * function will simply return the previously found value.
- *
- * User functions should not free this structure.
- */
-
-struct stat *request_stat_path(char *path, Request *rq);
-
-
-/*
- * Parses the URI parameter in rq->vars and finds out what objects it
- * references (using NameTrans). Builds the request's object set.
- */
-
-int request_uri2path(Session *sn, Request *rq);
-
-/*
- * Performs any path checks needed for this request.
- */
-
-int request_pathchecks(Session *sn, Request *rq);
-
-/*
- * Does all the ObjectType directives for a request
- */
-
-int request_fileinfo(Session *sn, Request *rq);
-
-
-/*
- * request_handle_processed takes a Request structure with its reqpb
- * block filled in and handles the request.
- */
-
-int request_handle_processed(Session *sn, Request *rq);
-
-
-/*
- * Complete a request by finding the service function and using it. Returns
- * REQ_NOACTION if no matching function was found.
- */
-
-int request_service(Session *sn, Request *rq);
-
-
-/*
- * request_handle handles one request from the session's inbuf.
- */
-
-void request_handle(Session *sn);
-
-/*
- * Moved here due to problems with interdependency. See object.h for
- * description.
- */
-
-int object_findnext(Session *sn, Request *rq, httpd_object *obj);
-int object_pathcheck(Session *sn, Request *rq, httpd_object *obj);
-int object_findinfo(Session *sn, Request *rq, httpd_object *obj);
-int object_findservice(Session *sn, Request *rq, httpd_object *obj);
-int object_finderror(Session *sn, Request *rq, httpd_object *obj);
-int object_findlogs(Session *sn, Request *rq, httpd_object *obj);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/servact.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/servact.h
deleted file mode 100644
index 292ca95d732..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/servact.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * servact.h: Define the server's actions, depending on what type of
- * server it is.
- *
- * Rob McCool
- */
-
-
-#if defined(MCC_HTTPD) || defined(MCC_PROXY) || defined(MCC_NEWS)
-#include "httpact.h"
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/netsite.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/netsite.h
deleted file mode 100644
index 68983c7aeae..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/netsite.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * Standard defs for NetSite servers.
- */
-
-
-#ifndef NETSITE_H
-#define NETSITE_H
-
-#ifdef MCC_PROXY
-#define MAGNUS_VERSION "1.1m"
-#define MAGNUS_VERSION_STRING "Netscape-Proxy/1.1m"
-
-#elif defined(MCC_ADMSERV)
-#define MAGNUS_VERSION "1.1"
-#define MAGNUS_VERSION_STRING "Netscape-Administrator/1.1"
-
-#elif defined(MCC_HTTPD)
-#define MAGNUS_VERSION "1.1"
-#ifdef NET_SSL
-#define MAGNUS_VERSION_STRING "Netscape-Commerce/1.12"
-#else
-#define MAGNUS_VERSION_STRING "Netscape-Communications/1.12"
-#endif
-
-#elif defined(MCC_NEWS)
-#define MAGNUS_VERSION_STRING "Netscape 1.1"
-#endif
-
-/* Used in some places as a length limit on error messages */
-#define MAGNUS_ERROR_LEN 8192
-
-/* Carraige return and line feed */
-#define CR 13
-#define LF 10
-
-/* -------------------------- Memory allocation --------------------------- */
-
-
-/* Later change these to have catastrophic error handling */
-
-#include <stdlib.h>
-
-#define MALLOC(sz) malloc(sz)
-#define FREE(ptr) free((void *)ptr)
-#define STRDUP(str) strdup(str)
-#define REALLOC(ptr,sz) realloc(ptr,sz)
-
-
-/* Not sure where to put this. */
-void magnus_atrestart(void (*fn)(void *), void *data);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-send.c b/apps/JAWS/clients/WebSTONE/src/nsapi-send.c
deleted file mode 100644
index 1ce191d8765..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-send.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Send random bits file
- $Header: /disk6/WebStone-2.0/src/RCS/nsapi-send.c,v 1.4 1996/04/24 23:54:19
-scha
-n Exp schan $
- * Once this service function is installed, any file with the extension
- * "dyn-send" will be serviced with this function. An optional query
- * string may be passed to alter the amount of data in the response.
- *
- * For example:
- * /file.dyn-send - returns a 10240 byte file
- * /file.dyn-send?size=20 - returns a 20 byte file
- * /file.dyn-send?size=1024 - returns a 1024 byte file
- * etc.
- *
- * To install the service routine, compile it as per the makefile
- * included with your Netscape server distribution (serverroot/nsapi/examples)
- * and then add the following lines to your netscape server configuration:
- *
- * in magnus.conf
- * Init fn=load-modules shlib=example.so funcs=nsapi-send
- *
- * in obj.conf
- * Service method=(GET|HEAD) fn=nsapi-send type=magnus-internal/dyn-send
- *
- * in mime.types
- * type=magnus-internal/dyn-send exts=dyn-send
- *
- * Mike Belshe
- * mbelshe@netscape.com
- * 11-5-95
- *
- */
-
-#ifndef WIN32
-#include <stdio.h>
-#include <stdlib.h>
-#include "base/pblock.h"
-#include "base/session.h"
-#include "frame/protocol.h"
-#include "base/util.h"
-#include "frame/http.h"
-#else
-#include <windows.h>
-#define FILE_STDIO 1
-#endif
-#include "frame/req.h"
-
-#define FILE_SIZE 10240
-#define HEADERS "HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n"
-
-#ifdef WIN32
-__declspec(dllexport)
-#endif
-
-int nsapi_send(pblock *pb, Session *sn, Request *rq)
-{
- char *query_string;
- char buffer[sizeof(HEADERS) + 204800 + 1];
- int filesize;
- unsigned int maxindex;
- unsigned int index;
-
- /* Get the query string, if any; check to see if an alternate
- * file size was specified.
- */
- if ( !(query_string = pblock_findval("query", rq->reqpb)) )
- filesize = FILE_SIZE;
- else {
- filesize = atoi(&(query_string[5]));
- }
-
- memcpy(&buffer, HEADERS, sizeof(HEADERS)-1);
-
- /* Generate the output */
- maxindex = sizeof(HEADERS) + filesize;
- for (index=sizeof(HEADERS); index < (maxindex); index++)
- /* generate random characters from A-Z */
-#ifdef IRIX
- buffer[index] = rand_r() % 26 + 63;
-#else
- buffer[index] = rand() %26 + 63;
-#endif
-
- /* Send the output */
- if (net_write(sn->csd, buffer, sizeof(HEADERS)-1+filesize, 0) == IO_ERROR)
- return REQ_EXIT;
-
- return REQ_PROCEED;
-}
diff --git a/apps/JAWS/clients/WebSTONE/src/parse_file_list.c b/apps/JAWS/clients/WebSTONE/src/parse_file_list.c
deleted file mode 100644
index 73854d1a056..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/parse_file_list.c
+++ /dev/null
@@ -1,289 +0,0 @@
-/**************************************************************************
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-#include <stdio.h>
-#include <errno.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifndef WIN32
-#include <netdb.h>
-#include <sys/param.h>
-#endif /* WIN32 */
-
-#include <sys/types.h>
-
-#ifndef WIN32
-#include <sys/ipc.h>
-#include <sys/shm.h>
-#include <sys/errno.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <netinet/in.h>
-#else
-#include <windows.h>
-#include <process.h>
-#include <time.h>
-#include <winsock.h>
-#endif /* WIN32 */
-
-#include <ctype.h>
-
-#include "sysdep.h"
-#include "bench.h"
-
-
-/*
- * count_file_list()
- * given a filename, return a guess at the number of pages
- */
-int
-count_file_list(const char *url_list_file)
-{
- FILE *fp;
- long int num_of_pages;
- char a_line[BUFSIZ];
- char *textvalue;
- int returnval;
-
- fp = fopen(url_list_file, "r");
-
- if (fp == NULL)
- {
- D_PRINTF( "Error %d opening filelist %s: %s\n",
- errno, url_list_file, strerror(errno) );;
- return(returnerr("Error %d opening filelist %s: %s\n",
- errno, url_list_file, strerror(errno)));
- }
- else
- {
- num_of_pages = 0;
- D_PRINTF( "Opened file, about to count\n" );
- /*
- * parse through the file line-by-line
- * strip out comments, but don't check for URL consistency
- */
- while (fgets(a_line, BUFSIZ, fp) != NULL)
- {
- textvalue = a_line;
- /* check for comments */
- if (strchr(textvalue, '#') != NULL)
- {
- /* throw out anything after any '#' */
- D_PRINTF( "Stripping comment from line: %s\n", textvalue );
- returnval = strcspn(textvalue, "#");
- D_PRINTF( "Found first # at %d\n", returnval );
- if (returnval == 0)
- {
- textvalue = NULL;
- }
- }
- /* is there more? */
- if (textvalue != NULL)
- {
- num_of_pages++;
- D_PRINTF( "Found %ld pages\n", num_of_pages );
- }
- }
- return(num_of_pages);
- }
- fclose(fp);
-} /* end count_file_list() */
-
-/*
- * parse_file_list()
- * given a filename, a pointer to a page list, and pointers to integers
- * for the number of pages and the number of files, parse its contents.
- */
-void
-parse_file_list (const char *url_list_file, page_list_t *page_list,
- long int *num_of_pages, long int *num_of_files)
-{
- FILE *fp;
- int filenum;
- int returnval;
- int loadnum;
- char a_line[BUFSIZ];
- char tempbuf[BUFSIZ];
- char *textvalue;
- int numfiles = 1, numpages = 0;
- int maxpages = *num_of_pages;
- page_list_t *pp;
-
- extern int haveproxyserver;
-
- fp = fopen(url_list_file, "r");
-
- if (fp == NULL)
- {
- errexit("Error %d opening filelist: %s\n", errno, strerror(errno));
- }
- else
- {
- /*
- * GRAB A LINE. FORMAT IS: URL WEIGHTINGFACTOR
- * EXAMPLE: http://www/file.html 1
- */
- D_PRINTF( "File is open.\n" );
- while(fgets(a_line, BUFSIZ, fp) != NULL)
- {
- textvalue = a_line;
- /* check for comments */
- if (strchr(textvalue, '#') != NULL)
- {
- /* throw out anything after a '#' */
- D_PRINTF( "Stripping comment from line: %s\n", textvalue );
- returnval = strcspn(textvalue, "#");
- D_PRINTF( "Found first # at %d\n", returnval );
- if (returnval == 0)
- continue;
- }
-
- if (numpages >= *num_of_pages)
- errexit("Out of space in parse_file_list()\n");
-
- pp = &page_list[numpages];
-
- D_PRINTF( "Processing page %ld\n", numpages );
- loadnum = 0;
-
- if (textvalue != NULL) { /* is there more? */
- /* check for weighting factor */
- D_PRINTF( "Setting page values from: %s\n", textvalue );
- returnval = sscanf(textvalue, "%s%d", tempbuf, &loadnum);
- D_PRINTF( "Scan for weighting returns %d, %d\n",
- returnval, loadnum );
- if (returnval == EOF || loadnum <= 0)
- {
- pp->load_num = 1;
- }
- else
- {
- pp->load_num = loadnum;
- }
- D_PRINTF( "Setting load=%d for line: %s\n",
- pp->load_num, textvalue );
-
- /* placeholder for grouping multiple files onto one page */
- pp->num_of_files = 1;
- filenum = 0;
-
- textvalue = tempbuf;
- D_PRINTF( "Line is now: %s\n", textvalue );
-
- /*
- * if we've got a proxy server, we'll assume that the
- * remaining text is a valid URL, and stuff it into
- * page_list[numpages].filename[filenum]
- * Otherwise, we'll have to parse it out.
- */
-
- if (haveproxyserver)
- {
- pp->servername[filenum] = NULL;
- pp->port_number[filenum] = 0;
- strcpy(pp->filename[filenum], textvalue);
- }
- else /* no proxy server, so we have to parse it out... */
- {
- /* try http://server(:port)/file */
- D_PRINTF( "Trying http://server(:port)/filename\n" );
- returnval = sscanf(textvalue, "http://%[^/]%s",
- tempbuf,
- a_line);
- /* check server string for :port */
- if (returnval != 0 && returnval != EOF)
- {
- D_PRINTF( "Setting filename %s\n", a_line );
- strcpy(pp->filename[filenum],
- a_line);
-
- D_PRINTF( "Checking %s for :portnumber\n", tempbuf );
- returnval = sscanf(tempbuf, "%[^:]:%d",
- a_line,
- &pp->port_number[filenum]);
-
- if (returnval < 2)
- {
- pp->port_number[filenum] = 80;
- }
- if (returnval == EOF)
- {
- pp->servername[filenum] = NULL;
- }
- else
- {
- D_PRINTF( "Port number %d, setting server %s\n",
- pp->port_number[filenum],
- a_line );
-
- strcpy(pp->servername[filenum], a_line);
- }
-
- D_PRINTF( "Server %s, port number %d\n",
- pp->servername[filenum],
- pp->port_number[filenum] );
- }
- else /* no good - try straight filename */
- {
- pp->port_number[filenum] = 80;
- D_PRINTF( "Trying filename, returnval=%d\n",
- returnval );
- pp->servername[filenum] = NULL;
- D_PRINTF( "Server %s, port number %d\n",
- pp->servername[filenum],
- pp->port_number[filenum] );
- returnval = sscanf(textvalue, "%s", a_line);
- D_PRINTF( "Scan returned filename %s\n", a_line );
-
- strcpy(pp->filename[filenum], a_line);
- } /* end of parsing */
- } /* end if haveproxyserver */
-
- D_PRINTF( "Done parsing line\n" );
- D_PRINTF( "Got server %s, port %d, file %s, returnval %d\n",
- pp->servername[filenum],
- pp->port_number[filenum],
- pp->filename[filenum],
- returnval );
- } /* end if textvalue not NULL */
-
- numpages++;
- } /* end while not EOF */
- if (numpages < 1)
- {
- returnerr("No files are specified by filelist\n");
- }
- } /* end if file ok */
- fclose(fp);
- D_PRINTF( "Returning %ld pages and %ld files\n",
- numpages, numfiles );
-
- *num_of_pages = numpages;
- *num_of_files = numfiles;
-}
-/* end parse_file_list */
-
-long int
-load_percent(page_list_t *page_list, long int number_of_pages)
-{
- int i;
- long int index_number = 0;
-
- for (i = 0; i < number_of_pages; i++)
- {
- index_number += page_list[i].load_num;
- }
-
- D_PRINTF( "load_percent returning %d\n", (index_number) );
- return(index_number);
-}
-
diff --git a/apps/JAWS/clients/WebSTONE/src/parse_file_list.h b/apps/JAWS/clients/WebSTONE/src/parse_file_list.h
deleted file mode 100644
index ce2767105e6..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/parse_file_list.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/**************************************************************************
- $Header$
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs where *
- * deveolped by SGI for public use. If anychanges are made to this code *
- * please try to get the changes back to the author. Feel free to make *
- * modfications and changes to the code and release it. *
- * *
- **************************************************************************/
-#ifndef __PARSE_FILE_LIST_H__
-#define __PARSE_FILE_LIST_H__
-
-extern int count_file_list(const char *);
-
-extern void parse_file_list (char *, page_list_t *,
- long int *, long int *);
-
-#endif /* !__PARSE_FILE_LIST_H__ */
diff --git a/apps/JAWS/clients/WebSTONE/src/rexec.c b/apps/JAWS/clients/WebSTONE/src/rexec.c
deleted file mode 100644
index d9233bbcb34..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/rexec.c
+++ /dev/null
@@ -1,372 +0,0 @@
-/*
- * Copyright (c) 1994-1995 Ataman Software, Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Ataman Software, Inc.
- * 4. The name of Ataman Software, Inc. may not may be used to endorse or
- * promote products derived from this software without specific prior
- * written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY ATAMAN SOFTWARE, INC. ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL ATAMAN SOFTWARE, INC. BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-
-static char copyright[] =
- "Copyright (c) 1994-1995 Ataman Software, Inc. All rights reserved.";
-
-
-#pragma warning(disable: 4699)
-/* Includes for Win32 systems go here. */
-#define STRICT
-#pragma warning(disable: 4201)
-#include <windows.h>
-#pragma warning(default: 4201)
-#include <winsock.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <process.h>
-#include <signal.h>
-#include "sysdep.h"
-#include "bench.h"
-
-#define RETVAL DWORD
-#define IDENT HANDLE
-#define STDINPUT hStdIn
-#define STDOUTPUT hStdOut
-#define STDERROR hStdErr
-#define FILECOOKIE HANDLE
-
-static void PassOutputThread(SOCKET);
-static void PassErrorThread(SOCKET);
-
-HANDLE hStdIn, hStdOut, hStdErr;
-
-
-
-/*
-Think carefully before enabling the -p option. While it may be
-convenient to have this option, it is for many (if not most) sites a
-security hole. Remember that the '-p password' used on the command
-line is visible on most Unix systems to any user that is allow to run
-the 'ps' command (normally ALL users can run this command). While no
-utility that comes by default with Windows NT at this time shows the
-same information, it is unclear whether or not the information is
-avaiable to all users. Certainly privileged users would be be able to
-see this information on any system.
-
-If the security risk is acceptable at your site, you can enable the -p
-option by uncommenting the #define below.
-*/
-/* #define ALLOWDASH_P */
-
-static void MyOpenService(const char *remote_host);
-static BOOL Send(SOCKET, const char *, size_t);
-static BOOL SendZString(const char *);
-static BOOL GetErrString(char *, size_t);
-
-static IDENT PassInput(void);
-static IDENT PassOutput(void);
-static IDENT PassError(void);
-static BOOL Close(FILECOOKIE);
-static int Read(FILECOOKIE, char *, size_t);
-static BOOL Write(FILECOOKIE, const char *, size_t);
-static void Wait(IDENT, RETVAL *);
-
-static SOCKET sIO = INVALID_SOCKET;
-static SOCKET sErr = INVALID_SOCKET;
-
-IDENT idIn = 0;
-IDENT idOut, idErr;
-
-SOCKET rexec(const char **hostname, NETPORT port, char *username, char *password,
- char *command, SOCKET *sockerr)
-{
-
- MyOpenService(*hostname);
-
- SendZString(username);
- SendZString(password);
- SendZString(command);
-
- if (!GetErrString(command, sizeof command)) {
- errexit("Rexec: Remote aborted connection without initiating protocol: %s.\n",
- neterrstr());
- }
-
- if (*command != '\0') {
- char *p = command;
- if (*p == '\001') {
- p++;
- }
- errexit("Rexec: Remote aborted connection: %s\n", p);
- }
-
- hStdIn = GetStdHandle(STD_INPUT_HANDLE);
- hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
- hStdErr = GetStdHandle(STD_ERROR_HANDLE);
-
- *sockerr = sErr;
- return sIO;
-}
-
-
-static void MyOpenService(const char *remote_host)
-{
- struct sockaddr_in server_addr, my_err_addr, junk_addr;
- struct servent *sv;
- static char portbuf[30];
- SOCKET sTmp;
- int addr_len;
-
- if (remote_host[0] >= '0' && remote_host[0] <= '9') {
- unsigned long addr;
-
- addr = inet_addr(remote_host);
- if (addr == INADDR_NONE) {
- returnerr("Invalid IP address %s\n", remote_host);
- return;
- }
- server_addr.sin_addr.S_un.S_addr = addr;
- } else {
- struct hostent *hent;
-
- hent = gethostbyname(remote_host);
- if (hent == NULL)
- {
- D_PRINTF( "Can't get %s host entry\n", remote_host );
- D_PRINTF( "Gethostbyname failed: %d", WSAGetLastError() );
- errexit("Rexec: gethostbyname(%s) failed: %s\n",
- remote_host, neterrstr());
- }
- memcpy((char *)&server_addr.sin_addr, hent->h_addr, hent->h_length);
-}
-
-#ifdef OMIT
- hent = gethostbyname(remote_host);
- if(!hent) {
- errexit("Rexec: Lookup of server hostname failed: %s.\n",
- neterrstr());
- }
-#endif /* OMIT */
-
- sv=getservbyname("exec", "tcp");
- if (!sv) {
- errexit("Rexec: Lookup of port number for rexec service failed: %s.\n",
- neterrstr());
- }
-
- server_addr.sin_family = PF_INET;
- server_addr.sin_port = htons(sv->s_port);
-
- if((sIO=socket(PF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) {
- errexit("Rexec: I/O socket creation failed: %s.\n",
- neterrstr());
- }
-
- if(connect(sIO, (struct sockaddr *)&server_addr, sizeof server_addr) == SOCKET_ERROR) {
- errexit("Rexec: I/O socket connection failed: %s.\n",
- neterrstr());
- }
-
- memset(&my_err_addr, '\0', sizeof my_err_addr);
- my_err_addr.sin_addr.s_addr = htonl(INADDR_ANY);
- my_err_addr.sin_family = AF_INET;
- my_err_addr.sin_port = 0;
-
- if ((sTmp=socket(PF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) {
- errexit("Rexec: Error socket creation failed: error=%s.\n",
- neterrstr());
- }
-
- if (bind(sTmp, (struct sockaddr *)&my_err_addr, sizeof my_err_addr) == SOCKET_ERROR) {
- errexit("Rexec: Error socket bind failed: %s.\n",
- neterrstr());
- (void) closesocket(sTmp);
- }
-
- if (listen(sTmp, 1) == SOCKET_ERROR) {
- errexit("Rexec: Error socket listen failed: %s.\n",
- neterrstr());
- (void) closesocket(sTmp);
- }
-
- addr_len = sizeof my_err_addr;
- if (getsockname(sTmp, (struct sockaddr *)&my_err_addr, &addr_len) == SOCKET_ERROR) {
- errexit("Rexec: Error socket bind failed: %s.\n",
- neterrstr());
- (void) closesocket(sTmp);
- }
-
- sprintf(portbuf, "%hu", ntohs(my_err_addr.sin_port));
- SendZString(portbuf);
-
- addr_len = sizeof junk_addr;
- if ((sErr = accept(sTmp, (struct sockaddr *)&junk_addr, &addr_len))
- == INVALID_SOCKET) {
- errexit("Rexec: Error socket accept failed: %s.\n",
- neterrstr());
- (void) closesocket(sTmp);
- }
-
- (void) closesocket(sTmp);
-}
-
-
-
-static BOOL Send(SOCKET s, const char *buf, size_t nbuf)
-{
- int cnt;
- size_t sent = 0;
-
- while (sent < nbuf) {
- cnt = send(s, &buf[sent], nbuf-sent, 0);
- if (cnt == -1) {
- return FALSE;
- }
- sent += cnt;
- }
- return TRUE;
-}
-
-
-static BOOL SendZString(const char *str)
-{
- return Send(sIO, str, strlen(str)+1);
-}
-
-
-static BOOL GetErrString(char *str, size_t len)
-{
- size_t pos = 0;
-
- while (pos < len) {
- char ch;
- if (recv(sIO, &ch, 1, 0) != 1) {
- return FALSE;
- }
- str[pos++] = ch;
- if (ch == '\0') {
- return TRUE;
- }
- if (ch == '\n') {
- return TRUE;
- }
- }
- return FALSE;
-}
-
-
-static IDENT PassOutput()
-{
- IDENT id;
- id = (IDENT)_beginthread(PassOutputThread, 4096, (void *)sIO);
- if ((long)id == -1) {
- errexit("Rexec: Could not start output passing thread: error = %lu\n", GetLastError());
- }
- return id;
-}
-
-static void PassOutputThread(SOCKET sIO)
-{
- RETVAL retval = 0;
- int count;
- char buf[4096];
-
- while ((count=recv(sIO, buf, sizeof buf, 0)) > 0) {
- if (!Write(STDOUTPUT, buf, count)) {
- fprintf(stderr, "Error writing to standard output: error = %lu.\n", GetLastError());
- retval = 1;
- break;
- }
- }
-
- _endthread();
-}
-
-
-static IDENT PassError()
-{
- IDENT id;
- id = (IDENT)_beginthread(PassErrorThread, 4096, (void *)sErr);
- if ((long)id == -1) {
- errexit("Rexec: Could not start error passing thread: error = %lu\n", GetLastError());
- }
- return id;
-}
-
-static void PassErrorThread(SOCKET sErr)
-{
- RETVAL retval = 0;
- int count;
- char buf[4096];
-
- while ((count=recv(sErr, buf, sizeof buf, 0)) > 0) {
- if (!Write(STDERROR, buf, count)) {
- fprintf(stderr, "Error writing to standard error: error = %lu.\n", GetLastError());
- retval = 1;
- break;
- }
- }
- _endthread();
-}
-
-static BOOL Close(FILECOOKIE fc)
-{
- return CloseHandle(fc);
-}
-
-static int Read(FILECOOKIE fc, char *buf, size_t nbuf)
-{
- DWORD cbRead;
- if (!ReadFile(fc, buf, nbuf, &cbRead, NULL)) {
- return -1;
- }
- return (int)cbRead;
-}
-
-
-static BOOL Write(FILECOOKIE fc, const char *buf, size_t nbuf)
-{
- DWORD cbWritten;
-
- if (!WriteFile(fc, buf, nbuf, &cbWritten, NULL)) {
- return FALSE;
- }
- if (cbWritten != nbuf) {
- return FALSE;
- }
- return TRUE;
-}
-
-
-static void
-Wait(IDENT id, RETVAL *prv)
-{
- if (!WaitForSingleObject(id, INFINITE)) {
- *prv = 2;
- } else {
- if (!GetExitCodeThread(id, prv)) {
- *prv = 4;
- }
- }
-}
diff --git a/apps/JAWS/clients/WebSTONE/src/statistics.c b/apps/JAWS/clients/WebSTONE/src/statistics.c
deleted file mode 100644
index c07d50059d7..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/statistics.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/**************************************************************************
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-#include <math.h>
-#include <stdlib.h>
-#include "sysdep.h"
-#include "bench.h"
-
-
-double
-mean(const double sum, const int n)
-{
- if (n)
- {
- return(sum / n);
- }
- else
- {
- return(0);
- }
-}
-
-
-double
-variance(const double sum, const double sumofsquares, const int n)
-{
- double meanofsum;
-
- meanofsum = mean(sum, n);
-
- return (mean(sumofsquares,n) - (meanofsum * meanofsum));
-}
-
-
-double
-stddev(const double sum, const double sumofsquares, const int n)
-{
- return(sqrt(fabs(variance(sum, sumofsquares, n))));
-}
diff --git a/apps/JAWS/clients/WebSTONE/src/statistics.h b/apps/JAWS/clients/WebSTONE/src/statistics.h
deleted file mode 100644
index 75b6be86e87..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/statistics.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- $Headers$
-*/
-#ifndef _STATISTICS_H_
-#define _STATISTICS_H_
-
-extern double mean(const double, const int);
-extern double variance(const double, const double, const int);
-extern double stddev(const double, const double, const int);
-
-#endif /* ! _STATISTICS_H_ */
diff --git a/apps/JAWS/clients/WebSTONE/src/sysdep.c b/apps/JAWS/clients/WebSTONE/src/sysdep.c
deleted file mode 100644
index 630b1fbe780..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/sysdep.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/**************************************************************************
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-#include "sysdep.h"
-/* strerror() */
-#ifndef HAVE_STRERROR
-/* strerror is not available on SunOS 4.1.3 and others */
-extern int sys_nerr;
-extern char *sys_errlist[];
-extern int errno;
-
-char *strerror(int errnum)
-{
-
- if (errnum<sys_nerr)
- {
- return(sys_errlist[errnum]);
- }
-
- return(NULL);
-}
-
-#endif /* strerror() */
-
-
-/* stub routines for NT */
-
-#ifdef WIN32
-#include <winsock.h>
-#include <process.h>
-
-int getpid(void) {
-
- return GetCurrentThreadId();
-}
-
-void sleep(int sec) {
-
- Sleep(sec*1000);
-}
-#endif /* WIN32 */
-
diff --git a/apps/JAWS/clients/WebSTONE/src/sysdep.h b/apps/JAWS/clients/WebSTONE/src/sysdep.h
deleted file mode 100644
index 5b6e533291e..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/sysdep.h
+++ /dev/null
@@ -1,130 +0,0 @@
-#ifndef __SYSDEP_H__
-#define __SYSDEP_H__
-/**************************************************************************
- * $Header$ *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-/* include config.h, output from autoconf */
-#ifdef HAVE_CONFIG_H
-#ifndef __CONFIG_H__
-#define __CONFIG_H__
-#include "config.h"
-#endif
-#endif
-
-#ifdef WIN32
-#include <windows.h>
-#include <winsock.h>
-#endif /* WIN32 */
-
-/* MAXHOSTNAMELEN is undefined on some systems */
-#ifndef MAXHOSTNAMELEN
-#define MAXHOSTNAMELEN 64
-#endif
-
-/* SunOS doesn't define NULL */
-#ifndef NULL
-#define NULL 0
-#endif
-
-/* encapsulation of minor UNIX/WIN NT differences */
-#ifdef WIN32
-#define NETREAD(sock, buf, len) recv(sock, buf, len, 0)
-#define NETWRITE(sock, buf, len) send(sock, buf, len, 0)
-#define NETCLOSE(sock) closesocket(sock)
-#define BADSOCKET(sock) ((sock) == INVALID_SOCKET)
-#define BADSOCKET_ERRNO(sock) BADSOCKET(sock)
-#define BADSOCKET_VALUE INVALID_SOCKET
-#define S_ADDR S_un.S_addr
-
-#ifdef USE_TIMEZONE
-#error NT gettimeofday() doesn't support USE_TIMEZONE (yet)
-#else
-#define GETTIMEOFDAY(timeval, tz) gettimeofday(timeval)
-#endif /* USE_TIMEZONE */
-
-typedef unsigned short NETPORT;
-#define SRANDOM srand
-#define RANDOM_R rand_r
-#define RANDOM rand
-#define THREAD __declspec ( thread )
-#define PROGPATH "c:\\webstone\\webclient"
-#define FILENAME_SIZE 256
-#define HAVE_VPRINTF 1
-
-#define SIGCHLD 0 /* dummy value */
-#define SIGALRM 0 /* dummy value */
-typedef int pid_t;
-typedef unsigned short ushort;
-#define MAXPATHLEN 512
-
-
-
-#else /* not WIN32 */
-#define NETREAD(sock, buf, len) read(sock, buf, len)
-#define NETWRITE(sock, buf, len) write(sock, buf, len)
-#define NETCLOSE(sock) close(sock)
-#define BADSOCKET(sock) ((sock) < 0)
-#define BADSOCKET_ERRNO(sock) (BADSOCKET(sock) || errno)
-#define BADSOCKET_VALUE (-1)
-#define S_ADDR s_addr
-
-#ifdef USE_TIMEZONE
-#define GETTIMEOFDAY(timeval,tz) gettimeofday(timeval, NULL)
-#else
-#define GETTIMEOFDAY(timeval,tz) gettimeofday(timeval, tz)
-#endif /* USE_TIMEZONE */
-
-typedef unsigned short NETPORT;
-#define SRANDOM srandom
-#define RANDOM random
-#define THREAD
-#define PROGPATH "/tmp/webclient" /* "/usr/local/bin/webclient" */
-#define FILENAME_SIZE 1024
-#define HAVE_VPRINTF 1
-
-typedef int SOCKET;
-#define min(a,b) (((a) < (b)) ? a : b)
-#define max(a,b) (((a) > (b)) ? a : b)
-#endif /* WIN32 */
-
-
-/* function prototypes */
-
-#ifdef WIN32
-int getopt(int argc, char ** argv, char *opts);
-int getpid(void);
-int gettimeofday(struct timeval *curTimeP);
-int random_number(int max);
-SOCKET rexec(const char **hostname, NETPORT port, char *username, char *password,
- char *command, SOCKET *sockerr);
-void sleep(int secs);
-
-#else
-#ifdef NO_REXEC
-extern int rexec(char **, int, char *, char *, char *, int *);
-#endif
-#endif /* WIN32 */
-
-
-#ifndef HAVE_STRERROR
-/* strerror() is not available on SunOS 4.x and others */
-char *strerror(int errnum);
-
-#endif
-/* strerror() */
-
-
-#ifndef INADDR_NONE
-#define INADDR_NONE -1
-#endif
-
-/* !__SYSDEP_H__ */
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/timefunc.c b/apps/JAWS/clients/WebSTONE/src/timefunc.c
deleted file mode 100644
index 9266348435a..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/timefunc.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/**************************************************************************
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-#ifndef WIN32
-#include <netdb.h>
-#include <sys/time.h>
-#include <sys/param.h>
-#else
-#include <windows.h>
-#include <winsock.h>
-#include <time.h>
-#endif /* WIN32 */
-#include <math.h>
-#include <stdio.h>
-#include "sysdep.h"
-#include "bench.h"
-
-double
-timevaldouble(struct timeval *tin)
-{
- return ((double)tin->tv_sec + ((double)tin->tv_usec / USECINSEC));
-}
-
-
-void
-doubletimeval(const double tin, struct timeval *tout)
-{
- tout->tv_sec = (long)floor(tin);
- tout->tv_usec = (long)((tin - tout->tv_sec) * USECINSEC );
-}
-
-
-void
-addtime(struct timeval *OrigTime, struct timeval *NewTime)
-{
- OrigTime->tv_usec += NewTime->tv_usec;
- if(OrigTime->tv_usec >= USECINSEC)
- {
- /*
- * NEED TO CARRY 1.
- */
- OrigTime->tv_sec++;
- OrigTime->tv_usec -= USECINSEC;
- }
- OrigTime->tv_sec += NewTime->tv_sec;
-}
-
-
-void
-compdifftime(struct timeval *EndTime, struct timeval *StartTime, struct timeval *DiffTime)
-{
- struct timeval endtime = *EndTime;
-
- if((endtime.tv_usec - StartTime->tv_usec) < 0)
- {
- /*
- * NEED TO BORROW.
- */
- endtime.tv_usec += USECINSEC;
- endtime.tv_sec--;
- }
- DiffTime->tv_usec = endtime.tv_usec - StartTime->tv_usec;
- DiffTime->tv_sec = endtime.tv_sec - StartTime->tv_sec;
-}
-
-
-void
-mintime(struct timeval *CurrMinTime, struct timeval *CheckMinTime)
-{
- if(CheckMinTime->tv_sec < CurrMinTime->tv_sec)
- {
- *CurrMinTime = *CheckMinTime;
- return;
- }
- if(CheckMinTime->tv_sec == CurrMinTime->tv_sec)
- {
- if(CheckMinTime->tv_usec < CurrMinTime->tv_usec)
- {
- *CurrMinTime = *CheckMinTime;
- return;
- }
- }
-}
-
-
-void
-maxtime(struct timeval *CurrMaxTime, struct timeval *CheckMaxTime)
-{
- if(CheckMaxTime->tv_sec > CurrMaxTime->tv_sec)
- {
- *CurrMaxTime = *CheckMaxTime;
- return;
- }
- if(CheckMaxTime->tv_sec == CurrMaxTime->tv_sec)
- {
- if(CheckMaxTime->tv_usec > CurrMaxTime->tv_usec)
- {
- *CurrMaxTime = *CheckMaxTime;
- return;
- }
- }
-}
-
-void
-avgtime(struct timeval *TotalTime, int NumTimes, struct timeval *AvgTime)
-{
- double meantime;
-
- meantime = mean(timevaldouble(TotalTime), NumTimes);
-
- doubletimeval(meantime, AvgTime);
-}
-
-
-void
-sqtime(struct timeval *Time, struct timeval *SqTime)
-{
- double sec;
-
- sec = timevaldouble(Time);
- sec *= sec; /* square */
-
- doubletimeval(sec, SqTime);
-}
-
-
-void
-variancetime(struct timeval *SumTime, double SumSquareTime, int NumTimes, struct timeval *VarianceTime)
-{
- double result;
-
- result = variance(timevaldouble(SumTime), SumSquareTime, NumTimes);
-
- doubletimeval(result, VarianceTime);
-}
-
-
-void
-stddevtime(struct timeval *SumTime, double SumSquareTime,
- int NumTimes, struct timeval *StdDevTime)
-{
- double result;
-
- result = stddev(timevaldouble(SumTime), SumSquareTime, NumTimes);
-
- doubletimeval(result, StdDevTime);
-}
-
-double
-thruputpersec(const double n, struct timeval *t)
-{
- double tv;
-
- tv = timevaldouble(t);
- if (tv != 0)
- return n / timevaldouble(t);
- else
- return 0;
-}
-
-
diff --git a/apps/JAWS/clients/WebSTONE/src/timefunc.h b/apps/JAWS/clients/WebSTONE/src/timefunc.h
deleted file mode 100644
index 5690a2aafab..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/timefunc.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/**************************************************************************
- $Header$
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-#ifndef __TIMEFUNC_H__
-#define __TIMEFUNC_H__
-
-extern double timevaldouble(struct timeval *);
-extern void doubletimeval(const double, struct timeval *);
-
-extern void addtime(struct timeval *, struct timeval *);
-extern void compdifftime(struct timeval *, struct timeval *, struct timeval *);
-extern void mintime(struct timeval *, struct timeval *);
-extern void maxtime(struct timeval *, struct timeval *);
-extern void avgtime(struct timeval *, int, struct timeval *);
-extern void variancetime(struct timeval *, double, int, struct timeval *);
-extern void stddevtime(struct timeval *, double, int, struct timeval *);
-
-extern void sqtime(struct timeval *, struct timeval *);
-
-extern double thruputpersec(const double, struct timeval *);
-
-#endif /* !__TIMEFUNC_H__ */
diff --git a/apps/JAWS/clients/WebSTONE/src/webclient.c b/apps/JAWS/clients/WebSTONE/src/webclient.c
deleted file mode 100644
index 881c9db0ae8..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/webclient.c
+++ /dev/null
@@ -1,1295 +0,0 @@
-/**************************************************************************
- * $Header$
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-#include <thread.h>
-
-#include <stdio.h>
-
-#ifdef WIN32
-#include <windows.h>
-#include <winsock.h>
-#include <time.h>
-#include <process.h>
-#include <io.h>
-#endif /* WIN32 */
-
-#include <errno.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifndef WIN32
-#include <netdb.h>
-#include <unistd.h>
-#endif /* WIN32 */
-
-#include <time.h>
-#include <math.h>
-
-#ifndef WIN32
-#include <sys/param.h>
-#endif /* WIN32 */
-
-#include <sys/types.h>
-
-#ifndef WIN32
-#include <sys/ipc.h>
-#include <sys/shm.h>
-#include <sys/errno.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <sys/wait.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#endif /* WIN32 */
-
-#include <ctype.h>
-
-#include "sysdep.h"
-#include "bench.h"
-
-#define _BSD_SIGNALS
-#define INFINITY 100000000
-#define DEFAULTWWWPORT 80
-#define LOG_FILE "logfile"
-#ifdef WIN32
-#define DEBUG_FILE "c:/tmp/webstone-debug"
-#else
-#define DEBUG_FILE "/tmp/webstone-debug"
-#endif /* WIN32 */
-#define NCCARGS 4096
-
-/* global variables */
-
- THREAD FILE *debugfile = stderr;
- page_list_t *load_file_list; /* actually a dynamic array */
-
-int amclient = 0;
-int havewebserver = 0;
-int haveproxyserver = 0;
-int savefile = 0;
-NETPORT portnum = DEFAULTWWWPORT;
-int timeexpired = 0;
-int debug = 0;
-long int number_of_pages = 0;
-char webmaster[MAXHOSTNAMELEN];
-char webserver[MAXHOSTNAMELEN];
-char proxyserver[MAXHOSTNAMELEN];
-
-
-#ifdef WIN32
-HANDLE hSemaphore;
-int CounterSemaphore = 0; /* counter semaphore for children */
-#endif /* WIN32 */
-
-static void ClientThread(void *);
-
-/* used to bypass DNS/YP name resolution for every page */
-struct hostent webserv_phe, webmast_phe;
-struct protoent webserv_ppe, webmast_ppe;
-unsigned long webserv_addr, webmast_addr;
-short webserv_type, webmast_type; /* socket type */
-
-/* End of globals */
-
-
-static void
-usage(const char *progname)
-{
- returnerr("Usage: %s [-d] [-w webserver] [-p port_num]\n",
- progname);
- returnerr("\t[-c masterhost:port] [-t run_time | -l loops]\n");
- returnerr("\t[-n numclients] [-R]\n");
- returnerr("\t[-f config_file] [-u uilfile | url ...]\n");
- errexit("\n");
-} /* END usage() */
-
-static void
-alarmhandler(void)
-{
- /* RECEIVED AN ALARM SIGNAL */
- timeexpired = 1;
-} /* END alarmhandler() */
-
-#ifndef WIN32
-static void
-childhandler(void)
-{
- int status;
-
- /* RECEIVED A SIGNAL THAT A CHILD PROCESS HAS DIED */
- D_PRINTF( "A child process has died\n" );
- while (wait3(&status, WNOHANG, (struct rusage *)0) >= 0)
- {
- /* do nothing */
- ;
- }
-} /* END childhandler() */
-#endif /* WIN32 */
-
-
-/* look up the host name and protocol
- * called once by main() since all threads
- * use the same protocol and address
- */
-
-int resolve_addrs(char *host, char *protocol, struct hostent *host_phe, struct protoent *proto_ppe, unsigned long *addr,
- short *type) {
-struct hostent *phe;
-struct protoent *ppe;
-
- /* if IP address given, convert to internal form */
- if (host[0] >= '0' && host[0] <= '9') {
- *addr = inet_addr(host);
- if (*addr == INADDR_NONE)
- return(returnerr("Invalid IP address %s\n", host));
-
- } else {
- /* look up by name */
- phe = gethostbyname(host);
- if (phe == NULL)
- {
- D_PRINTF( "Gethostbyname failed: %s", neterrstr() );
- return(returnerr("Can't get %s host entry\n", host));
- }
- memcpy(host_phe, phe, sizeof(struct hostent));
- memcpy((char *)addr, phe->h_addr, sizeof(*addr));
- }
-
- /* Map protocol name to protocol number */
- ppe = getprotobyname(protocol);
-
- if (ppe == 0)
- {
- D_PRINTF( "protobyname returned %d\n", ppe );
- return(returnerr("Can't get %s protocol entry\n",protocol));
- }
- memcpy(proto_ppe, ppe, sizeof(struct protoent));
-
- D_PRINTF( "Protocol number %d\n", ppe->p_proto );
-
- /* Use protocol to choose a socket type */
- if (strcmp(protocol,"udp") == 0)
- {
- *type = SOCK_DGRAM;
- }
- else
- {
- *type = SOCK_STREAM;
- D_PRINTF( "Choosing SOCK_STREAM %d type %d %s\n",
- SOCK_STREAM, *type, neterrstr() );
- }
-
- return 0;
-}
-
-/* connect to a socket given the hostname and protocol */
-SOCKET
-connectsock(char *host, NETPORT portnum, char *protocol)
- {
- struct sockaddr_in sin; /* an Internet endpoint address */
- SOCKET s; /* socket descriptor */
- int type; /* socket type */
- short proto;
- int returnval; /* temporary return value */
-
- D_PRINTF( "Beginning connectsock; host=%s port=%d proto=%s\n", host,
- portnum, protocol );
-
- sin.sin_family = AF_INET;
- memset((char *)&sin, 0, sizeof(sin));
- D_PRINTF( "Zeroed address structure\n" );
-
- sin.sin_port = htons(portnum);
- D_PRINTF( "Set port number %d\n", portnum );
-
- /* get the contact information */
- if (strcmp(host, webserver) == 0) {
- sin.sin_addr.S_ADDR = webserv_addr;
- sin.sin_family = PF_INET;
- proto = webserv_ppe.p_proto;
- type = webserv_type;
- } else if (strcmp(host, webmaster) == 0) {
- sin.sin_addr.S_ADDR = webmast_addr;
- sin.sin_family = PF_INET;
- proto = webmast_ppe.p_proto;
- type = webmast_type;
- } else {
- struct hostent host_phe;
- struct protoent host_ppe;
- unsigned long host_addr;
- short host_type; /* socket type */
-
- if (resolve_addrs(host, "tcp", &host_phe, &host_ppe, &host_addr, &host_type))
- return returnerr("Can't resolve hostname %s in get()\n", host);
- sin.sin_addr.S_ADDR = host_addr;
- sin.sin_family = PF_INET;
- proto = host_ppe.p_proto;
- type = host_type;
- }
-
- /* Allocate a socket */
- s = socket(PF_INET, type, proto);
- D_PRINTF( "Socket %d returned %d, %s\n",
- type, s, neterrstr() );
-
- if (BADSOCKET(s))
- {
- D_PRINTF( "Can't create socket: %s\n",neterrstr() );
- return BADSOCKET_VALUE;
- }
-
- /* Connect the socket */
- D_PRINTF( "Trying to connect %d with size %d, %s\n",
- s, sizeof(sin), neterrstr() );
- D_PRINTF( "Address is family %d, port %d, addr %s\n",
- sin.sin_family, ntohs(sin.sin_port),
- inet_ntoa(sin.sin_addr) );
-
- returnval = connect(s, (struct sockaddr *)&sin, sizeof(sin));
- D_PRINTF( "Connect returned %d, %s\n",
- returnval, neterrstr() );
- if (returnval < 0)
- {
- D_PRINTF( "Can't connect: %s\n", neterrstr() );
- NETCLOSE(s);
- return BADSOCKET_VALUE;
- }
-
- /* all done, returning socket descriptor */
- D_PRINTF( "Returning %d from connectsock call\n", s );
- return(s);
-
-} /* END connectsock() */
-
-SOCKET
-connecttomaster(char *str)
-{
- char *tempch;
- SOCKET sock;
- char msg[100];
- char ConnectStr[100]; /* Fix to handle multiple threads */
- int tries;
-
- strcpy(ConnectStr, str);
-
- /*
- * BREAK UP THE connectstr INTO A HOSTNAME/HOST-IP AND A PORT NUMBER.
- */
- if((tempch = strpbrk(ConnectStr,":")) == NULL)
- {
- /*
- * INCORRECT FORMAT OF ConnectStr. CORRECT FORMAT IS
- * HOSTNAME:PORT OR HOST-IP:PORT
- */
- D_PRINTF( "Incorrect format %s: use hostname:port or ip_addr:port\n",
- ConnectStr );
- return(returnerr("Incorrect format %s: use host:port or ip_addr:port\n",
- ConnectStr));
- }
-
- /*
- * ZERO OUT THE COLON SO WE HAVE TWO STRINGS, THE HOSTNAME AND THE PORT
- */
- *tempch = '\0';
- tempch++;
-
- /* loop here to connect to webmaster - TCP/IP allows no more than 5
- * connection requests outstanding at once and thus the webmaster may
- * reject a connection if there are a lot of client processes
- */
-#define MAXTRIES 30
-#define TRYDELAY_SEC 1
- for (tries = 0; tries < MAXTRIES; tries++) {
-
- sock = connectsock(ConnectStr,(NETPORT)atoi(tempch),"tcp");
-
- if (!BADSOCKET(sock))
- break;
-
- sleep(TRYDELAY_SEC);
- }
-
- if (BADSOCKET(sock))
- {
- /* ERROR CONNECTING TO MASTER PROCESS */
- return(returnerr("Could not connect to master process\n"));
- }
-
- /*
- * SIGNAL THE MASTER THAT WE ARE READY TO PROCEED. WHEN ALL
- * CHILD PROCESSES HAVE CONNECTED AND SENT THIS SIGNAL,
- * THE MASTER WILL ISSUE US A GO SIGNAL.
- */
- if(NETWRITE(sock,READYSTR,READYSTRLEN) != READYSTRLEN)
- {
- return(returnerr("Error sending READY message to master"));
- }
-
- memset(msg,0,GOSTRLEN+1);
- if(NETREAD(sock,msg,GOSTRLEN) != GOSTRLEN)
- {
- D_PRINTF( "Error receiving GO message from master: %s\n", neterrstr()
- );
- return(returnerr("Error receiving GO message from master\n"));
- }
-
- if(strncmp(GOSTR,msg,GOSTRLEN))
- {
- /*
- * WE RECEIVED A MESSAGE OTHER THAN GO. PRINT IT OUT AND RETURN ERROR
- */
- return(returnerr("Received non-GO message %s\n",msg));
- }
-
- return(sock);
-
-} /* END connecttomaster() */
-
-
-static void
-accumstats(rqst_timer_t *rqsttimer, page_stats_t *pagestats, stats_t *timestat)
-{
- rqst_stats_t rqststats;
-
-#define TFMT "%10u:%10u"
- /*
- * DUMP THE TIMING INFORMATION HERE, OR COMPUTE WHAT YOU WANT TO
- * PRINT OUT LATER.
- */
-
- D_PRINTF( "Total bytes read: %d \t Body size read: %d\n",
- rqsttimer->totalbytes,
- rqsttimer->bodybytes );
-
- D_PRINTF( "Enter time: " TFMT " \t Exit Time: " TFMT "\n",
- rqsttimer->entertime.tv_sec,
- rqsttimer->entertime.tv_usec,
- rqsttimer->exittime.tv_sec,
- rqsttimer->exittime.tv_usec );
- D_PRINTF( "Before connect: " TFMT " \t After connect: " TFMT "\n",
- rqsttimer->beforeconnect.tv_sec,
- rqsttimer->beforeconnect.tv_usec,
- rqsttimer->afterconnect.tv_sec,
- rqsttimer->afterconnect.tv_usec );
- D_PRINTF( "Before header: " TFMT " \t After header: " TFMT "\n",
- rqsttimer->beforeheader.tv_sec,
- rqsttimer->beforeheader.tv_usec,
- rqsttimer->afterheader.tv_sec,
- rqsttimer->afterheader.tv_usec );
- D_PRINTF( "After body: " TFMT "\n",
- rqsttimer->afterbody.tv_sec,
- rqsttimer->afterbody.tv_usec );
-
- rqstat_times(&(rqststats), rqsttimer);
- rqstat_sum(&(timestat->rs), &(rqststats));
- rqstat_sum(&(pagestats->rs), &(rqststats));
-
- if (rqsttimer->page_number != 999)
- {
- timestat->page_numbers[rqsttimer->page_number] += 1;
- }
-
-#undef TFMT
-} /* END accumstats */
-
-
-/*
- * fetch the set of files that constitute a page
- *
- * maxcount = the number of files in the WWW page
- * pageval = the number of the WWW page (offset in load_file_list[])
- * (if -1, use page # 0 - does this still work?)
- *
- * returns the number of files retrieved
- */
-static int
-makeload(int maxcount, int pageval, THREAD rqst_timer_t *timerarray, THREAD stats_t *timestat, THREAD SOCKET mastersock, THREAD page_stats_t *page_stats)
-{
- int cnt;
- int returnval;
- page_stats_t page_stats_tmp;
- char server[MAXHOSTNAMELEN];
-
- NETPORT loc_portnum;
-
- D_PRINTF( "Starting makeload(maxcount %d, pageval %d)\n",
- maxcount, pageval );
-
- strcpy( server, webserver); /* Put in default value */
-
- page_stats_init(&page_stats_tmp);
- D_PRINTF( "Page stats initialized\n" );
-
- for (cnt = 0; cnt < maxcount; cnt++)
- {
- D_PRINTF( "Loop count %d in makeload()\n", cnt );
- if (pageval == -1)
- {
- pageval = cnt;
- }
- if (timeexpired)
- {
- break;
- }
-
- /* check for a filename */
- if (strlen(load_file_list[pageval].filename[cnt]) < 1)
- {
- D_PRINTF( "Bad filename at pageval %d, count %d\n",
- pageval, cnt );
- return(returnerr("Bad filename at pageval %d, count %d\n",
- pageval, cnt));
- }
-
- /* if (load_file_list[pageval].port_number[cnt] != 0)
- {
- loc_portnum = load_file_list[pageval].port_number[cnt];
- }
- else
- {
- loc_portnum = portnum;
- } */
- loc_portnum = portnum;
- if ((load_file_list[pageval].servername[cnt] != NULL)
- &&
- *load_file_list[pageval].servername[cnt])
- {
- D_PRINTF( "Copying URL server %s to server\n",
- load_file_list[pageval].servername[cnt] );
- strcpy(server, load_file_list[pageval].servername[cnt]);
- }
-
- if (haveproxyserver)
- {
- D_PRINTF( "Copying proxy %s to webserver\n", proxyserver );
- strcpy(server, proxyserver);
- }
-
-
- D_PRINTF( "Calling get(%s, %d, %s, &(timearray[%d]))\n",
- server, loc_portnum, load_file_list[pageval].filename[cnt],
- cnt );
-
- returnval = get(server, loc_portnum,
- load_file_list[pageval].filename[cnt],
- &(timerarray[cnt]));
- if (returnval < 0)
- {
- D_PRINTF( "***GET() RETURNED AN ERROR\n" );
- }
-
- /*
- * DID GET() RETURN A VALID TIME?
- */
- if ((returnval == 0) && (timerarray[cnt].valid == 2))
- {
- timerarray[cnt].page_number = pageval;
-
- accumstats(&timerarray[cnt], &page_stats_tmp, timestat);
- }
- else if (!timeexpired) /* INVALID, INCREMENT THE ERROR COUNTER */
- {
- D_PRINTF( "GET error counter incremented\n" );
- timestat->rs.totalerrs++;
- }
-
- if (amclient) {
- fd_set readfds;
- struct timeval timeout;
- int rv;
-
- timeout.tv_sec = 0;
- timeout.tv_usec = 0;
- FD_ZERO(&readfds);
- FD_SET(mastersock, &readfds);
-
- /* if the webmaster has aborted, quit */
- D_PRINTF("Before select() on webmaster socket\n");
- if (rv = select(FD_SETSIZE, &readfds, NULL, NULL, &timeout)) {
- D_PRINTF("select() returned %d\n", rv);
- D_PRINTF("Client terminating at request of webmaster\n");
- exit(2);
- }
- }
-
- } /* END for cnt */
-
- /*
- * DO WE HAVE A VALID RETURN FROM GET()?
- * WHY NOT USE returnval HERE?
- */
- if ((returnval == 0) &&
- (cnt == load_file_list[pageval].num_of_files) &&
- (timerarray[cnt-1].valid == 2))
- {
- rqst_stats_t *ps_rs;
- rqst_stats_t *pst_rs;
-
- ps_rs = &(page_stats[pageval].rs);
- pst_rs = &(page_stats_tmp.rs);
-
- rqstat_sum(ps_rs, pst_rs);
-
- page_stats[pageval].totalpages++;
-
- if (page_stats[pageval].page_size == 0)
- {
- page_stats[pageval].page_size = (unsigned)
- page_stats_tmp.rs.totalbody;
- }
- }
-
- D_PRINTF( "\nMakeload output page %d: %d errors, %d pages\n",
- pageval, timestat->rs.totalerrs, page_stats[pageval].totalpages );
- D_PRINTF( "Makeload returning %d\n", cnt );
-
- return(cnt);
-
-} /* END makeload() */
-
-#ifdef WIN32
-/* close socket library at exit() time */
-void sock_cleanup(void) {
-
- WSACleanup();
-}
-#endif /* WIN32 */
-
-/* globalize variables that were in main() */
-long int numfiles = 0;
-int testtime = 0;
-int numloops = 0;
-int numclients = 0;
-int record_all_transactions = 0;
-int uil_filelist_f = 0; /* filedescriptor of URLs to fetch? */
-int verbose = 0;
-int total_weight;
-char uil_filelist[NCCARGS];
-char filelist[MAXNUMOFFILES][MAXPATHLEN];
-char configfile[MAXPATHLEN];
-char connectstr[MAXHOSTNAMELEN+10];
-
-void
-main(int argc, char *argv[])
-{
- int file_count=0;
- int getoptch;
- int currarg;
- extern char *optarg;
- extern int optind;
- int i, j;
- char *tempch;
- int err;
-
-#define SLEEP_USEC 100
-#ifdef WIN32
- WSADATA WSAData;
-#else
-
- struct timeval sleeptime;
-
- /* set the amount of time that we'll pause before sending a "." to the
- webmaster */
-
- sleeptime.tv_sec = SLEEP_USEC/1000000;
- sleeptime.tv_usec = SLEEP_USEC % 1000000;
-#endif /* WIN32 */
-
- debugfile = stderr;
-
-#ifdef WIN32
- MessageBeep(~0U); /* announce our existence */
- MessageBeep(~0U);
- MessageBeep(~0U);
-
- err = WSAStartup(MAKEWORD(1,1), &WSAData);
- if (err != 0) {
- errexit("Error in WSAStartup()\n");
- }
-
- atexit(sock_cleanup);
-
- SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_HIGHEST);
-
- /* create semaphore in locked state */
- hSemaphore = CreateSemaphore(NULL, 0, 1, NULL);
- if(hSemaphore == NULL)
- {
- errexit("Create semaphore failed: %d", GetLastError());
- }
-#endif /* WIN32 */
-
- memset(webserver, 0, sizeof(webserver));
- memset(webmaster, 0, sizeof(webmaster));
- memset(proxyserver, 0, sizeof(proxyserver));
- memset(connectstr, 0, sizeof(connectstr));
-
- /*
- * PARSE THE COMMAND LINE OPTIONS
- */
-
- while((getoptch = getopt(argc,argv,"P:f:t:l:p:u:R:w:c:n:sdv")) != EOF)
- {
- switch(getoptch)
- {
- case 'c':
- sprintf(connectstr, "%s", optarg);
- amclient = 1;
- printf("%s", OKSTR); /* sent back to webmaster */
- fflush(stdout);
- break;
- case 'd':
- debug = 0; /* sumedh */
- break;
- case 'f':
- sprintf(configfile, "%s", optarg);
- break;
- case 'l':
- numloops = atoi(optarg);
- break;
- case 'n':
- numclients = atoi(optarg);
- break;
- case 'u':
- sprintf(uil_filelist, "%s", optarg);
- uil_filelist_f = 1;
- break;
- case 'p':
- portnum = atoi(optarg);
- break;
- case 's':
- savefile = 1;
- break;
- case 't':
- testtime = 60 * atoi(optarg);
- break;
- case 'v':
- verbose = 1;
- break;
- case 'w':
- havewebserver = 1;
- sprintf(webserver,"%s",optarg);
- break;
- case 'P':
- haveproxyserver = 1;
- sprintf(proxyserver, "%s", optarg);
- break;
- case 'R':
- record_all_transactions = 1;
- break;
- default:
- usage(argv[0]);
- }
- }
-
- returnerr("Client begins...\n");
- D_PRINTF( "Running in debug mode\n\n" );
-
- /* print the command line */
- for (i = 0; i < argc; i++)
- D_PRINTF( "%s ", argv[i] );
- D_PRINTF( "\n\n" );
-
- if(testtime && numloops)
- {
- /*
- * EITHER numloops OR testtime, BUT NOT BOTH.
- */
- usage(argv[0]);
- }
-
- if(havewebserver != 1)
- {
-#ifdef WIN32
- /*
- * THE SERVER'S NAME MUST BE SPECIFIED
- */
- returnerr("No WWW Server specified\n");
- usage(argv[0]);
-#else
- /* IF IT ISN'T, WE ASSUME LOCALHOST */
- sprintf(webserver, "%s", "localhost");
- havewebserver = 1;
-#endif /* WIN32 */
- }
-
- currarg = optind;
- numfiles = 0;
- while(currarg != argc)
- {
- /*
- * GET THE URLS TO RETRIEVE.
- */
- if (numfiles == MAXNUMOFFILES) {
- returnerr("Maximum of %d files on the command line.\n");
- usage(argv[0]);
- }
- sscanf(argv[currarg],"%s",filelist[numfiles]);
- numfiles++;
- currarg++;
- }
-
- if ((numfiles != 0) && uil_filelist_f)
- {
- returnerr("Both a filelist and UIL specified.\n");
- usage(argv[0]);
- }
-
- if((numfiles == 0) && !(uil_filelist_f))
- {
- /*
- * AT LEAST ONE FILE MUST BE SPECIFIED
- */
- returnerr("No UIL resources or filelist specified \n");
- usage(argv[0]);
- }
-
- if((numloops == 0) && (testtime == 0))
- {
- /*
- * NO SPECIFIED NUMBER OF LOOPS, AND NO TEST TIME
- */
- usage(argv[0]);
- }
- if(numclients > MAXPROCSPERNODE || numclients < 1)
- {
- returnerr("Number of Clients must be between 1 and %d\n", MAXPROCSPERNODE);
- exit(1);
- }
-
- /* allow use of IP address */
- if(amclient) {
- if((tempch = strpbrk(connectstr,":")) == NULL)
- {
- /*
- * INCORRECT FORMAT OF ConnectStr. CORRECT FORMAT IS
- * HOSTNAME:PORT OR HOST-IP:PORT
- */
- D_PRINTF( "Incorrect format %s: use hostname:port or ip_addr:port\n",
- connectstr );
- returnerr("Incorrect format %s: use host:port or ip_addr:port\n", connectstr);
- exit(1);
- } else {
- strncpy(webmaster, connectstr, tempch-connectstr);
- }
- if(resolve_addrs(webmaster, "tcp", &webmast_phe, &webmast_ppe, &webmast_addr, &webmast_type))
- exit(1);
- }
-
- if (haveproxyserver)
- {
- D_PRINTF( "Copying proxy %s to webserver\n", proxyserver );
- strcpy(webserver, proxyserver);
- }
-
- if (resolve_addrs(webserver, "tcp", &webserv_phe, &webserv_ppe, &webserv_addr, &webserv_type))
- exit(1);
-
- /*
- * INITIALIZE DATA
- */
- /* allocate space for dynamic arrays */
- load_file_list =
- (page_list_t *)mymalloc((MAXNUMOFPAGES)*sizeof(page_list_t));
-
- if (uil_filelist_f)
- {
- /* take a guess at the number of URLs in the file */
- D_PRINTF( "About to parse filelist %s\n", uil_filelist );
- number_of_pages = count_file_list(uil_filelist);
- numfiles = 1;
-
- /* IF WE HAVE A FILELIST, PARSE IT */
- /* allocate memory */
- D_PRINTF( "Allocating page list: %ld by %d\n",
- number_of_pages, numfiles );
- for (i=0; i<number_of_pages; i++)
- {
- for (j=0; j<MAXNUMOFFILES; j++)
- {
- load_file_list[i].servername[j] =
- (char *)mymalloc(URL_SIZE);
- load_file_list[i].filename[j] =
- (char *)mymalloc(URL_SIZE);
- }
- }
-
- D_PRINTF( "Parsing file list: %s\n", uil_filelist );
- parse_file_list(uil_filelist, load_file_list,
- &number_of_pages, &numfiles);
- /* free memory for pages that won't be used? */
- D_PRINTF( "Actual page list: %ld by %d\n",
- number_of_pages, MAXNUMOFFILES );
-
- D_PRINTF( "Setting up weighting for %ld pages\n",
- number_of_pages );
- total_weight = load_percent(load_file_list, number_of_pages);
- /* total_weight = load_percent(load_file_list, number_of_pages, pages); */
- }
- else
- {
- /* no uil file */
- number_of_pages = numfiles;
- }
-
- if (number_of_pages < 1)
- {
- /* no pages - exit */
- D_PRINTF( "No valid URLs found\n" );
- errexit("No valid URLs found\n");
- }
-
-#ifndef WIN32
- /*
- * IF WE ARE TO FORK ADDITIONAL CLIENTS ON THIS MACHINE,
- * WE MUST DO IT BEFORE WE CONNECT TO THE MASTER.
- *
- * FIRST, SET UP SIGNAL HANDLING
- */
- signal(SIGCHLD, childhandler);
- for(i = 0; i < numclients; i++)
- {
- thr_create (NULL, NULL, ClientThread, NULL, THR_BOUND, NULL);
-
- /* switch(fork())
- {
- case 0:
- numclients = 1;
- ClientThread(NULL);
- exit(0);
- break;
- case -1:
- errexit("Error forking child processes\n");
- exit(1);
- default:
- break;
- } */
- select(0,(fd_set *)0,(fd_set *)0, (fd_set *)0, &sleeptime);
- }
-
- /*
- * Wait for all children to exit.
- */
-
- while (thr_join(NULL, NULL, NULL) == 0);
-
- /* for(;;)
- {
- int pid = wait((int*)0);
- if ((pid == -1) && errno == ECHILD) break;
- } */
-#else
- /* start threads on NT */
- for (i = 0; i < numclients; i++)
- {
- if (_beginthread(ClientThread, 0, NULL) == -1)
- {
- errexit("_beginthread failed: %d", GetLastError());
- }
- }
-#endif /* WIN32 */
-
-#ifdef WIN32
- /* wait for children to get to sync point */
- while (CounterSemaphore < numclients)
- sleep(1);
- CounterSemaphore = 0;
-
- /* start all children simultaneously */
- ReleaseSemaphore(hSemaphore, 1, NULL);
-
- if (testtime) {
- sleep(testtime);
- alarmhandler(); /* signal end of test to threads */
- }
-
- /*
- * Wait for all threads to exit.
- */
- while (CounterSemaphore < numclients)
- sleep(1);
-
- CloseHandle(hSemaphore);
-#endif /* WIN32 */
-
- return;
-} /* end main() */
-
-void ClientThread(void *dummy)
-{
-
- THREAD FILE *logfile;
-
- THREAD stats_t timestat;
-
- THREAD rqst_timer_t timerarray[MAXNUMOFFILES];
- THREAD SOCKET mastersock = BADSOCKET_VALUE; /* connection to webmaster */
-
-
- THREAD page_stats_t *page_stats; /* actually a dynamic array */
-
- int loopcnt = 0;
- int filecnt;
- int loop;
- int ran_number;
- int page_index;
- int page_number;
- int file_count = 0;
- char file_name[50];
- struct timeval runningtime;
- time_t junk;
- int i;
- int returnval;
-
- /*
- * INITIALIZE DATA
- */
-
- page_stats =
- (page_stats_t *)mymalloc((number_of_pages)*sizeof(page_stats_t));
-
- for (i=0; i < number_of_pages; i++) {
- page_stats_init(&(page_stats[i]));
- }
-
- if (debug)
- {
- /*
- * OPEN A DEBUG FILE
- */
- fflush(stderr);
- sprintf(file_name, "%s.%d", DEBUG_FILE, (int)getpid());
- debugfile = fopen(file_name, "w+");
- if (debugfile == NULL)
- errexit("Can't open debug file\n");
- D_PRINTF( "Running in debug mode, %d\n",amclient );
- }
-
- if (record_all_transactions)
- {
- /*
- * OPEN A LOG FILE.
- */
- sprintf(file_name, "%s%d", LOG_FILE, (int)getpid());
- returnerr("Log file is %s\n", file_name);
- logfile = fopen(file_name, "w+");
- }
-
- /* Initialize random number generator */
- junk = getpid ();
- rand_r(&junk);
- D_PRINTF( "Random seed: %d\n", junk );
-
- for (i=0; i < MAXNUMOFFILES; i++)
- {
- rqtimer_init(&(timerarray[i]));
- }
- stats_init(&timestat);
-
- D_PRINTF( "Number of files %d\n", numfiles );
-
- timestat.total_num_of_files = numfiles;
-
- if (amclient)
- {
- /*
- * WE ARE A CLIENT PROCESS. (i.e. WE ARE NOT RUN BY A USER, BUT BY
- * THE MASTER WWWSTONE PROCESS. WE NEED TO CONNECT TO THE
- * MASTER WHO WILL SYNCHRONIZE ALL THE CLIENTS.
- */
- D_PRINTF( "Trying to connect with %s\n",connectstr );
-
- mastersock = connecttomaster(connectstr);
-
- D_PRINTF( "connecttomaster returns %d, %s\n",
- mastersock, neterrstr() );
-
- if(BADSOCKET(mastersock))
- {
- /*
- * ERROR CONNECTING TO THE MASTER. ABORT.
- */
- errexit("Error connecting to the master: %s\n", neterrstr());
- }
- } /* END IF CLIENT */
-
-#ifdef WIN32
- /* Tell parent we're ready */
- InterlockedIncrement(&CounterSemaphore);
-
- /* Wait for main() thread to release us */
- WaitForSingleObject(hSemaphore, INFINITE);
- ReleaseSemaphore(hSemaphore, 1, NULL);
-#endif /* WIN32 */
- if (testtime != 0)
- {
- /*
- * IF RUNNING A TIMED TEST, WE WILL LOOP
- * UNTIL THE ALARM GOES OFF.
- * WE'LL ALSO NEED TO SET THE SIGNAL HANDLER
- */
-#ifndef WIN32
- /*signal(SIGALRM, alarmhandler);*/
- /*
- * SEND SIGALRM IN testtime SECONDS
- */
- /*alarm(testtime);*/
-#endif /* WIN32 */
- }
-
- /*
- * AND THEY'RE OFF...
- */
-
- if (testtime)
- numloops = INFINITY;
- GETTIMEOFDAY(&(timestat.starttime), &(timestat.starttimezone));
-
- /* LOOP UNTIL WE HIT numloops, OR WE RUN OUT OF TIME */
- for(loopcnt = 0; (loopcnt < numloops) && !timeexpired; loopcnt++)
- {
- /*
- * THIS IS WHERE LOAD TESTING IS DONE.
- * GET A RANDOM NUMBER, THEN INDEX INTO THE
- * PAGE, AND THEN REQUEST THAT SET OF FILES.
- */
- if (uil_filelist_f) /* HAVE FILELIST */
- {
- D_PRINTF( "Have filelist\n" );
- /* if (testtime != 0) /* RUNNING IN TIMED MODE */
- if (1)
- {
- D_PRINTF( "Running in timed mode\n" );
- /* random number between 0 and totalweight-1 */
- junk = getpid ();
- ran_number = (rand_r(&junk) % total_weight);
- D_PRINTF( "random %ld\n", ran_number );
-
- /* loop through pages, find correct one
- * while ran_number is positive, decrement it
- * by the load_num of the current page
- * example: ran_number is 5, pages have weights of 10 and 10
- * first iteration page_index = 0, ran_number = -5
- * iteration halted, page_index = 0
- */
- page_index = -1;
- while (ran_number >= 0)
- {
- page_index++;
- D_PRINTF( "Current page index %d: %ld - %d\n",
- page_index, ran_number,
- load_file_list[page_index].load_num
- );
- ran_number -= load_file_list[page_index].load_num;
- }
-
- if (page_index >= number_of_pages) { page_index--; }
-
- D_PRINTF( "Final page index %d\n", page_index );
- filecnt = makeload(load_file_list[page_index].num_of_files,
- page_index, timerarray, &timestat, mastersock, page_stats);
- testtime = 1;
- }
- else /* NOT RUNNING IN TIMED MODE */
- {
- for (page_number = 0;
- page_number < number_of_pages;
- page_number++)
- {
- filecnt = makeload(load_file_list[page_number].num_of_files,
- page_number, timerarray, &timestat, mastersock, page_stats);
-
- } /* END for page_number */
- } /* END if/else TIMED MODE */
- }
- else /* NO FILELIST */
- {
- D_PRINTF( "No filelist\n" );
- /*
- * LOOP THROUGH UNTIL numfiles TIMES OR UNTIL TIMER EXPIRES
- * AND ALARM SETS filecnt TO INFINITY.
- */
-
- /* does this still work?? */
- /* filecnt = makeload(numfiles, -1, timerarray); */
- } /* END if HAVE FILELIST */
-
- if (filecnt > 0)
- file_count += filecnt;
-
- } /* END while loopcnt */
-
- GETTIMEOFDAY(&(timestat.endtime), &(timestat.endtimezone));
- D_PRINTF( "Test run complete\n" );
- signal(SIGALRM, NULL);
-
- if (testtime == 0)
- {
- numfiles = loopcnt;
-
- if (uil_filelist_f)
- {
- numfiles = file_count;
- }
- }
-
- /* This option ( "-R" ) looks broken (e.g. l > 50) -- JEF 2/15/96 */
- if (record_all_transactions)
- {
- /*
- * DUMP THE LOG FILE INFORMATION.
- */
- for (loop=0; loop < (loopcnt * file_count); loop++)
- {
- fprintf(logfile, " entertime \t%d.%d\n"
- " beforeconnect \t%d.%d\n"
- " afterconnect \t%d.%d\n"
- " beforeheader \t%d.%d\n"
- " afterheader \t%d.%d\n"
- " afterbody \t%d.%d\n"
- " exittime \t%d.%d\n"
- " total bytes \t%d\n"
- " body bytes\t%d\n",
- timerarray[loop].entertime.tv_sec,
- timerarray[loop].entertime.tv_usec,
- timerarray[loop].beforeconnect.tv_sec,
- timerarray[loop].beforeconnect.tv_usec,
- timerarray[loop].afterconnect.tv_sec,
- timerarray[loop].afterconnect.tv_usec,
- timerarray[loop].beforeheader.tv_sec,
- timerarray[loop].beforeheader.tv_usec,
- timerarray[loop].afterheader.tv_sec,
- timerarray[loop].afterheader.tv_usec,
- timerarray[loop].afterbody.tv_sec,
- timerarray[loop].afterbody.tv_usec,
- timerarray[loop].exittime.tv_sec,
- timerarray[loop].exittime.tv_usec,
- timerarray[loop].totalbytes,
- timerarray[loop].bodybytes);
- } /* end for loop */
- } /* end if recording all transactions */
-
- D_PRINTF( "total errors: %d\n",timestat.rs.totalerrs );
- /* gethostname(timestat.hostname,MAXHOSTNAMELEN); */
- /* D_PRINTF( "Test for host: %s\n",timestat.hostname ); */
- D_PRINTF( "Server is: %s running at port number: %d\n",
- webserver,portnum );
-
- /* sprintf(timestat.hostname,"%s:%d",timestat.hostname,getpid()); */
- if (amclient) /* CLIENT TO A WEBMASTER */
- {
- char *stats_as_text;
-
- /*
- * SEND THE TIMING DATA TO THE MASTER
- */
- stats_as_text = stats_to_text(&timestat);
- D_PRINTF( "stats_to_text returned %s\n", stats_as_text );
-
- returnval = senddata(mastersock, stats_as_text,
- SIZEOF_STATSTEXTBASE + number_of_pages*SIZEOF_DOUBLETEXT);
- D_PRINTF( "Wrote time stats to master %d\n", returnval );
-
- if (returnval < 1)
- {
- D_PRINTF( "Error while writing time stats: %s\n",
- neterrstr() );
- errexit("Error while writing time stats: %s\n",
- neterrstr());
- }
-
- if (uil_filelist_f)
- /* write pagestats */
- {
- char *page_stats_as_text;
- for (i = 0; i < number_of_pages; i++)
- {
- D_PRINTF( "On page_stats[%d]\n", i );
- page_stats_as_text = page_stats_to_text(&page_stats[i]);
- returnval = strlen(page_stats_as_text);
- D_PRINTF( "page_stats_to_text[%d] returned %d\n",
- i, returnval );
- returnval = senddata(mastersock, page_stats_as_text,
- SIZEOF_PAGESTATSTEXT);
- if (returnval < 1)
- {
- D_PRINTF( "Error while writing page_stats[%d]: %s\n",
- i, neterrstr() );
- errexit("Error while writing page_stats[%d]: %s\n",
- i, neterrstr());
- } /* end if */
- D_PRINTF( "Wrote %d bytes of page_stats[%d] to master\n",
- returnval, i );
- } /* end for */
- } /* end if filelist */
-
- D_PRINTF( "About to close socket\n" );
- if (NETCLOSE(mastersock))
- D_PRINTF( "Close socket error: %s\n", neterrstr() );
- }
- else /* NOT A CLIENT TO A WEBMASTER */
- {
- if (testtime)
- {
- printf("Test ran for: %d minutes\n",(testtime/60));
- }
- else
- {
- printf("Test ran for: %d iterations.\n",numloops);
- }
- compdifftime(&(timestat.endtime), &(timestat.starttime),
- &(runningtime));
- printf("Total time of test (sec) %d.%d\n", runningtime.tv_sec,
- runningtime.tv_usec);
- printf("Files retrieved per iteration: %d\n",numfiles); /* 'per iteration' */
- printf("----------------------------------\n");
- printf("Totals:\n\n");
- rqstat_print(&(timestat.rs));
-
- if (timestat.rs.totalconnects == 0)
- goto end;
- printf("Thruput = %5.2lf Kbytes/sec\n",
- thruputpersec(timestat.rs.totalbytes, &runningtime) / 1000);
-
- if (uil_filelist_f && numloops && verbose)
- {
- for (loop = 0; loop < number_of_pages; loop++)
- {
- if (timestat.page_numbers[loop] != 0)
- {
- printf ("===============================================================================\n");
- printf ("Page # %d\n\n", loop);
- printf ("Total number of times page was hit %d\n",
- page_stats[loop].totalpages);
- rqstat_print(&(page_stats[loop].rs));
- printf ("Page size %d \n", page_stats[loop].page_size);
- printf ("===============================================================================\n\n");
- } /* END if timestat */
- } /* END for loop */
- } /* END if filelist */
- } /* END if client */
-
-end:
- if(record_all_transactions)
- fclose(logfile);
- if(debug)
- {
- D_PRINTF( "Client exiting.\n" );
- fclose(debugfile);
- }
-
-#ifdef WIN32
- /* tell parent we're done */
- InterlockedIncrement(&CounterSemaphore);
-#endif /* WIN32 */
-
-} /* END ClientThread() */
diff --git a/apps/JAWS/clients/WebSTONE/src/webmaster.c b/apps/JAWS/clients/WebSTONE/src/webmaster.c
deleted file mode 100644
index f98e073a10a..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/webmaster.c
+++ /dev/null
@@ -1,1417 +0,0 @@
-/**************************************************************************
-$Header$
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-#include <stdio.h>
-#include <errno.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-#ifndef WIN32
-#include <unistd.h>
-#endif /* WIN32 */
-
-#include <math.h>
-
-#ifndef WIN32
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/errno.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#else
-#define FD_SETSIZE 1024 /* max size for select() - keep before <winsock.h>
- * and same size as MAXCLIENTS */
-#include <windows.h>
-#include <winsock.h>
-#include <io.h>
-#include <process.h>
-#endif /* WIN32 */
-
-#include "sysdep.h"
-#include "bench.h"
-
-/* command line options/data */
-int savefile = 0;
-int debug = 0;
-int norexec = 0;
-int haveproxyserver = 0;
-char proxyserver[MAXHOSTNAMELEN];
-char network_mask_str[30] = "255.255.255.0";
-unsigned network_mask = 0;
-int servaddrin_config = 0;
-int dumpall = 0;
-int testtime = 0;
-int havewebserver = 0;
-int numloops = 0;
-NETPORT portnum = 0;
-int redirect = 0;
-int record_all_transactions = 0;
-int uil_filelist_f = 0;
-int verbose = 0;
-char webserver[MAXHOSTNAMELEN];
-char configfile[MAXPATHLEN];
-char uil_filelist[NCCARGS];
-
-char filelist[256][MAXPATHLEN];
-fd_set zerofdset;
-
-/* other key data */
-long int number_of_pages = 0;
-int totalnumclients = 0;
-int num_rexecs = 0;
-SOCKET socknum[MAXCLIENTS];
-SOCKET sockIO[MAXTOTALPROCS];
-SOCKET sockErr[MAXTOTALPROCS];
-THREAD FILE *debugfile = stderr;
-struct hostent *master_phe; /* IP addresses for webmaster */
-struct timeval sumedh_start, sumedh_end;
-
-void HostEntCpy(struct hostent *dest, struct hostent *src);
-
-static void
-usage(const char *progname)
-{
-
- fprintf(stderr, "Usage: %s [-a] [-d] -f config_file [-l numloops]\n",
- progname);
- fprintf(stderr, " [-p port_num] [-r] [-s] [-t run_time] \n");
- fprintf(stderr, "\n");
- fprintf(stderr, "-w webserver URL [URL ...]\n\n");
- fprintf(stderr, "-a print timing information for all clients\n");
- fprintf(stderr, "-d turn on debug statements\n");
- fprintf(stderr, "-f config_file\tfile specifying clients\n");
- fprintf(stderr, "-l number of iterations to retrieve uils\n");
- fprintf(stderr, "-p port number of web server if not 80\n");
- fprintf(stderr, "-r redirect stdout of clients to /tmp/webstone.xxx\n");
- fprintf(stderr, "-s save client gets to /tmp/webstone.data.*\n");
- fprintf(stderr, "-t run_time\tduration of test in minutes\n");
- fprintf(stderr, "-w webserver\tname of webserver host to contact\n");
- fprintf(stderr, "-u URL file\tfilelist of URLs\n");
- fprintf(stderr, "-v verbose mode\n");
- fprintf(stderr, "-P servername\tuse proxy server for transactions\n");
- fprintf(stderr, "-W webserver addresses are in the config file\n");
- fprintf(stderr, "-R record all transactions\n");
- errexit("\n");
-}
-
-static SOCKET
-passivesock(const NETPORT portnum, const char *protocol, const int qlen)
-{
- struct protoent *ppe; /* pointer to protocol info entry */
- struct sockaddr_in sin; /* Internet endpoint address */
- SOCKET s; /* socket descriptor */
- int type; /* socket type */
-
- D_PRINTF( "Beginning passivesock with errno %d\n",errno );
-
- D_PRINTF( "Zeroing address structure\n" );
- memset((char *)&sin, 0, sizeof(sin));
-
- sin.sin_family = AF_INET;
- sin.sin_addr.s_addr = INADDR_ANY;
-
- /* NOT USED: Map service name to portnumber */
- D_PRINTF( "Mapping portnum errno %d\n",errno );
- sin.sin_port = htons(portnum);
-
- /* Map protocol name to number */
- D_PRINTF( "Mapping protocol name errno %d\n",errno );
- if ((ppe = getprotobyname(protocol)) == 0)
- {
- errexit("Can't get \"%s\" protocol entry\n", protocol);
- }
- errno = 0;
-
- /* use protocol to choose socket type */
- D_PRINTF( "Changing socket type, errno %d\n",errno );
- if (strcmp(protocol, "udp") == 0)
- {
- type = SOCK_DGRAM;
- D_PRINTF( "Choosing SOCK_DGRAM\n" );
- }
- else
- {
- type = SOCK_STREAM;
- D_PRINTF( "Choosing SOCK_STREAM, errno %d\n",errno );
- }
-
- /* allocate a socket */
- s = socket(PF_INET, type, ppe->p_proto);
- if (BADSOCKET(s))
- {
- D_PRINTF( "Socket PF_INET %d %d returned %d with %s\n",
- type, ppe->p_proto, s, neterrstr() );
- errexit("Can't create socket: %s\n", neterrstr());
- }
- D_PRINTF( "Socket %d created with errno %d\n",s,errno );
-
- /* Bind the socket */
- if (bind(s, (struct sockaddr *)&sin, sizeof(sin)) < 0)
- {
- errexit("Can't bind to port %d: %s\n", portnum, neterrstr());
- }
- D_PRINTF( "Bind succeeded\n" );
-
- /* If it's a stream, listen for connections */
- /* NOTE: ON NT, the listen() backlog parm is silently limited to 5 conns */
- if ((type == SOCK_STREAM) && BADSOCKET(listen(s, qlen)))
- {
- errexit("Can't listen on port %s: %s\n", portnum, neterrstr());
- }
- D_PRINTF( "Listen succeeded\n" );
-
- /* all done, return socket descriptor */
- return(s);
-}
-
-
-/* abort clients -- called by SIGINT handler */
-static void abort_clients(void)
-{
- /* Not supposed to have fprintf in a signal handler, but... */
- fprintf(stdout, "Webmaster received SIGINT. Terminating.\n");
- /* exit will close all open connections */
- exit(2);
-}
-
-/* signal handler for SIGINT */
-static void sig_int(int sig) {
-
- abort_clients();
-}
-
-#ifdef WIN32
-
-/* echo stdout/stderr from clients */
-void echo_client(void *stream)
-{
- SOCKET *sockarr;
- FILE *outfile;
- int which_stream = (int) stream;
- char buf[BUFSIZ];
- int i, len, rv;
- fd_set readfds;
-
- /* This code which handles the timeout may need
- to be ifdef'ed for WIN32 */
- struct timeval timeout;
-
- timeout.tv_sec = (long)5;
- timeout.tv_usec = (long)0;
-
- if (which_stream) {
- sockarr = sockIO;
- outfile = stdout;
- } else {
- sockarr = sockErr;
- outfile = stderr;
- }
-
- D_PRINTF( "echo_client running\n" );
- signal( SIGINT, SIG_DFL); /* restore default behavior
- for SIGINT */
-
- while (1) {
- FD_ZERO(&readfds);
- for (i = 0; i < num_rexecs; i++)
- if (sockarr[i] != BADSOCKET_VALUE)
- FD_SET(sockarr[i], &readfds);
- rv = select(num_rexecs, &readfds, NULL, NULL, &timeout);
- if ( rv == 0)
- continue;
- if (rv < 0 && WSAGetLastError() == WSANOTINITIALISED)
- return;
- if (rv < 0)
- errexit("Error in echo_client(): select() returns %d: %s\n", rv, neterrstr());
-
- /* loop over the sockets that are ready with data */
- for (i = 0; i < num_rexecs; i++) {
- if (sockarr[i] != BADSOCKET_VALUE && FD_ISSET(sockarr[i], &readfds)) {
- len = NETREAD(sockarr[i], buf, sizeof(buf));
- if (len <= 0) {
- /* mark connection closed */
- sockarr[i] = BADSOCKET_VALUE;
- if (len < 0 && WSAGetLastError() == WSANOTINITIALISED)
- return;
- if (len < 0)
- fprintf(stderr, "Error in echo_client() after NETREAD(): %s\n", neterrstr());
- continue;
- }
-
- /* copy to stdout or stderr */
- fwrite(buf, sizeof(char), len, outfile);
- }
- }
- }
- D_PRINTF( "Exiting echo_client\n" );
-}
-
-#else
-static int
-echo_client(char *hostname, const int fd)
-{
- /*
- * WRITE TEXT FROM FILE DESCRIPTOR INTO STDOUT
- */
- char buf[BUFSIZ];
- int cc;
- D_PRINTF( "echo_client running\n" );
-
- while (getppid() != 1)
- {
- cc = NETREAD(fd, buf, sizeof(buf));
- if (cc > 0)
- {
- write(STDOUT_FILENO, buf, cc);
- }
- }
- D_PRINTF( "Exiting echo_client\n" );
- NETCLOSE(fd);
-}
-#endif /* WIN32 */
-
-/* Picks the appropriate webmaster IP address based on the address of the client.
- * This is significant only for hosts with multiple interfaces
- *
- * return value is a string with the IP address or hostname (or NULL)
- */
-char *pick_webmaster_IP_address(char *client_hostname, struct hostent *master_phe,
- unsigned netmask) {
-static char buf[20];
-unsigned char addr[4];
-int client_addr;
-int i;
-
- if (client_hostname[0] >= '0' && client_hostname[0] <= '9') {
- /* we have an IP address */
- client_addr = inet_addr(client_hostname);
- if (client_addr == INADDR_NONE)
- return NULL;
- } else {
- /* we have a hostname, use the webserver hostname */
- return master_phe->h_name;
- }
-
- for (i = 0; master_phe->h_addr_list[i] != NULL; i++) {
- if ((*(int *)(master_phe->h_addr_list[i]) & netmask) ==
- (client_addr & netmask))
- goto gotit;
- }
- i = 0; /* give up */
-
-gotit:
- memcpy((char *)addr, master_phe->h_addr_list[i], sizeof(addr)); /* Internet specific */
- sprintf(buf, "%d.%d.%d.%d", addr[0], addr[1], addr[2], addr[3]);
- return buf;
-}
-
-/*
- Command line parsing
-*/
-
-void ParseCmdLine(int argc, char **argv )
-{
-char getoptch;
-int currarg;
-extern char *optarg;
-extern int optind;
-
- /*
- * PARSE THE COMMAND LINE OPTIONS
- */
- while((getoptch = getopt(argc,argv,"P:f:t:l:p:u:R:w:n:M:adrsvWX")) != (const char)EOF)
- {
- switch(getoptch)
- {
- case 'M':
- strcpy(network_mask_str, optarg);
- break;
- case 'P':
- haveproxyserver = 1;
- strcpy(proxyserver, optarg);
- break;
- case 'R':
- record_all_transactions = 1;
- break;
- case 'X':
- norexec = 1;
- break;
- case 'W':
- servaddrin_config = 1;
- break;
- case 'a':
- dumpall = 1;
- break;
- case 'd':
- debug = 1;
- break;
- case 'f':
- strcpy(configfile, optarg);
- break;
- case 'l':
- numloops = atoi(optarg);
- break;
- case 'p':
- portnum = atoi(optarg);
- break;
- case 'r':
- redirect = 1;
- break;
- case 's':
- savefile = 1;
- break;
- case 't':
- testtime = atoi(optarg);
- break;
- case 'u':
- uil_filelist_f = 1;
- strcpy(uil_filelist, optarg);
- break;
- case 'v':
- verbose = 1;
- break;
- case 'w':
- havewebserver = 1;
- strcpy(webserver, optarg);
- break;
- default:
- usage(argv[0]);
- } /* end switch */
- } /* end while */
-
- if (numloops && testtime)
- errexit("Can't have both -l and -t\n");
-
- if(!havewebserver && !servaddrin_config)
- {
- /*
- * THE SERVERS NAME MUST BE SPECIFIED
- */
-
- fprintf(stderr,"No WWW Server specified\n");
- usage(argv[0]);
- }
-
- if (havewebserver && servaddrin_config)
- {
- /*
- * CAN'T HAVE BOTH -w and -W
- */
- fprintf(stderr, "Can't have both -w and -W options\n");
- usage(argv[0]);
- }
-
- network_mask = inet_addr(network_mask_str);
- if (network_mask == INADDR_NONE) {
- fprintf(stderr, "Invalid network mask (-M %s)\n", network_mask_str);
- usage(argv[0]);
- }
-
- if(strlen(configfile) == 0)
- {
- /*
- * THE MASTER MUST HAVE A CONFIGURATION FILE TO READ.
- */
- fprintf(stderr,"No Configuration file specified\n");
- usage(argv[0]);
- }
- /* IF WE DO NOT HAVE A FILE LIST THEN THERE ARE UIL'S AT THE END OF THE
- * COMMAND LINE SO GRAB THEM.
- */
- if (uil_filelist_f == 0)
- {
- currarg = optind;
- number_of_pages = 0;
- while(currarg != argc)
- {
- /*
- * GET THE UILS TO RETRIEVE.
- */
-
- sscanf(argv[currarg],"%s",filelist[number_of_pages]);
- number_of_pages++;
- currarg++;
- }
- }
- else
- {
- /* have filelist; take a stab at the number of valid URLs */
- D_PRINTF( "About to parse filelist %s\n", uil_filelist );
- number_of_pages = count_file_list(uil_filelist);
- }
- if (number_of_pages == 0)
- {
- /*
- * AT LEAST ONE FILE MUST BE SPECIFIED
- */
- fprintf(stderr,"No URL resources specified\n");
- usage(argv[0]);
- }
-}
-
-/*
- This function sets up the socket we will use to synchronize with the
- clients.
- Returns the socket number if successful, doesn't return if it fails
-*/
-
-SOCKET SetupSyncSocket( serveraddr )
-struct sockaddr_in *serveraddr;
-{
- int sock,len;
-
- /*
- * SET UP THE SOCKET WE ARE GOING TO USE TO SYNCHRONIZE WITH THE CLIENTS.
- */
- D_PRINTF( "About to call sock %d %d\n", portnum, MAXCLIENTS );
-
- sock = passivesock(0, "tcp", MAXCLIENTS);
-
- if (BADSOCKET(sock))
- {
- errexit("Couldn't open socket %d: %s\n", sock, neterrstr());
- }
- D_PRINTF( "The passivesock call succeeded\n" );
-
- D_PRINTF( "calling getsockname\n" );
-
- len = sizeof(struct sockaddr);
- if(getsockname(sock, (struct sockaddr *)serveraddr, &len) < 0)
- {
- errexit("Could not get socket informaton\n");
- }
-
- return( sock );
-}
-
-/*
- Function which generates a commandline for the webclients
-*/
-void MakeCmdLine( commandline)
-char *commandline;
-{
- char tmpcommandline[NCCARGS];
- char hostname[MAXHOSTNAMELEN];
- char *webclient_path, *temp;
- int cnt;
- struct hostent *master_phe_tmp; /* temp. variable added by - Rajesh Shah*/
-
- /*
- * BUILD THE PORTIONS OF THE cmdline FOR EACH CLIENT THAT WE CAN BUILD NOW.
- * WE WILL FILL IN THE NUMBER OF CLIENTS LATER WITH AN sprintf.
- */
- D_PRINTF( "Calling gethostname\n" );
-
- if(gethostname(hostname,MAXHOSTNAMELEN) != 0)
- {
- errexit("Could not retrieve local host name");
- } else {
- /* convert hostname to address (to avoid DNS problems for webclients) */
- /* The following lines are add to copy the system
- buffer (output of gethostbyname()) into user area.
- This is because, there are very good chances that later
- on system buffer might be overwritten by some calls and
- still if your pointer is pointing to same addr. nothing
- but only trouble and trouble! Infact this is what
- happening when I tried to run webstone benchmark for more
- then one clients. It used to over write the webmaster name
- with the first client name and so remaining on client(s)
- the webclient process(es) were invoked with wrong webmaster
- name! This behaviour is observed Solaris 2.4 this bug
- can be hit in any OS. - Rajesh Shah 5/18/96 */
-
- /* master_phe = gethostbyname(hostname); */
- master_phe_tmp = gethostbyname(hostname);
- master_phe = (struct hostent *)malloc(sizeof(struct hostent));
- HostEntCpy(master_phe, master_phe_tmp);
- }
-
- /* set up executable pathname */
-#ifndef WIN32
- temp = getenv("TMPDIR");
-
- if ( temp && *temp ) {
- webclient_path = (char *)mymalloc( strlen(temp) + strlen("/webclient")
- + 1);
- strcpy(webclient_path, temp);
- strcat(webclient_path, "/webclient");
-
- } else
-#else
- temp = temp;
-#endif /* WIN32 */
- webclient_path = PROGPATH;
-
-
- D_PRINTF( "Path to webclient is: %s\n", webclient_path );
-
- sprintf(commandline,"%s", webclient_path);
-
- if(haveproxyserver)
- {
- sprintf(tmpcommandline, " -P %s", proxyserver);
- strcat(commandline, tmpcommandline);
- }
- if (debug)
- {
- strcat(commandline," -d");
- }
- if (numloops != 0)
- {
- sprintf(tmpcommandline," -l %d", numloops);
- strcat(commandline,tmpcommandline);
- }
- if (portnum)
- {
- sprintf(tmpcommandline," -p %d", portnum);
- strcat(commandline,tmpcommandline);
- }
- if (redirect)
- {
- strcat(commandline," -r");
- }
- if (savefile)
- {
- strcat(commandline," -s");
- }
- if (uil_filelist_f)
- {
- strcat(commandline," -u ");
- strcat(commandline,uil_filelist);
- }
- if (record_all_transactions)
- {
- strcat(commandline," -R");
- }
- if (testtime != 0)
- {
- sprintf(tmpcommandline," -t %d", testtime);
- strcat(commandline,tmpcommandline);
- }
-
- /*
- * SET UP A SPACE FOR THE NUMBER OF CLIENTS ON THE commandline.
- */
- sprintf(tmpcommandline,"%s -n %%d -w %%s -c %%s:%%d", commandline);
- strcpy(commandline,tmpcommandline);
-
- if (uil_filelist_f == 0)
- {
- cnt = 0;
- while(cnt < number_of_pages)
- {
- /*
- * PUT THE FILES AT THE END OF THE LIST.
- */
- strcat(commandline," ");
- strcat(commandline,filelist[cnt]);
- cnt++;
- }
- }
- puts(commandline);
-}
-
-/*
- rexec to the client hosts and start the webclients
-*/
-int RexecClients( commandline, clienthostname, serveraddr)
-char *commandline;
-char clienthostname[MAXCLIENTS][MAXHOSTNAMELEN];
-struct sockaddr_in *serveraddr;
-
-{
- int tmpfd;
- int numclients = 0;
- char tmpcommandline[NCCARGS];
- struct servent *inetport;
- int cnt;
- char buffer[NCCARGS];
- char login[MAXUSERNAME];
- char password[MAXPASSWD];
- FILE *fp;
- int returnval;
- char *tmphostname;
-
- memset(buffer, 0, sizeof(buffer));
-
- /*
- * OPEN UP THE CONFIG FILE. FOR EACH LINE IN THE CONFIG FILE, CHECK
- * ITS VALIDITY AND THEN rexec A COMMAND ON THE CLIENT.
- */
-
- if ((fp = fopen(configfile,"r")) == NULL)
- {
- errexit("Could not open config file %s\n", configfile);
- }
-
- if ((inetport = getservbyname("exec","tcp")) == NULL)
- {
- errexit("Could not get service name for exec/tcp\n");
- }
- D_PRINTF( "getservbyname returned %d\n", ntohs(inetport->s_port) );
-
- cnt = 0;
-
- D_PRINTF( "rexec loop\n" );
- while(1)
- {
- char webserver2[MAXHOSTNAMELEN];
- char linebuf[150];
- int num;
- char *primename;
-
- if (NULL == fgets(linebuf, sizeof(linebuf), fp))
- break;
- num = sscanf(linebuf,"%s %s %s %d %s",clienthostname[cnt],login,password,
- &numclients, webserver2);
- if (num < 4)
- break;
- if (servaddrin_config) {
- if (num == 4) {
- errexit("No webserver specified in config file for %s\n", clienthostname[cnt]);
- }
- strcpy(webserver, webserver2);
- }
-
- if (numclients <= 0)
- errexit("Number of clients must be >= 0\n");
- if (numclients > MAXPROCSPERNODE)
- {
- errexit("Number of clients per node can't exceed %d\n", MAXPROCSPERNODE);
- }
- totalnumclients += numclients;
-
- primename = pick_webmaster_IP_address(clienthostname[cnt], master_phe, network_mask);
- if (primename == NULL) {
- errexit("Bad client address %s for Client %d\n", clienthostname[cnt], cnt);
- }
-
- fprintf(stdout,"Client %d: %s \t# Processes: %d\n Webserver: %s\tWebmaster: %s:%d\n",
- cnt, clienthostname[cnt], numclients, webserver, primename,
- ntohs(serveraddr->sin_port));
- fflush(stdout);
- sprintf(tmpcommandline, commandline, numclients, webserver, primename,
- ntohs(serveraddr->sin_port));
-
- fprintf(stderr, "tmpcommandline: %s\n", tmpcommandline);
-
- D_PRINTF( "%s rexec %s\n",&clienthostname[cnt],tmpcommandline );
- if (norexec) {
- sleep(30); /* gives some time to start clients for debugging */
- } else {
-
- tmphostname = &(clienthostname[cnt][0]);
- tmpfd = rexec(&tmphostname, inetport->s_port, login, password,
- tmpcommandline, &sockErr[cnt]);
- if((sockIO[cnt] = tmpfd) < 0)
- {
- errexit("Could not rexec: rexec to client %s, cmdline %s failed\n",
- clienthostname[cnt],tmpcommandline);
- }
- }
-
-
- returnval = NETREAD(tmpfd, buffer, OKSTRLEN);
- D_PRINTF( "read returns %d, %s\n", returnval, buffer );
-
- if (returnval <= 0 || memcmp(buffer, OKSTR, OKSTRLEN) != 0)
- {
- errexit("rexec to client %s, cmdline %s received error %s\n",
- clienthostname[cnt],tmpcommandline, buffer);
- }
-
-
- cnt++;
- if (cnt > MAXCLIENTS || cnt > FD_SETSIZE)
- {
- errexit("Number of Clients can't exceed %d\n", MAXCLIENTS);
- }
- }
-
- num_rexecs = cnt;
- if (totalnumclients > MAXTOTALPROCS)
- {
- errexit("Total number of processes can't exceed %d\n",
- MAXTOTALPROCS);
- }
-
-#ifndef WIN32
- /* NOW WE NEED TO HANDLE THE OUTPUT FROM THE REXEC.
- * TO DO THIS, WE FORK, THEN HAVE ONE PROCESS READ FROM TMPFD.
- * THE OTHER PROCESS CONTINUES WITH THE PROGRAM
- */
- D_PRINTF( "Forking webclient stderr/stdout processes\n" );
- switch (fork())
- {
- case -1: /* ERROR */
- errexit("fork: %s\n", strerror(errno));
- case 0: /* CHILD */
- exit(echo_client(clienthostname[cnt], tmpfd));
- default: /* PARENT */
- break;
- }
-#else
- /* start threads to echo stdout/stderr from clients */
- _beginthread(echo_client, 0, (void *)0);
- _beginthread(echo_client, 0, (void *)1);
-#endif /* WIN32 */
-
- fprintf(stdout,"\n");
- fprintf(stdout,"\n");
- fclose(fp);
-
- return totalnumclients;
-}
-
-void GetReady( fdset, totalnumclients, sock )
-fd_set *fdset;
-int totalnumclients;
-int sock;
-{
- int cnt,len;
- fd_set tmpfdset, leftfdset;
- char buffer[NCCARGS];
-
- /*
- * NOW WE NEED TO ACCEPT ALL THE CONNECTIONS FROM THE CLIENTS,
- * ACCEPT ALL THE READY MESSAGES
- */
-
- D_PRINTF( "Beginning accept loop\n" );
- for (cnt = 0; cnt < totalnumclients; cnt++)
- {
- D_PRINTF( "Client %d:\t", cnt );
-
- {
- fd_set readfds;
- struct timeval timeout;
- int rv;
-
- timeout.tv_sec = MAX_ACCEPT_SECS;
- timeout.tv_usec = 0;
- FD_ZERO(&readfds);
- FD_SET(sock, &readfds);
-
- /* if we're hung, quit */
- D_PRINTF("Before select() on listen() socket\n");
- if (!(rv = select(FD_SETSIZE, &readfds, NULL, NULL, &timeout))) {
- fprintf(stdout,
- "Listen timeout after %d seconds (%d clients so far)\n",
- MAX_ACCEPT_SECS, cnt);
- D_PRINTF("select() timed out after %d seconds\n", MAX_ACCEPT_SECS);
- errexit("Webmaster terminating\n");
- }
- }
-
- if(BADSOCKET(socknum[cnt] = accept(sock, NULL, 0)))
- {
- /*
- * ERROR accepting FROM THE CLIENTS. WE NEED TO ISSUE AN
- * ABORT TO ALL.
- */
- abort_clients();
- errexit("Error accepting from one of the clients: %s", neterrstr());
- } else
- {
- /*
- * SET THE FD IN THE MASK
- */
- FD_SET(socknum[cnt],fdset);
- }
- D_PRINTF( "on socket %d\n",socknum[cnt] );
- }
- D_PRINTF( "\n" );
-
- /*
- * WAIT FOR A READY.
- */
- sleep(1);
- fprintf(stdout,"Waiting for READY from %d clients\n",totalnumclients);
- fflush(stdout);
- leftfdset = *fdset;
-#ifndef WIN32
- while(memcmp(&leftfdset,&zerofdset,sizeof(fd_set)))
- {
- tmpfdset = leftfdset;
-
- if(select(FD_SETSIZE,&tmpfdset,NULL,NULL,NULL) < 0)
- {
- /*
- * ERROR SELECTING. ABORT ALL.
- */
- abort_clients();
- errexit("Error accepting from one of the clients: %s\n",
- neterrstr());
- break;
- }
-#else
- /* I don't see why a select is needed at all--all clients must respond
- * and there is no synchronization/timing issue.
- */
- tmpfdset = leftfdset;
- {
-#endif /* WIN32 */
-
- for (cnt = 0; cnt < totalnumclients; cnt++)
- {
- /*
- * SEE WHICH SOCKETS HAVE A INPUT ON THEM PENDING
- * AND RECEIVE IT.
- */
- if(!BADSOCKET(socknum[cnt]) && (FD_ISSET(socknum[cnt],&tmpfdset)))
- {
- /*
- * GET THE READY FROM THIS GUY.
- * DON'T FORGET TO CLEAR HIS BIT IN THE tmpfdset
- */
- len = NETREAD(socknum[cnt],buffer,READYSTRLEN);
- if(len != READYSTRLEN)
- {
- abort_clients();
- errexit("Error reading from client #%d\n", cnt);
- }
- if(memcmp(buffer, READYSTR, READYSTRLEN))
- {
- abort_clients();
- fprintf(stdout,"Received bad READY string: len %d, value %s\n",
- len,buffer);
- }
- FD_CLR(socknum[cnt],&leftfdset);
- }
- }
- }
- sleep(1);
- fprintf(stdout,"All READYs received\n");
- fflush(stdout);
-}
-
-/*
- Start all the clients by sending them a GO signal
- totalnumclients is the total number of clients
- socknum is an int array with the filedescriptors for all the
- client connections
-*/
-void SendGo( totalnumclients, socknum)
-int totalnumclients;
-int *socknum;
-{
- int cnt;
- fprintf(stdout,"Sending GO to all clients\n");
- for(cnt = 0; cnt < totalnumclients; cnt++)
- {
- if(socknum[cnt] > 0)
- {
- /*
- * SEND A GO
- */
- if(NETWRITE(socknum[cnt], GOSTR, GOSTRLEN) != GOSTRLEN)
- {
- abort_clients();
- errexit("Error sending GO to client %d: %s\n", cnt, neterrstr());
- }
- }
- }
-}
-
-/*
- This function gathers statistics from all the clients
-*/
-
-void GetResults(fdset, page_stats, endtime, timestr, totalnumclients,
- statarray)
-fd_set *fdset;
-page_stats_t **page_stats;
-time_t *endtime;
-char *timestr;
-int totalnumclients;
-stats_t statarray[MAXCLIENTS];
-{
- fd_set leftfdset,tmpfdset;
- char *stats_as_text;
- char *page_stats_as_text;
- int returnval;
- int cnt,i;
-
-
- /* DOESN'T ACTUALLY PRINT UNTIL THE FIRST CLIENT REPORTS */
- fprintf(stdout,"Reading results ");
-
- /*
- * COPY THE FILE DESCRIPTORS TO A TMP LIST,
- * ALLOCATE MEMORY FOR STATS, PAGESTATS IN TEXT FORM
- */
- leftfdset = *fdset;
- stats_as_text = (char *)mymalloc(SIZEOF_STATSTEXT+1);
- page_stats_as_text = (char *)mymalloc(SIZEOF_PAGESTATSTEXT+1);
-
- /*
- * COPY THE FILE DESCRIPTORS TO A TMP LIST,
- * PLUS A LIST OF REMAINING FDs
- */
- leftfdset = *fdset;
- /*
- * LOOP UNTIL ALL CLIENTS HAVE REPORTED
- * AND tmpfdset IS EMPTY
- */
-#ifndef WIN32
- while(memcmp(&leftfdset,&zerofdset,sizeof(fd_set)))
- {
- tmpfdset = leftfdset;
- sleep(1);
- returnval = select(FD_SETSIZE,&tmpfdset,NULL,NULL,NULL);
- D_PRINTF( "Call to select returned %d, errno %d\n",
- returnval, errno );
- if(returnval < 0)
- {
- /*
- * ERROR SELECTING. ABORT ALL.
- */
- D_PRINTF( "select() error %s\n", neterrstr() );
- abort_clients();
- errexit("Error selecting from one of the clients\n");
- }
-#else
- /* I don't see why a select is needed at all */
- tmpfdset = leftfdset;
- {
-#endif /* WIN32 */
- for(cnt = 0; cnt < totalnumclients; cnt++)
- {
- /*
- * SEE WHICH SOCKETS HAVE A INPUT ON THEM PENDING AND
- * RECEIVE IT.
- */
-
- /* IS THIS A VALID SOCKET? IS IT READY TO READ? */
- if(!BADSOCKET(socknum[cnt]) && (FD_ISSET(socknum[cnt],&tmpfdset)))
- {
- int len;
-
- /*
- * GET THE TIMING DATA FROM THIS GUY
- * THEN REMOVE HIM FROM THE tmpfdset
- */
- /*
- * READ TIME STATS
- * DOES READ() RETURN THE CORRECT LENGTH?
- */
- D_PRINTF( "About to read timestats, count %d, errno %d\n",
- cnt, errno );
- len = SIZEOF_STATSTEXTBASE + number_of_pages*SIZEOF_DOUBLETEXT;
- returnval = recvdata(socknum[cnt], stats_as_text,
- len);
- D_PRINTF( "Read time stats %d\n", returnval );
- if (returnval != len) /* <= 0) */
- {
- D_PRINTF( "Error reading timing stats: %s\n",
- neterrstr() );
- fprintf(stderr, "Error reading timing stats: %s\nSocket number %d\n",
- neterrstr(),socknum[cnt]);
- abort_clients();
- errexit("");
- } /* end if */
-
- /* convert text to stats */
- stats_as_text[returnval] = 0; /* add an end marker */
- statarray[cnt] = *text_to_stats(stats_as_text);
-
- fputc('.', stdout); /* PROGRESS MARKER */
- fflush(stdout);
-
- if(uil_filelist_f) /* READ PAGE STATS */
- {
- for (i = 0; i < number_of_pages; i++)
- {
- D_PRINTF( "On page_stats[%d][%d]\n", cnt, i );
- returnval = recvdata(socknum[cnt], page_stats_as_text,
- SIZEOF_PAGESTATSTEXT);
- D_PRINTF( "Read page stats %d\n", returnval );
-
- if (returnval != SIZEOF_PAGESTATSTEXT) /* <= 0) */
- {
- D_PRINTF( "Error reading page_stats[%d][%d]: %s\n",
- cnt, i, neterrstr() );
- fprintf(stderr, "Error reading page_stats[%d][%d]: %s\n",
- cnt, i, neterrstr());
- abort_clients();
- errexit("");
- }
- D_PRINTF( "Page stats: read %d bytes\n",
- returnval );
-
- page_stats_as_text[returnval] = 0; /* add an end marker */
- D_PRINTF("strlen(page_stats_as_text) = %d\n",
- strlen(page_stats_as_text));
- page_stats[cnt][i] =
- *text_to_page_stats(page_stats_as_text);
-
- } /* end for */
- } /* end if filelist */
-
- FD_CLR(socknum[cnt],&leftfdset);
- NETCLOSE(socknum[cnt]);
- socknum[cnt] = BADSOCKET_VALUE;
- } /* end if socknum */
- } /* end for cnt */
- } /* end while memcmp fd */
-
- /*
- * DONE READING RESULTS FROM CLIENTS
- */
-
- *endtime = time(NULL);
- timestr = asctime(localtime(endtime));
- fprintf(stdout,"\nAll clients ended at %s\n",timestr);
- fflush(stdout);
-
- /* FREE MEMORY ALLOCATED FOR CLIENT STATS, PAGESTATS AS TEXT */
- free(stats_as_text);
- free(page_stats_as_text);
-
-}
-
-/*
- Prints out all the results
-*/
-void PrintResults( page_stats, endtime, timestr, totalnumclients, statarray,
- page_stats_total)
-page_stats_t **page_stats;
-time_t endtime;
-char *timestr;
-int totalnumclients;
-stats_t statarray[MAXCLIENTS];
-page_stats_t *page_stats_total;
-{
- stats_t masterstat;
- int cnt,i,j;
- double thruput;
- struct timeval dtime;
-
- /*
- * PRINT EVERYTHING OUT
- */
- stats_init(&masterstat);
- for(cnt = 0; cnt < totalnumclients; cnt++)
- {
- if((statarray[cnt].rs.totalconnects > 0) && (dumpall))
- {
- fprintf(stdout,"----------------------------------\n");
- /* fprintf(stdout,"Test for host: %s\n",statarray[cnt].hostname); */
- fprintf(stdout,"Total number of pages retrieved from server: %u\n",
- statarray[cnt].totalpages);
-
- rqstat_fprint(stdout, &(statarray[cnt].rs));
-
- thruput = thruputpersec((double)(statarray[cnt].rs.totalbytes),
- &(statarray[cnt].rs.totalresponsetime));
-
- fprintf(stdout, "Thruput average per connection: %.0f bytes/sec\n",
- thruput);
- }
- if(statarray[cnt].rs.totalconnects > 0)
- {
- D_PRINTF( "Summing stats for %d, with %ld total connections\n",
- cnt, statarray[cnt].rs.totalconnects );
- rqstat_sum(&masterstat.rs, &(statarray[cnt].rs));
- }
- else
- {
- masterstat.rs.totalerrs += statarray[cnt].rs.totalerrs;
- }
- }
-
- for (i=0; i < totalnumclients; i++)
- {
- for (j=0; j < number_of_pages; j++)
- {
- D_PRINTF( "Summing page stats for %d, page %d, with %d connects\n",
- i, j, statarray[i].page_numbers[j] );
-
- if (statarray[i].page_numbers[j] != 0)
- {
- rqst_stats_t *pst_rs;
- rqst_stats_t *ps_rs;
-
- pst_rs = &(page_stats_total[j].rs);
- ps_rs = &(page_stats[i][j].rs);
-
- rqstat_sum(pst_rs, ps_rs);
-
- page_stats_total[j].totalpages += page_stats[i][j].totalpages;
- masterstat.totalpages += page_stats[i][j].totalpages;
-
- /* yes, this is assignment, not sum */
- page_stats_total[j].page_size = page_stats[i][j].page_size;
-
- page_stats_total[j].page_valid = 1;
- }
- }
- }
-
- /* print page statistics */
- if (verbose) {
- for (i = 0; i < number_of_pages; i++)
- {
- if (page_stats_total[i].page_valid == 1)
- {
- page_stats_t *pst;
-
- pst = &(page_stats_total[i]);
-
- printf ("===============================================================================\n");
- printf ("Page # %d\n\n", i);
- printf ("Total number of times page was hit %u\n",
- pst->totalpages);
-
- rqstat_print(&(pst->rs));
-
- printf ("Page size %u \n", pst->page_size);
- printf ("===============================================================================\n\n");
- }
- }
- }
-
- fprintf(stdout,"===============================================================================\n");
-
- /*
- * Validate run.
- */
- masterstat.total_num_of_files = statarray[0].total_num_of_files;
- for (i=1; i < totalnumclients; i++)
- {
- if ((statarray[i].rs.totalconnects > 0) &&
- (statarray[i].total_num_of_files != masterstat.total_num_of_files))
- {
- fprintf(stdout,"**********************************************************************\n");
- fprintf(stdout,"**** ERROR: number of files in each test configuration is not the same\n");
- fprintf(stdout,"**** ERROR: Check configuration file %s on each client\n", configfile);
- fprintf(stdout,"**********************************************************************\n");
- break;
- }
- }
-
-
- /*
- * Print summary statistics
- */
- fprintf(stdout, "WEBSTONE 2.0 results:\n");
-
- fprintf(stdout, "Total number of clients: \t%d\n", totalnumclients);
- testtime = sumedh_end.tv_sec - sumedh_start.tv_sec;
- fprintf(stdout,"Test time: \t\t\t%d seconds\n", testtime);
-
- fprintf(stdout, "Server connection rate: \t%3.2f connections/sec\n",
- (double)(masterstat.rs.totalconnects)/(testtime));
-
- fprintf(stdout, "Server error rate: \t\t%4.4f err/sec\n",
- (double)(masterstat.rs.totalerrs)/(testtime));
-
- fprintf(stdout, "Server thruput: \t\t%2.2f Mbit/sec\n",
- (double)(8*masterstat.rs.totalbytes)/(testtime*1024*1024));
-
- fprintf(stdout, "Little's Load Factor: \t\t%3.2f \n",
- (double)(masterstat.rs.totalresponsetime.tv_sec)
- /(testtime));
- avgtime(&masterstat.rs.totalresponsetime,
- masterstat.rs.totalconnects, &dtime);
-
- fprintf(stdout, "Average response time: \t\t%4.4f millisec\n",
- (double)1000*(dtime.tv_sec + (double)dtime.tv_usec / 1000000));
-
- fprintf(stdout, "Error Level:\t\t\t%4.4f %%\n",
- (double)(100 * masterstat.rs.totalerrs)/(masterstat.rs.totalconnects));
-
- /* so much for the key metrics */
-
- thruput = 8 * thruputpersec((double)(masterstat.rs.totalbytes),
- &(masterstat.rs.totalresponsetime));
-
- fprintf(stdout, "Average client thruput: \t%4.4f Mbit/sec\n",
- thruput/(1024*1024));
-
- fprintf(stdout,"Sum of client response times:\t%u.%u sec\n",
- masterstat.rs.totalresponsetime.tv_sec,
- masterstat.rs.totalresponsetime.tv_usec);
-
- fprintf(stdout,"Total number of pages read:\t%u\n\n",
- masterstat.totalpages);
-
- /* Remaining stats are the same as usual */
-
- rqstat_fprint(stdout, &(masterstat.rs));
- fflush(stdout);
-
-}
-
-#ifdef WIN32
-/* close socket library */
-void sock_cleanup(void) {
-
- WSACleanup();
-}
-#endif /* WIN32 */
-
-void
-main(const int argc, char *argv[])
-{
-
- int sync_sock;
- int i;
- int j;
- char buffer[NCCARGS];
- char commandline[NCCARGS];
- char *timestr;
- time_t starttime;
- time_t endtime;
- fd_set fdset;
- /* make the big arrays static to avoid stack overflow */
- static char clienthostname[MAXCLIENTS][MAXHOSTNAMELEN];
- static stats_t statarray[MAXCLIENTS];
- page_stats_t **page_stats;
- page_stats_t *page_stats_total;
- struct sockaddr_in serveraddr;
-
-
-#ifdef WIN32
- WSADATA WSAData;
- COORD dwSize;
-
- if ((WSAStartup(MAKEWORD(1,1), &WSAData)) != 0) {
- errexit("Error in WSAStartup()\n");
- }
- atexit(sock_cleanup);
-
- /* increase size of output window */
- dwSize.X = 80;
- dwSize.Y = 500;
- SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), dwSize);
-#endif /* WIN32 */
-
-
- /* Initalization of variables. */
- debugfile = stdout;
- memset(buffer, 0, NCCARGS);
- memset(webserver, 0, MAXHOSTNAMELEN);
- memset(configfile, 0, MAXPATHLEN);
- FD_ZERO(&zerofdset);
- FD_ZERO(&fdset);
-
- for(i = 0; i < MAXCLIENTS; i++)
- {
- socknum[i] = BADSOCKET_VALUE;
- statarray[i].rs.totalconnects = 0;
- }
-
- signal(SIGINT, sig_int);
-
- ParseCmdLine( argc, argv);
-
- sync_sock = SetupSyncSocket( &serveraddr );
-
- MakeCmdLine( commandline);
-
- totalnumclients = RexecClients( commandline, clienthostname, &serveraddr);
-
- /* Initalization of variables. */
- page_stats =
- (page_stats_t **)
- mymalloc(totalnumclients*sizeof(page_stats_t *));
- for (i=0; i < totalnumclients; i++)
- {
- page_stats[i] = (page_stats_t *)
- mymalloc(number_of_pages*sizeof(page_stats_t));
- }
- page_stats_total =
- (page_stats_t *)mymalloc(number_of_pages*sizeof(page_stats_t));
-
- for (i=0; i < totalnumclients; i++) {
- stats_init(&(statarray[i]));
- }
- for (i=0; i < totalnumclients; i++) {
- for (j=0; j < number_of_pages; j++) {
- page_stats_init(&(page_stats[i][j]));
- }
- }
- for (i=0; i < number_of_pages; i++) {
- page_stats_init(&(page_stats_total[i]));
- }
-
- for(i = 0; i < totalnumclients; i++)
- {
- socknum[i] = BADSOCKET_VALUE;
- statarray[i].rs.totalconnects = 0;
- }
-
- GetReady( &fdset, totalnumclients, sync_sock );
- NETCLOSE(sync_sock);
-
- /*
- * START ALL OF THE CLIENTS BY SENDING THEM A GO SIGNAL.
- */
-
-
- gettimeofday (&sumedh_start, NULL);
- SendGo( totalnumclients, socknum);
-
- /*
- * WAIT FOR ALL OF THE CLIENTS TO COMPLETE. WE SHOULD GET A REPLY
- * FOR EACH SOCKET WE HAVE OPEN. THE REPLY WILL BE THE TIMING
- * INFORMATION WE USE.
- */
-
- starttime = time(NULL);
- timestr = asctime(localtime(&starttime));
- fprintf(stdout,"All clients started at %s\n",timestr);
- fprintf(stdout,"Waiting for clients completion\n");
- fflush(stdout);
-
- /* IF THIS IS A TIMED TEST, WE MIGHT AS WELL SNOOZE */
- if (testtime) {
- sleep(testtime * 60);
- }
-
- GetResults( &fdset, page_stats, &endtime, timestr, totalnumclients,
- statarray);
-
- gettimeofday (&sumedh_end, NULL);
- PrintResults( page_stats, endtime, timestr, totalnumclients, statarray,
- page_stats_total);
-
- /* free memory */
- for (i = 0; i < totalnumclients; i++)
- {
- free(page_stats[i]);
- }
- free(page_stats);
- free(page_stats_total);
-
- exit(0);
-}
-
-/* Added by Rajesh Shah 5/18/96 */
-void
-HostEntCpy(struct hostent *dest, struct hostent *src)
-{
-
- dest->h_name = (char *)malloc(strlen(src->h_name)+1);
- strcpy(dest->h_name, src->h_name);
- printf("WebMaster name = %s\n", dest->h_name);
- dest->h_aliases = src->h_aliases;
- dest->h_addrtype = src->h_addrtype;
- dest->h_length = src->h_length;
- dest->h_addr_list = src->h_addr_list;
-}
-
diff --git a/apps/JAWS/clients/WebSTONE/webstone b/apps/JAWS/clients/WebSTONE/webstone
deleted file mode 100755
index 026f0d664ad..00000000000
--- a/apps/JAWS/clients/WebSTONE/webstone
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/bin/sh
-#
-#
-WEBSTONEROOT=`pwd` ; export WEBSTONEROOT
-[ -z "$EDITOR" ] && EDITOR="vi"
-
-case $1 in
- '-gui')
- bin/webstone-gui.pl
- ;;
- '-help')
- echo
- more README.FIRST
- ;;
- '-setup')
- if (sh bin/gui-configure)
- then
- :
- else
- echo
- echo "Some problems were found."
- echo "Press RETURN to continue, or CTRL-C to abort."
- read junk
- fi
- if (cd src ; ./configure ; make install)
- then
- echo
- echo
- echo "Press RETURN to continue"
- read junk
- $EDITOR conf/testbed
- echo
- echo "WebStone make complete."
- echo "Type './webstone -genfiles' to create the fileset."
- echo
- else
- echo
- echo "WebStone make FAILED"
- echo "Consult the file doc/FAQ-webstone.html for porting hints."
- echo
- fi
- ;;
- '-kill')
- cd bin
- ./killbench
- ;;
- '-nogui')
- cd bin
- ./runbench
- ;;
- '-genfiles')
- cd bin
- ./genfiles
- echo
- echo "If no errors occurred, type './webstone' to run the benchmark."
- echo
- ;;
- '-silent')
- cd bin
- ./runbench > /dev/null 2>&1 &
- ;;
- '-tail')
- LATEST=$WEBSTONEROOT/bin/runs/`ls -1 $WEBSTONEROOT/bin/runs | tail -1`/run
- tail -f $LATEST
- ;;
- '-results')
- bin/wscollect.pl $2 bin/runs
- ;;
-
- *)
- $WEBSTONEROOT/webstone -nogui
- ;;
-esac
-
-# end
diff --git a/apps/JAWS/remora/app/Makefile b/apps/JAWS/remora/app/Makefile
deleted file mode 100755
index 7b2a29e119b..00000000000
--- a/apps/JAWS/remora/app/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-#### $Id$
-
-include stdmk
-
-EXE = test
-
-all: $(EXE)
-
-clean:
- -$(RM) core *~ *.o *_c.hh *_c.cc *_s.hh *_s.cc $(EXE)
- -$(RM) -r Templates.DB
-
-remora_c.cc: remora.idl
- $(ORBCC) remora.idl
-
-remora_s.cc: remora.idl
- $(ORBCC) remora.idl
-
-test: remora_c.o Remora_Import.o Remora_Export.o test.o
- $(CC) -o test test.o remora_c.o Remora_Import.o Remora_Export.o \
- $(LIBPATH) $(LIBORB) $(STDCC_LIBS) $(LIBACE)
diff --git a/apps/JAWS/remora/app/Remora_Export.cc b/apps/JAWS/remora/app/Remora_Export.cc
deleted file mode 100644
index e416ac83156..00000000000
--- a/apps/JAWS/remora/app/Remora_Export.cc
+++ /dev/null
@@ -1,93 +0,0 @@
-// $Id$
-
-#include "Remora_Export.h"
-
-
-Remora_Export::Remora_Export(const char* label, int value, int max_value)
- : remora_agent_(0)
-{
- this->stat_.value_ = value;
- this->stat_.label_ = label;
- this->stat_.max_ = max_value;
-
- this->init();
-}
-
-Remora_Export::Remora_Export(const Remora_Export& export)
- : remora_agent_(export.remora_agent_)
-{
- this->stat_.value_ = export.stat_.value_;
- this->stat_.label_ = export.stat_.label_;
- this->stat_.max_ = export.stat_.max_;
-}
-
-Remora_Export::~Remora_Export()
-{
- PMCTRY
- {
- if (this->remora_agent_ != 0)
- {
- this->remora_agent_->removeStatistic(this->stat_.label_);
- this->remora_agent_->_release();
- }
- }
- PMCCATCH(remora::Invalid_Statistic, excp)
- {
- }
- PMCAND_CATCH(CORBA::SystemException, excp)
- {
- CORBA::release(this->remora_agent_);
- }
- PMCEND_CATCH
-
-}
-
-void
-Remora_Export::init()
-{
- PMCTRY
- {
- int argc = 1;
- char* argv[1];
- argv[0] = STATS_AGENT_NAME;
-
- CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
-
- cout << this->stat_.label_ << " Binding to server..." << endl;
- this->remora_agent_ =
- remora::Remora_Statistics_Agent::_bind(STATS_AGENT_NAME);
-
- cout << this->stat_.label_ << " Registering Statistic..." << endl;
- this->remora_agent_->acceptNewStatistic(this->stat_);
- }
- PMCCATCH(CORBA::Exception, excp)
- {
- cerr << excp << endl;
- }
- PMCEND_CATCH
-}
-
-void
-Remora_Export::update_value(int new_value)
-{
- this->stat_.value_ = new_value;
-
- PMCTRY
- {
- cout << this->stat_.label_ << " Updating a value." << endl;
- if (this->remora_agent_ != 0 && (! this->remora_agent_->_non_existent()))
- this->remora_agent_->updateStatistic(this->stat_);
- }
- PMCCATCH(CORBA::SystemException, sysex)
- {
- cerr << sysex << endl;
- this->remora_agent_->_release();
- this->remora_agent_ = 0;
- }
- PMCAND_CATCH(remora::Invalid_Statistic, excp)
- {
- cerr << excp << endl;
- }
- PMCEND_CATCH
-}
-
diff --git a/apps/JAWS/remora/app/Remora_Export.h b/apps/JAWS/remora/app/Remora_Export.h
deleted file mode 100644
index 484cfd238d4..00000000000
--- a/apps/JAWS/remora/app/Remora_Export.h
+++ /dev/null
@@ -1,85 +0,0 @@
-// $Id
-
-// ===================================================================
-//
-// = FILENAME
-// Remora_Export.h
-//
-// = AUTHOR
-// Seth Widoff
-//
-// ===================================================================
-
-
-#ifndef REMORA_EXPORT_H
-#define REMORA_EXPORT_H
-
-#include <bstring.h>
-#include "remora_c.hh"
-
-#define MAX_VALUE 100
-#define NO_NAME "Unnamed Statistic"
-#define STATS_AGENT_NAME "Remora Statistics Agent"
-
-class Remora_Export
-{
-public:
-
- Remora_Export(const char* label = NO_NAME, int value = 0,
- int max_value = MAX_VALUE);
-
- Remora_Export(const Remora_Export& export);
-
- ~Remora_Export();
-
- void operator=(const int new_value);
- void operator=(const Remora_Export& export);
-
- void operator+=(const int new_value);
- void operator+=(const Remora_Export& export);
-
- void operator*=(const int new_value);
- void operator*=(const Remora_Export& export);
-
- void operator/=(const int new_value);
- void operator/=(const Remora_Export& export);
-
- void operator-=(const int new_value);
- void operator-=(const Remora_Export& export);
-
- operator CORBA::Long() const;
- operator CORBA::Long&();
-
- friend int operator==(const Remora_Export& me, const int new_value);
- friend int operator==(const Remora_Export& me, const Remora_Export& export);
-
- friend int operator!=(const Remora_Export& me, const int new_value);
- friend int operator!=(const Remora_Export& me, const Remora_Export& export);
-
- friend int operator<=(const Remora_Export& me, const int new_value);
- friend int operator<=(const Remora_Export& me, const Remora_Export& export);
-
- friend int operator>=(const Remora_Export& me, const int new_value);
- friend int operator>=(const Remora_Export& me, const Remora_Export& export);
-
- friend int operator<(const Remora_Export& me, const int new_value);
- friend int operator<(const Remora_Export& me, const Remora_Export& export);
-
- friend int operator>(const Remora_Export& me, const int new_value);
- friend int operator>(const Remora_Export& me, const Remora_Export& export);
-
-private:
-
- void init();
-
- void update_value(int new_value);
-
- remora::Statistic stat_;
-
- remora::Remora_Statistics_Agent_ptr remora_agent_;
-
-};
-
-#include "Remora_Export.i"
-
-#endif
diff --git a/apps/JAWS/remora/app/Remora_Export.i b/apps/JAWS/remora/app/Remora_Export.i
deleted file mode 100644
index f4b158721d2..00000000000
--- a/apps/JAWS/remora/app/Remora_Export.i
+++ /dev/null
@@ -1,146 +0,0 @@
-// $Id
-
-inline void
-Remora_Export::operator=(const int new_value)
-{
- this->update_value(new_value);
-}
-
-inline void
-Remora_Export::operator=(const Remora_Export& export)
-{
- this->update_value(export.stat_.value_);
-}
-
-inline void
-Remora_Export::operator+=(const int new_value)
-{
- this->update_value(this->stat_.value_ + new_value);
-}
-
-inline void
-Remora_Export::operator+=(const Remora_Export& export)
-{
- this->update_value(this->stat_.value_ + export.stat_.value_);
-}
-
-inline void
-Remora_Export::operator-=(const int new_value)
-{
- this->update_value(this->stat_.value_ - new_value);
-}
-
-inline void
-Remora_Export::operator-=(const Remora_Export& export)
-{
- this->update_value(this->stat_.value_ - export.stat_.value_);
-}
-
-inline void
-Remora_Export::operator*=(const int new_value)
-{
- this->update_value(this->stat_.value_ * new_value);
-}
-
-inline void
-Remora_Export::operator*=(const Remora_Export& export)
-{
- this->update_value(this->stat_.value_ * export.stat_.value_);
-}
-
-inline void
-Remora_Export::operator/=(const int new_value)
-{
- this->update_value(this->stat_.value_ / new_value);
-}
-
-inline void
-Remora_Export::operator/=(const Remora_Export& export)
-{
- this->update_value(this->stat_.value_ / export.stat_.value_);
-}
-
-inline
-Remora_Export::operator CORBA::Long() const
-{
- return this->stat_.value_;
-}
-
-inline
-Remora_Export::operator CORBA::Long&()
-{
- return this->stat_.value_;
-}
-
-inline int
-operator==(const Remora_Export& me, const int new_value)
-{
- return me.stat_.value_ == new_value;
-}
-
-inline int
-operator==(const Remora_Export& me, const Remora_Export& export)
-{
- return me.stat_.value_ == export.stat_.value_;
-}
-
-inline int
-operator!=(const Remora_Export& me, const int new_value)
-{
- return me.stat_.value_ != new_value;
-}
-
-inline int
-operator!=(const Remora_Export& me, const Remora_Export& export)
-{
- return me.stat_.value_ != export.stat_.value_;
-}
-
-inline int
-operator<=(const Remora_Export& me, const int new_value)
-{
- return me.stat_.value_ <= new_value;
-}
-
-inline int
-operator<=(const Remora_Export& me, const Remora_Export& export)
-{
- return me.stat_.value_ <= export.stat_.value_;
-}
-
-inline int
-operator>=(const Remora_Export& me, const int new_value)
-{
- return me.stat_.value_ >= new_value;
-}
-
-inline int
-operator>=(const Remora_Export& me, const Remora_Export& export)
-{
- return me.stat_.value_ >= export.stat_.value_;
-}
-
-inline int
-operator<(const Remora_Export& me, const int new_value)
-{
- return me.stat_.value_ < new_value;
-}
-
-inline int
-operator<(const Remora_Export& me, const Remora_Export& export)
-{
- return me.stat_.value_ < export.stat_.value_;
-}
-
-inline int
-operator>(const Remora_Export& me, const int new_value)
-{
- return me.stat_.value_ > new_value;
-}
-
-inline int
-operator>(const Remora_Export& me, const Remora_Export& export)
-{
- return me.stat_.value_ > export.stat_.value_;
-}
-
diff --git a/apps/JAWS/remora/app/Remora_Import.cc b/apps/JAWS/remora/app/Remora_Import.cc
deleted file mode 100644
index c97451f0566..00000000000
--- a/apps/JAWS/remora/app/Remora_Import.cc
+++ /dev/null
@@ -1,109 +0,0 @@
-// $Id$
-
-#include "Remora_Import.h"
-
-Remora_Import::Remora_Import(const char* label, int value,
- int min_value, int max_value)
- : remora_agent_(0)
-{
- this->control_.value_ = value;
- this->control_.label_ = label;
- this->control_.max_ = max_value;
- this->control_.min_ = min_value;
-
- this->init();
-}
-
-Remora_Import::Remora_Import(const Remora_Import& import)
- : remora_agent_(import.remora_agent_)
-{
- this->control_.value_ = import.control_.value_;
- this->control_.label_ = import.control_.label_;
- this->control_.max_ = import.control_.max_;
- this->control_.min_ = import.control_.min_;
-}
-
-Remora_Import::~Remora_Import()
-{
- PMCTRY
- {
- if (this->remora_agent_ != 0)
- {
- this->remora_agent_->removeControl(this->control_.label_);
- this->remora_agent_->_release();
- }
- }
- PMCCATCH(remora::Invalid_Statistic, excp)
- {
- cerr << "Tried to remove invalid statistic.";
- }
- PMCAND_CATCH(CORBA::SystemException, excp)
- {
- CORBA::release(this->remora_agent_);
- }
- PMCEND_CATCH
-}
-
-void
-Remora_Import::init()
-{
- PMCTRY
- {
- int argc = 1;
- char* argv[1];
- argv[0] = CONTROL_AGENT_NAME;
-
- CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
-
- cout << this->control_.label_ << " Binding to server..." << endl;
- this->remora_agent_ =
- remora::Remora_Controls_Agent::_bind(CONTROL_AGENT_NAME);
-
- cout << this->control_.label_ << " Registering Control..." << endl;
- this->remora_agent_->acceptNewControl(this->control_);
- }
- PMCCATCH(CORBA::Exception, excp)
- {
- cerr << excp << endl;
- }
- PMCEND_CATCH
-}
-
-CORBA::Long
-Remora_Import::grab_value(void)
-{
- PMCTRY
- {
- if (this->remora_agent_ != 0)
- {
- cout << this->control_.label_ << " Grabbing a value from the client." << endl;
- this->remora_agent_->getControlState(this->control_);
- }
-
- // C++ exception handling needs a 'finally' construct
- return this->control_.value_;
- }
- PMCCATCH(CORBA::SystemException, sysex)
- {
- cerr << sysex << endl;
- this->remora_agent_->_release();
- this->remora_agent_ = 0;
-
- return this->control_.value_;
- }
- PMCAND_CATCH(remora::Invalid_Control, excp)
- {
- PMCTRY
- {
- this->remora_agent_->acceptNewControl(this->control_);
- }
- PMCCATCH(CORBA::SystemException, sysex2)
- {
- return this->control_.value_;
- }
- PMCEND_CATCH
-
- return this->control_.value_;
- }
- PMCEND_CATCH
-}
diff --git a/apps/JAWS/remora/app/Remora_Import.h b/apps/JAWS/remora/app/Remora_Import.h
deleted file mode 100644
index a41a1826448..00000000000
--- a/apps/JAWS/remora/app/Remora_Import.h
+++ /dev/null
@@ -1,69 +0,0 @@
-// $Id
-
-// ===================================================================
-//
-// = FILENAME
-// Remora_Import.h
-//
-// = AUTHOR
-// Seth Widoff
-//
-// ===================================================================
-
-#ifndef REMORA_IMPORT_H
-#define REMORA_IMPORT_H
-
-#include <bstring.h>
-#include "remora_c.hh"
-
-#define NO_NAME "Unnamed Statistic"
-#define MAX_VALUE 100
-#define CONTROL_AGENT_NAME "Remora Controls Agent"
-
-class Remora_Import
-{
-public:
-
- Remora_Import(const char * label = NO_NAME, int value = 0,
- int min_value = 0, int max_value = MAX_VALUE);
-
- Remora_Import(const Remora_Import& import);
-
- ~Remora_Import();
-
- CORBA::Long get(void);
-
- operator CORBA::Long();
-
- friend int operator==( Remora_Import& me, int new_value);
- friend int operator==( Remora_Import& me, Remora_Import& export);
-
- friend int operator!=( Remora_Import& me, int new_value);
- friend int operator!=( Remora_Import& me, Remora_Import& export);
-
- friend int operator<=( Remora_Import& me, int new_value);
- friend int operator<=( Remora_Import& me, Remora_Import& export);
-
- friend int operator>=( Remora_Import& me, int new_value);
- friend int operator>=( Remora_Import& me, Remora_Import& export);
-
- friend int operator<( Remora_Import& me, int new_value);
- friend int operator<( Remora_Import& me, Remora_Import& export);
-
- friend int operator>( Remora_Import& me, int new_value);
- friend int operator>( Remora_Import& me, Remora_Import& export);
-
-private:
-
- void init();
-
- CORBA::Long grab_value();
-
- remora::Control control_;
-
- remora::Remora_Controls_Agent_ptr remora_agent_;
-
-};
-
-#include "Remora_Import.i"
-#endif
diff --git a/apps/JAWS/remora/app/Remora_Import.i b/apps/JAWS/remora/app/Remora_Import.i
deleted file mode 100644
index 48fc01f3ed7..00000000000
--- a/apps/JAWS/remora/app/Remora_Import.i
+++ /dev/null
@@ -1,85 +0,0 @@
-// $Id
-
-inline
-Remora_Import::operator CORBA::Long()
-{
- return this->grab_value();
-}
-
-inline CORBA::Long
-Remora_Import::get(void)
-{
- return this->grab_value();
-}
-
-inline int
-operator==( Remora_Import& me, int new_value)
-{
- return me.grab_value() == new_value;
-}
-
-inline int
-operator==( Remora_Import& me, Remora_Import& import)
-{
- return me.grab_value() == import.grab_value();
-}
-
-inline int
-operator!=( Remora_Import& me, int new_value)
-{
- return me.grab_value() != new_value;
-}
-
-inline int
-operator!=( Remora_Import& me, Remora_Import& import)
-{
- return me.grab_value() != import.grab_value();
-}
-
-inline int
-operator<=( Remora_Import& me, int new_value)
-{
- return me.grab_value() <= new_value;
-}
-
-inline int
-operator<=( Remora_Import& me, Remora_Import& import)
-{
- return me.grab_value() <= import.grab_value();
-}
-
-inline int
-operator>=( Remora_Import& me, int new_value)
-{
- return me.grab_value() >= new_value;
-}
-
-inline int
-operator>=( Remora_Import& me, Remora_Import& import)
-{
- return me.grab_value() >= import.grab_value();
-}
-
-inline int
-operator<( Remora_Import& me, int new_value)
-{
- return me.grab_value() < new_value;
-}
-
-inline int
-operator<( Remora_Import& me, Remora_Import& import)
-{
- return me.grab_value() < import.grab_value();
-}
-
-inline int
-operator>( Remora_Import& me, int new_value)
-{
- return me.grab_value() > new_value;
-}
-
-inline int
-operator>( Remora_Import& me, Remora_Import& import)
-{
- return me.grab_value() > import.grab_value();
-}
diff --git a/apps/JAWS/remora/app/remora.idl b/apps/JAWS/remora/app/remora.idl
deleted file mode 100644
index 4f6c8713099..00000000000
--- a/apps/JAWS/remora/app/remora.idl
+++ /dev/null
@@ -1,100 +0,0 @@
-// $Id
-
-// ===================================================================
-//
-// = FILENAME
-// remora.idl
-//
-// = AUTHOR
-// Seth Widoff
-//
-// ===================================================================
-
-// The IDL interface for the published Remora interfaces.
-
-module remora
-{
- struct Statistic
- {
- string label_;
- long value_;
- long max_;
- };
-
- struct Control
- {
- string label_;
- long value_;
- long min_;
- long max_;
- };
-
- typedef long Token;
- typedef sequence<Statistic> Statistics_List;
- typedef sequence<Control> Controls_List;
-
- exception Invalid_Statistic {};
- exception Invalid_Control {};
-
- interface Statistics_Update
- {
- void acceptNewStatistic(in Statistic stat) raises (Invalid_Statistic);
-
- void updateStatistic(in Statistic stat) raises (Invalid_Statistic);
-
- void removeStatistic(in string label) raises (Invalid_Statistic);
- };
-
- interface Controls_Update
- {
- void acceptNewControl(in Control control) raises (Invalid_Control);
-
- void getControlState(inout Control control) raises (Invalid_Control);
-
- void removeControl(in string label) raises (Invalid_Control);
- };
-
- // Located in an applet, the client receives and displays
- // statistics from the server.
- interface Remora_Statistics_Client : Statistics_Update
- {
- oneway void acceptManyStatistics(in Statistics_List stats, in long length);
-
- oneway void updateManyStatistics(in Statistics_List stats, in long length);
- // Update all statistics registered with the client
-
- oneway void shutdownStatistics();
- // Suggest that the client shut itself down
- };
-
- interface Remora_Controls_Client : Controls_Update
- {
- oneway void acceptManyControls(in Controls_List controls, in long length);
- // Deliver many new controls to the client.
-
- oneway void shutdownControls();
- };
-
- // Located on the server side, the Agent delivers statistics to
- // registered clients.
- interface Remora_Statistics_Agent : Statistics_Update
- {
- oneway void setFrequency(in long id, in long update_time);
- // Set the frequency at which the Agent will transmit
- // the statistics to the clients.
-
- long registerClient(in Remora_Statistics_Client client, in long update_time);
- // Register a client for periodic updates.
-
- oneway void terminateRegistration(in long client_id);
- // Unregister the client from the server.
- };
-
- interface Remora_Controls_Agent : Controls_Update
- {
- Token grabControlLock(in Remora_Controls_Client client);
-
- void releaseControlLock(in Token token);
- };
-};
-
diff --git a/apps/JAWS/remora/app/stdmk b/apps/JAWS/remora/app/stdmk
deleted file mode 100755
index c966f9ef9fc..00000000000
--- a/apps/JAWS/remora/app/stdmk
+++ /dev/null
@@ -1,40 +0,0 @@
-CC = CC
-DEBUG =
-
-DOVE = /project/waltz/seth/doc/dove
-
-ACE_DIR = /project/waltz/seth/ACE_wrappers
-
-ORBELINEDIR = /project/waltz/Orbeline2.0
-
-STL_DIR = /project/flamenco/irfan/STL/work-in-progress/Solaris-port.STL/Microsoft/STL
-
-ORBCC = $(ORBELINEDIR)/bin/orbeline -v _c -m _s -S exceptions
-
-CCINCLUDES = -I. -I$(ORBELINEDIR)/include -I$(STL_DIR) -I$(ACE_DIR)
-
-CCFLAGS = -g $(CCINCLUDES) $(DEBUG)
-
-LIBPATH = -L$(ORBELINEDIR)/lib -L$(ACE_DIR)/ace
-
-STDCC_LIBS = -lsocket -lnsl -ldl -mt
-
-LIBORB = -lorb
-
-LIBACE = -lACE
-
-.SUFFIXES: .C .o .h .hh .cc .cpp
-
-.C.o:
- $(CC) $(CCFLAGS) -c -o $@ $<
-
-.cc.o:
- $(CC) $(CCFLAGS) -c -o $@ $<
-
-.C.cpp:
- $(CC) -E $(CCFLAGS) $< > $@
-
-.cc.cpp:
- $(CC) -E $(CCFLAGS) $< > $@
-
-
diff --git a/apps/JAWS/remora/app/test.cc b/apps/JAWS/remora/app/test.cc
deleted file mode 100644
index 987c7bd07af..00000000000
--- a/apps/JAWS/remora/app/test.cc
+++ /dev/null
@@ -1,76 +0,0 @@
-// $Id
-
-#include <unistd.h>
-#include <stdlib.h>
-#include <iostream.h>
-#include "ace/Signal.h"
-#include "Remora_Export.h"
-#include "Remora_Import.h"
-
-class Shutdown : public ACE_Event_Handler
-{
-public:
- Shutdown(int& cond) : cond_(cond) {}
-
- virtual int handle_signal (int, siginfo*, ucontext*)
- {
- this->cond_ = 0;
- return 0;
- }
-
-private:
-
- int& cond_;
-};
-
-int
-main(int argc, char** argv)
-{
- int lcv = 1;
- ACE_Sig_Handler shutdown;
-
- shutdown.register_handler (SIGINT, new Shutdown (lcv));
-
- try
- {
- Remora_Export cpu("CPU Usage", 0, 100);
- Remora_Export thread("Thread Count", 0, 24);
- Remora_Export through("Throughput", 0, 150);
- Remora_Export energy("Energy Levels", 0, 2084);
- Remora_Export warp("Warp Drive Output", 0, 1023);
-
- Remora_Import in_threads("Threads", 1, 0, 24);
- Remora_Import in_tachyon("Tachyon Emmissions", 25, 0, 100);
- Remora_Import in_shields("Shield Integrity", 100, 0, 100);
- Remora_Import in_phasers("Phaser Power", 421, 0, 1024);
-
- while (lcv)
- {
- cpu = rand() % 100;
- thread = rand() % 24;
- energy = rand() % 2084;
- through = rand() % 150;
- warp = rand() % 1023;
-
- cout << "Statistics: " << endl;
- cout << "CPU: " << CORBA::Long(cpu) << endl;
- cout << "Thread: " << CORBA::Long(thread) << endl;
- cout << "Throughput: " << CORBA::Long(through) << endl;
- cout << "Energy: " << CORBA::Long(energy) << endl;
- cout << "Warp: " << CORBA::Long(cpu) << endl;
-
- cout << "Controls: " << endl;
- cout << "Threads: " << CORBA::Long(in_threads) << endl;
- cout << "Tachyon: " << CORBA::Long(in_tachyon) << endl;
- cout << "Shields: " << CORBA::Long(in_shields) << endl;
- cout << "Phasers: " << CORBA::Long(in_phasers) << endl;
-
- sleep(1);
- }
- }
- catch(CORBA::SystemException& e)
- {
-
- cerr << e << endl;
- }
-}
diff --git a/apps/JAWS/server/HTTP_Config.cpp b/apps/JAWS/server/HTTP_Config.cpp
deleted file mode 100644
index ec67142c970..00000000000
--- a/apps/JAWS/server/HTTP_Config.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-// $Id$
-
-// HTTP_Config.cpp
-
-#include "ace/OS.h"
-#include "HTTP_Config.h"
-
-ACE_RCSID(server, HTTP_Config, "$Id$")
-
-// static HTTP_Config_Info config_info;
-
-HTTP_Config_Info *HTTP_Config::instance_ = 0;
-
-HTTP_Config_Info *
-HTTP_Config::instance (void)
-{
- if (HTTP_Config::instance_ == 0)
- {
- HTTP_Config::instance_ = new HTTP_Config_Info;
-
- HTTP_Config::instance_->document_root (0);
- HTTP_Config::instance_->cgi_path (0);
- HTTP_Config::instance_->user_dir (0);
- HTTP_Config::instance_->dir_index (0);
- HTTP_Config::instance_->proxy_flag (0);
- }
-
- return HTTP_Config::instance_;
-}
-
-HTTP_Config_Info::HTTP_Config_Info (void)
- : document_root_ (0),
- cgi_path_ (0),
- user_dir_ (0),
- dir_index_ (0),
- proxy_flag_ (0)
-{
-}
-
-HTTP_Config_Info::~HTTP_Config_Info (void)
-{
-}
-
-const char *
-HTTP_Config_Info::document_root (void) const
-{
- return this->document_root_;
-}
-
-const char *
-HTTP_Config_Info::cgi_path (void) const
-{
- return this->cgi_path_;
-}
-
-const char *
-HTTP_Config_Info::user_dir (void) const
-{
- return this->user_dir_;
-}
-
-const char *
-HTTP_Config_Info::dir_index (void) const
-{
- return this->dir_index_;
-}
-
-int
-HTTP_Config_Info::proxy_flag (void) const
-{
- return this->proxy_flag_;
-}
-
-const char *
-HTTP_Config_Info::document_root (const char *dr_string)
-{
- if (dr_string)
- this->document_root_ = dr_string;
- else
- {
- this->document_root_ = ACE_OS::getenv ("JAWS_DOCUMENT_ROOT");
- if (!this->document_root_)
- this->document_root_ = ".";
- }
-
- return this->document_root_;
-}
-
-const char *
-HTTP_Config_Info::cgi_path (const char *cp_string)
-{
- if (cp_string)
- this->cgi_path_ = cp_string;
- else
- {
- this->cgi_path_ = ACE_OS::getenv ("JAWS_CGI_PATH");
-
- if (!this->cgi_path_)
- this->cgi_path_ = "cgi-bin";
- }
-
- return this->cgi_path_;
-}
-
-const char *
-HTTP_Config_Info::user_dir (const char *ud_string)
-{
- if (ud_string)
- this->user_dir_ = ud_string;
- else
- {
- this->user_dir_ = ACE_OS::getenv ("JAWS_USER_DIR");
- if (!this->user_dir_)
- this->user_dir_ = ".www";
- }
-
- return this->user_dir_;
-}
-
-const char *
-HTTP_Config_Info::dir_index (const char *di_string)
-{
- if (di_string)
- this->dir_index_ = di_string;
- else
- {
- this->dir_index_ = ACE_OS::getenv ("JAWS_DIR_INDEX");
- if (!this->dir_index_)
- this->dir_index_ = "index.html";
- }
-
- return this->dir_index_;
-}
-
-int
-HTTP_Config_Info::proxy_flag (int pf)
-{
- this->proxy_flag_ = pf;
- return this->proxy_flag_;
-}
diff --git a/apps/JAWS/server/HTTP_Config.h b/apps/JAWS/server/HTTP_Config.h
deleted file mode 100644
index 39c76c44d1b..00000000000
--- a/apps/JAWS/server/HTTP_Config.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// HTTP_Config.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-// = Forward declaration.
-class HTTP_Config_Info;
-
-class HTTP_Config
- // = TITLE
- // Stores server configuration information.
- // Someday, this will be hip and cool and be able to parse
- // NCSA httpd style config files like Apache does. For now,
- // I'm just going to hack in environment variable stuff.
- //
- // Designed around Singleton pattern.
-{
-public:
- static HTTP_Config_Info *instance (void);
- // Access the Singleton.
-
-private:
- static HTTP_Config_Info *instance_;
- // Store the Singleton.
-};
-
-class HTTP_Config_Info
- // = TITLE
- // This is where the information is really stored.
-{
-friend class HTTP_Config;
-public:
- HTTP_Config_Info (void);
- ~HTTP_Config_Info (void);
-
- // Accessors to the information
-
- const char *document_root (void) const;
- // Where the root of the document tree begins. This prevents
- // clients from being able to examine your entire filesystem.
-
- const char *cgi_path (void) const;
- // A search path for CGI files.
-
- const char *user_dir (void) const;
- // The directory which is appended to a home user directory, e.g.,
- // ".www-docs" or "public_html".
-
- const char *dir_index (void) const;
- // What is the default index file for a directory, e.g.,
- // "index.html".
-
- int proxy_flag (void) const;
- // Will the server support proxy requests?
-
-private:
- // = Accesors that can set the data
-
- const char *document_root (const char *dr_string);
- const char *cgi_path (const char *cp_string);
- const char *user_dir (const char *ud_string);
- const char *dir_index (const char *di_string);
-
- int proxy_flag (int pf);
-
-private:
- // = Data members
-
- const char *document_root_;
- // The directory root from which documents will be fetched
-
- const char *cgi_path_;
- // The directories from which to expect CGI scripts
-
- const char *user_dir_;
- // Name of the sub-directory where user Web pages are
-
- const char *dir_index_;
- // Name of the Web page to present in place of a directory listing
-
- int proxy_flag_;
- // Should we support proxy requests? Ignored for now.
-};
diff --git a/apps/JAWS/server/HTTP_Handler.cpp b/apps/JAWS/server/HTTP_Handler.cpp
deleted file mode 100644
index 9148e4aa5c1..00000000000
--- a/apps/JAWS/server/HTTP_Handler.cpp
+++ /dev/null
@@ -1,289 +0,0 @@
-// $Id$
-
-// HTTP_Service.cpp -- simple implementation of the HTTP protocol
-
-#include "ace/Message_Block.h"
-#include "ace/Filecache.h"
-
-#include "HTTP_Handler.h"
-#include "HTTP_Helpers.h"
-#include "IO.h"
-
-ACE_RCSID(server, HTTP_Handler, "$Id$")
-
-HTTP_Handler::HTTP_Handler (JAWS_IO &io,
- HTTP_Handler_Factory &factory)
- : factory_ (factory),
- request_data_ (0),
- handle_ (ACE_INVALID_HANDLE),
- response_ (io, request_),
- io_ (io)
-{
- this->io_.handler (this);
-}
-
-HTTP_Handler::~HTTP_Handler (void)
-{
- this->request_data_->release ();
- this->request_data_ = 0;
-}
-
-void
-HTTP_Handler::open (ACE_HANDLE handle,
- ACE_Message_Block &initial_data)
-{
- ACE_DEBUG ((LM_DEBUG, "(%t) New connection \n"));
-
- int sockbufsize = HTTP_Handler::MAX_SOCKBUFSIZE;
- int result = ACE_OS::setsockopt (handle,
- SOL_SOCKET,
- SO_RCVBUF,
- (char *) &sockbufsize,
- sizeof sockbufsize);
-
- if (result == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "SO_RCVBUF"));
-
- sockbufsize = HTTP_Handler::MAX_SOCKBUFSIZE;
-
- result = ACE_OS::setsockopt (handle,
- SOL_SOCKET,
- SO_SNDBUF,
- (char *) &sockbufsize,
- sizeof sockbufsize);
- if (result == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "SO_SNDBUF"));
-
- this->handle_ = handle;
- this->io_.handle (this->handle_);
-
- this->request_data_ = initial_data.duplicate ();
- this->read_complete (initial_data);
-}
-
-void
-HTTP_Handler::read_complete (ACE_Message_Block &message_block)
-{
- // This is actually a callback entry point. The JAWS_IO framework
- // calls into this method after some data has been read in.
-
- switch (this->request_.parse_request (message_block))
- {
- case 0:
- do
- {
- int next_read_size
- = HTTP_Handler::MAX_REQUEST_SIZE - message_block.length ();
-
- if (next_read_size == 0)
- {
- this->request_too_long ();
- return;
- }
-
- this->io_.read (message_block, next_read_size);
- }
- while (0);
- break;
-
- default:
- // this->request_.respond ();
- this->response_.process_request ();
- }
-}
-
-void
-HTTP_Handler::receive_file_complete (void)
-{
- ACE_DEBUG ((LM_DEBUG, " (%t) %s received successfully\n",
- request_.uri ()));
-
- char buffer[BUFSIZ];
- int buflen =
- ACE_OS::sprintf (buffer,
- "%s %d %s\r\n",
- this->request_.version (),
- HTTP_Status_Code::STATUS_OK,
- "Successful");
-
- this->io_.send_confirmation_message (buffer, buflen);
-}
-
-void
-HTTP_Handler::receive_file_error (int result)
-{
- ACE_DEBUG ((LM_DEBUG, " (%t) %s error in receiving file\n",
- request_.uri ()));
-
- char buffer[BUFSIZ];
-
- int status_code;
- switch (result)
- {
- case ACE_Filecache_Handle::ACE_ACCESS_FAILED:
- case ACE_Filecache_Handle::ACE_WRITE_FAILED:
- case ACE_Filecache_Handle::ACE_OPEN_FAILED:
- status_code = HTTP_Status_Code::STATUS_NOT_FOUND;
- break;
- case ACE_Filecache_Handle::ACE_COPY_FAILED:
- case ACE_Filecache_Handle::ACE_STAT_FAILED:
- case ACE_Filecache_Handle::ACE_MEMMAP_FAILED:
- status_code = HTTP_Status_Code::STATUS_FORBIDDEN;
- break;
- default:
- status_code = HTTP_Status_Code::STATUS_INTERNAL_SERVER_ERROR;
- break;
- }
- int buflen =
- ACE_OS::sprintf (buffer,
- "%s %d %s",
- this->request_.version (),
- status_code,
- "Failed");
-
- this->io_.send_confirmation_message (buffer, buflen);
-}
-
-void
-HTTP_Handler::confirmation_message_complete (void)
-{
- this->done ();
-}
-
-void
-HTTP_Handler::error_message_complete (void)
-{
- this->done ();
-}
-
-void
-HTTP_Handler::transmit_file_complete (void)
-{
- ACE_DEBUG ((LM_DEBUG, " (%t) %s transmitted successfully\n",
- request_.uri ()));
-
- this->done ();
-}
-
-void
-HTTP_Handler::transmit_file_error (int result)
-{
- ACE_DEBUG ((LM_DEBUG,
- " (%t) %s error in transmitting file\n",
- request_.uri ()));
-
- int status_code;
-
- switch (result)
- {
- case ACE_Filecache_Handle::ACE_ACCESS_FAILED:
- case ACE_Filecache_Handle::ACE_WRITE_FAILED:
- case ACE_Filecache_Handle::ACE_OPEN_FAILED:
- status_code = HTTP_Status_Code::STATUS_NOT_FOUND;
- break;
- case ACE_Filecache_Handle::ACE_COPY_FAILED:
- case ACE_Filecache_Handle::ACE_STAT_FAILED:
- case ACE_Filecache_Handle::ACE_MEMMAP_FAILED:
- status_code = HTTP_Status_Code::STATUS_FORBIDDEN;
- break;
- default:
- status_code = HTTP_Status_Code::STATUS_INTERNAL_SERVER_ERROR;
- break;
- }
-
- this->response_.error_response (status_code, "error in transmitting file");
-}
-
-void
-HTTP_Handler::read_error (void)
-{
- ACE_DEBUG ((LM_DEBUG, " (%t) error in reading request\n"));
- this->done ();
-}
-
-void
-HTTP_Handler::write_error (void)
-{
- ACE_DEBUG ((LM_DEBUG, " (%t) %s error in writing response\n",
- request_.uri ()));
-
- this->done ();
-}
-
-void
-HTTP_Handler::timeout (void)
-{
- ACE_DEBUG ((LM_DEBUG, " (%t) %s error in reading request\n",
- request_.uri ()));
-
- this->response_.
- error_response (HTTP_Status_Code::STATUS_INTERNAL_SERVER_ERROR,
- "error in reading request");
-}
-
-void
-HTTP_Handler::request_too_long (void)
-{
- ACE_DEBUG ((LM_DEBUG, " (%t) request too long\n"));
- this->response_.
- error_response (HTTP_Status_Code::STATUS_BAD_REQUEST,
- "request too long");
-}
-
-void
-HTTP_Handler::done (void)
-{
- this->factory_.destroy_http_handler (*this, this->io_);
-}
-
-HTTP_Handler_Factory::~HTTP_Handler_Factory (void)
-{
-}
-
-HTTP_Handler *
-Synch_HTTP_Handler_Factory::create_http_handler (void)
-{
- JAWS_Synch_IO *io;
- ACE_NEW_RETURN (io, JAWS_Synch_IO, 0);
- HTTP_Handler *handler;
- ACE_NEW_RETURN (handler, HTTP_Handler (*io, *this), 0);
-
- return handler;
-}
-
-void
-Synch_HTTP_Handler_Factory::destroy_http_handler (HTTP_Handler &handler,
- JAWS_IO &io)
-{
- delete &handler;
- delete &io;
-}
-
-// This only works on Win32
-#if defined (ACE_WIN32)
-void
-Asynch_HTTP_Handler_Factory::open (ACE_HANDLE handle,
- ACE_Message_Block &mb)
-{
- JAWS_Asynch_IO *io;
- ACE_NEW (io, JAWS_Asynch_IO);
- HTTP_Handler *handler;
- ACE_NEW (handler, HTTP_Handler (*io, *this));
- handler->open (handle, mb);
-}
-
-void
-Asynch_HTTP_Handler_Factory::destroy_http_handler (HTTP_Handler &handler,
- JAWS_IO &io)
-{
- delete &handler;
- delete &io;
- delete this;
-}
-
-HTTP_Handler *
-Asynch_HTTP_Handler_Factory::create_http_handler (void)
-{
- return 0;
-}
-#endif /* ACE_WIN32 */
diff --git a/apps/JAWS/server/HTTP_Handler.h b/apps/JAWS/server/HTTP_Handler.h
deleted file mode 100644
index 0a61ae88782..00000000000
--- a/apps/JAWS/server/HTTP_Handler.h
+++ /dev/null
@@ -1,196 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// HTTP_Handler.h
-//
-// = AUTHOR
-// James Hu and Irfan Pyarali
-//
-// ============================================================================
-
-#ifndef HTTP_HANDLER_H
-#define HTTP_HANDLER_H
-
-// = Forward declarations
-class Message_Block;
-class HTTP_Handler_Factory;
-
-#include "ace/Asynch_IO.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "HTTP_Request.h"
-#include "HTTP_Response.h"
-#include "IO.h"
-
-class HTTP_Handler : protected JAWS_IO_Handler
- // = TITLE
- //
- // This class is used to implement the HTTP protocol
- //
- // = DESCRIPTION
- //
- // The HTTP_Handler class is a state based implementation of the
- // HTTP protocol. Therefore, it can be used synchronously and
- // asynchronously. It uses an abstract IO class to move between
- // different HTTP protocol states. It is up to the IO class to
- // decide on synchronous or asynchronous I/O.
-{
- // Friend I/O classes. Can call protected methods.
- friend class JAWS_Synch_IO;
- friend class JAWS_Asynch_IO;
-
- // Factories
- friend class Asynch_HTTP_Handler_Factory;
- friend class Synch_HTTP_Handler_Factory;
-
-public:
- virtual void open (ACE_HANDLE handle,
- ACE_Message_Block &initial_data);
- // The handler is initialized with a connection <handle> of a new
- // client and any <initial_data> that came across. The
- // <initial_data> block will be of MAX_REQUEST_SIZE and the number
- // of bytes in <initial_data> can be found from
- // <initial_data>.length ()
-
-protected:
- HTTP_Handler (JAWS_IO &io,
- HTTP_Handler_Factory &factory);
- // The constructor is passed the factory that created <this> and the
- // IO mechanism that the handler should use.
-
- virtual ~HTTP_Handler (void);
- // Destructor
-
- virtual void timeout (void);
- // This method is called by the framework when there is a timeout.
-
- virtual void done (void);
- // This is the termination state of the handler. After successful or
- // unsuccessful completions, the handler will end up in this state
- // (method).
-
- virtual void request_too_long (void);
- // Request too long.
-
- HTTP_Handler_Factory &factory_;
- // Reference to the creating factory.
-
-protected:
- // = Completion methods inherited from <JAWS_IO_Handler>.
-
- virtual void read_complete (ACE_Message_Block &data);
- virtual void read_error (void);
- virtual void transmit_file_complete (void);
- virtual void transmit_file_error (int result);
- virtual void receive_file_complete (void);
- virtual void receive_file_error (int result);
- virtual void write_error (void);
- virtual void confirmation_message_complete (void);
- virtual void error_message_complete (void);
-
-public:
- enum
- {
- MAX_SOCKBUFSIZE = 64 * 1024,
- MAX_REQUEST_SIZE = 8192,
- METHODSIZ = 10,
- VERSIONSIZ = 10
- };
-
-private:
- ACE_Message_Block *request_data_;
- // This points to the request sent by the client
-
- ACE_HANDLE handle_;
- // I/O handle to the client
-
- HTTP_Request request_;
- HTTP_Response response_;
-
- JAWS_IO &io_;
- // IO class used by the handler
-};
-
-class HTTP_Handler_Factory
- // = TITLE
- //
- // This class is used to create new HTTP handlers
- //
- // = DESCRIPTION
- //
- // This is an abstract factory for creating new HTTP handlers.
-{
-public:
- virtual ~HTTP_Handler_Factory (void);
- // Destructor
-
- virtual HTTP_Handler *create_http_handler (void) = 0;
- // This creates a new HTTP_Handler
-
- virtual void destroy_http_handler (HTTP_Handler &handler,
- JAWS_IO &io) = 0;
- // The HTTP handler will call this method from HTTP_Handler::done to
- // tell the factory to reap up the handler as it is now done with
- // the protocol
-};
-
-class Synch_HTTP_Handler_Factory : public HTTP_Handler_Factory
- // = TITLE
- //
- // This class is used to create new HTTP handlers that will use
- // Synch IO
- //
- // = DESCRIPTION
-{
-public:
- HTTP_Handler *create_http_handler (void);
- // This creates a new HTTP_Handler
-
- void destroy_http_handler (HTTP_Handler &handler,
- JAWS_IO &io);
- // The HTTP handler will call this method from HTTP_Handler::done to
- // tell the factory to reap up the handler as it is now done with
- // the protocol
-};
-
-#if defined (ACE_WIN32)
-class Asynch_HTTP_Handler_Factory : public HTTP_Handler_Factory, public ACE_Service_Handler
- // = TITLE
- // This class is used to create new HTTP handlers that will use
- // Asynchronous IO. This only works on Win32.
- //
- // = DESCRIPTION
-{
-public:
- void destroy_http_handler (HTTP_Handler &handler,
- JAWS_IO &io);
- // The HTTP handler will call this method from HTTP_Handler::done to
- // tell the factory to reap up the handler as it is now done with
- // the protocol
-
- virtual void open (ACE_HANDLE handle,
- ACE_Message_Block &message_block);
- // <open> is called by <ACE_Asynch_Acceptor> to initialize a new
- // instance of ACE_Service_Handler that has been created after the a
- // new connection is accepted.
- //
- // This will act as a creation point for new handlers.
-
-private:
- HTTP_Handler *create_http_handler (void);
- // This method is private as users are not allowed to create new
- // handlers. New handlers can only be created by the framework when
- // new client connections arrive.
-};
-#endif /* ACE_WIN32 */
-#endif /* HTTP_HANDLER_H */
diff --git a/apps/JAWS/server/HTTP_Helpers.cpp b/apps/JAWS/server/HTTP_Helpers.cpp
deleted file mode 100644
index 5849893f06b..00000000000
--- a/apps/JAWS/server/HTTP_Helpers.cpp
+++ /dev/null
@@ -1,431 +0,0 @@
-// $Id$
-
-// HTTP_Helpers.cpp -- Helper utilities for both server and client
-
-#include "HTTP_Helpers.h"
-
-ACE_RCSID(server, HTTP_Helpers, "$Id$")
-
-// = Static initialization.
-const char *const
-HTTP_Helper::months_[12]=
-{
- "Jan", "Feb", "Mar", "Apr", "May", "Jun",
- "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
-};
-
-char const *HTTP_Helper::alphabet_ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-char * HTTP_Helper::date_string_ = 0;
-ACE_SYNCH_MUTEX HTTP_Helper::mutex_;
-
-ACE_SYNCH_MUTEX HTTP_Status_Code::lock_;
-int HTTP_Status_Code::instance_ = 0;
-const char *HTTP_Status_Code::Reason[HTTP_Status_Code::MAX_STATUS_CODE + 1];
-
-time_t
-HTTP_Helper::HTTP_mktime (const char *httpdate)
-{
- char *buf;
-
- ACE_NEW_RETURN (buf, char[ACE_OS::strlen (httpdate) + 1], (time_t) -1);
-
- // Make spaces in the date be semi-colons so we can parse robustly
- // with sscanf.
-
- const char *ptr1 = httpdate;
- char *ptr2 = buf;
-
- do
- {
- if (*ptr1 == ' ')
- *ptr2++ = ';';
- else
- *ptr2++ = *ptr1;
- }
- while (*ptr1++ != '\0');
-
- // In HTTP/1.0, there are three versions of an HTTP_date.
-
- // rfc1123-date = wkday "," SP dd month yyyy SP hh:mm:ss SP "GMT"
- // rfc850-date = weekday "," SP dd-month-yy SP hh:mm:ss SP "GMT"
- // asctime-date = wkday SP month dd SP hh:mm:ss SP yyyy
-
- const char *rfc1123_date = "%3s,;%2d;%3s;%4d;%2d:%2d:%2d;GMT";
- const char *rfc850_date = "%s,;%2d-%3s-%2d;%2d:%2d:%2d;GMT";
- const char *asctime_date = "%3s;%3s;%2d;%2d:%2d:%2d;%4d";
-
- // Should also support other versions (such as from NNTP and SMTP)
- // for robustness, but it should be clear how to extend this.
-
- struct tm tms;
- char month[4];
- char weekday[10];
-
- if (::sscanf(buf, rfc1123_date,
- weekday,
- &tms.tm_mday,
- month,
- &tms.tm_year,
- &tms.tm_hour,
- &tms.tm_min,
- &tms.tm_sec) == 7)
- ;
- else if (::sscanf(buf, rfc850_date,
- weekday,
- &tms.tm_mday, month, &tms.tm_year,
- &tms.tm_hour, &tms.tm_min, &tms.tm_sec) == 7)
- {
- weekday[3] = '\0';
- }
- else if (::sscanf(buf, asctime_date,
- weekday,
- month, &tms.tm_mday,
- &tms.tm_hour, &tms.tm_min, &tms.tm_sec,
- &tms.tm_year) == 7)
- ;
-
- delete buf;
-
- tms.tm_year = HTTP_Helper::fixyear (tms.tm_year);
- tms.tm_mon = HTTP_Helper::HTTP_month (month);
-
- if (tms.tm_mon == -1)
- return (time_t) -1;
-
- // mktime is a Standard C function.
- {
-
-#if !defined (ACE_HAS_REENTRANT_LIBC)
- ACE_MT (ACE_Guard<ACE_SYNCH_MUTEX> g (HTTP_Helper::mutex_));
-#endif /* NOT ACE_HAS_REENTRANT_LIBC */
-
- return ACE_OS::mktime (&tms);
- }
-}
-
-const char *
-HTTP_Helper::HTTP_date (void)
-{
- if (HTTP_Helper::date_string_ == 0)
- {
- ACE_MT (ACE_Guard<ACE_SYNCH_MUTEX> m (HTTP_Helper::mutex_));
-
- time_t tloc;
- struct tm tms;
-
- if (HTTP_Helper::date_string_ == 0)
- {
- // 40 bytes is all I need.
- HTTP_Helper::date_string_ = new char[40];
-
- if (ACE_OS::time (&tloc) != (time_t) -1
- && ACE_OS::gmtime_r (&tloc, &tms) != NULL)
- ACE_OS::strftime (HTTP_Helper::date_string_, 40,
- "%a, %d %b %Y %T GMT", &tms);
- else
- {
- delete [] HTTP_Helper::date_string_;
- HTTP_Helper::date_string_ = 0;
- }
- }
- }
-
- return HTTP_Helper::date_string_;
-}
-
-const char *
-HTTP_Helper::HTTP_date (char *s)
-{
- time_t tloc;
- struct tm tms;
- char * date_string = s;
-
- if (ACE_OS::time (&tloc) != (time_t) -1
- && ACE_OS::gmtime_r (&tloc, &tms) != NULL)
- ACE_OS::strftime (date_string, 40, "%a, %d %b %Y %T GMT", &tms);
- else
- date_string = 0;
-
- return date_string;
-}
-
-int
-HTTP_Helper::HTTP_month (const char *month)
-{
- for (size_t i = 0; i < 12; i++)
- if (ACE_OS::strcmp(month, HTTP_Helper::months_[i]) == 0)
- return i;
-
- return -1;
-}
-
-const char *
-HTTP_Helper::HTTP_month (int month)
-{
- if (month < 0 || month >= 12)
- return 0;
-
- return HTTP_Helper::months_[month];
-}
-
-// Fix the path if it needs fixing/is fixable.
-
-char *
-HTTP_Helper::HTTP_decode_string (char *path)
-{
- // replace the percentcodes with the actual character
- int i, j;
- char percentcode[3];
-
- for (i = j = 0; path[i] != '\0'; i++, j++)
- {
- if (path[i] == '%')
- {
- percentcode[0] = path[++i];
- percentcode[1] = path[++i];
- percentcode[2] = '\0';
- path[j] = (char) ACE_OS::strtol (percentcode, (char **) 0, 16);
- }
- else
- path[j] = path[i];
- }
-
- path[j] = path[i];
-
- return path;
-}
-
-char *
-HTTP_Helper::HTTP_decode_base64 (char *data)
-{
- char inalphabet[256], decoder[256];
-
- ACE_OS::memset (inalphabet, 0, sizeof (inalphabet));
- ACE_OS::memset (decoder, 0, sizeof (decoder));
-
- for (int i = ACE_OS::strlen (HTTP_Helper::alphabet_) - 1;
- i >= 0;
- i--)
- {
- inalphabet[(unsigned int) HTTP_Helper::alphabet_[i]] = 1;
- decoder[(unsigned int) HTTP_Helper::alphabet_[i]] = i;
- }
-
- char *indata = data;
- char *outdata = data;
-
- int bits = 0;
- int c;
- int char_count = 0;
- int errors = 0;
-
- while ((c = *indata++) != '\0')
- {
- if (c == '=')
- break;
- if (c > 255 || ! inalphabet[c])
- continue;
- bits += decoder[c];
- char_count++;
- if (char_count == 4)
- {
- *outdata++ = (bits >> 16);
- *outdata++ = ((bits >> 8) & 0xff);
- *outdata++ = (bits & 0xff);
- bits = 0;
- char_count = 0;
- }
- else
- bits <<= 6;
- }
-
- if (c == '\0')
- {
- if (char_count)
- {
- ACE_DEBUG ((LM_DEBUG,
- "base64 encoding incomplete: at least %d bits truncated\n",
- ((4 - char_count) * 6)));
- errors++;
- }
- }
- else
- {
- // c == '='
- switch (char_count)
- {
- case 1:
- ACE_DEBUG ((LM_DEBUG,
- "base64 encoding incomplete: at least 2 bits missing\n"));
- errors++;
- break;
- case 2:
- *outdata++ = (bits >> 10);
- break;
- case 3:
- *outdata++ = (bits >> 16);
- *outdata++ = ((bits >> 8) & 0xff);
- break;
- }
- }
- *outdata = '\0';
- return errors ? 0 : data;
-}
-
-char *
-HTTP_Helper::HTTP_encode_base64 (char *data)
-{
- char buf[BUFSIZ];
- int c;
- int error;
- int char_count = 0;
- int bits = 0;
- error = 0;
- char *indata = data;
- char *outdata = buf;
- const unsigned char ASCII_MAX = ~0;
-
- while ((c = *indata++) != '\0')
- {
- if (c > (int)ASCII_MAX)
- {
- ACE_DEBUG ((LM_DEBUG, "encountered char > 255 (decimal %d)\n", c));
- error++;
- break;
- }
- bits += c;
- char_count++;
-
- if (char_count == 3)
- {
- *outdata++ = HTTP_Helper::alphabet_[bits >> 18];
- *outdata++ = HTTP_Helper::alphabet_[(bits >> 12) & 0x3f];
- *outdata++ = HTTP_Helper::alphabet_[(bits >> 6) & 0x3f];
- *outdata++ = HTTP_Helper::alphabet_[bits & 0x3f];
- bits = 0;
- char_count = 0;
- }
- else
- bits <<= 8;
- }
-
- if (!error)
- {
- if (char_count != 0)
- {
- bits <<= 16 - (8 * char_count);
- *outdata++ = HTTP_Helper::alphabet_[bits >> 18];
- *outdata++ = HTTP_Helper::alphabet_[(bits >> 12) & 0x3f];
-
- if (char_count == 1)
- {
- *outdata++ = '=';
- *outdata++ = '=';
- }
- else
- {
- *outdata++ = HTTP_Helper::alphabet_[(bits >> 6) & 0x3f];
- *outdata++ = '=';
- }
- }
- *outdata = '\0';
- ACE_OS::strcpy (data, buf);
- }
-
- return (error ? 0 : data);
-}
-
-int
-HTTP_Helper::fixyear (int year)
-{
- // Fix the year 2000 problem
-
- if (year > 1000)
- year -= 1900;
- else if (year < 100)
- {
- struct tm tms;
- time_t tloc;
-
- if (ACE_OS::time (&tloc) != (time_t) -1)
- {
- ACE_OS::gmtime_r (&tloc, &tms);
-
- if (tms.tm_year % 100 == year)
- year = tms.tm_year;
-
- // The last two cases check boundary conditions, in case the
- // year just changed at the moment we checked to see if we
- // need to fix it.
- if ((year+1) % 100 == tms.tm_year % 100)
- year = tms.tm_year - 1;
-
- if (year == (tms.tm_year + 1) % 100)
- year = tms.tm_year + 1;
-
- // What to do if none of the above?
- }
- }
-
- return year;
-}
-
-const char **
-HTTP_Status_Code::instance (void)
-{
- if (HTTP_Status_Code::instance_ == 0)
- {
- ACE_Guard<ACE_SYNCH_MUTEX> g (lock_);
-
- if (HTTP_Status_Code::instance_ == 0)
- {
- for (size_t i = 0;
- i < HTTP_Status_Code::MAX_STATUS_CODE + 1;
- i++)
- {
- switch (i)
- {
- case STATUS_OK:
- HTTP_Status_Code::Reason[i] = "OK"; break;
- case STATUS_CREATED:
- HTTP_Status_Code::Reason[i] = "Created"; break;
- case STATUS_ACCEPTED:
- HTTP_Status_Code::Reason[i] = "Accepted"; break;
- case STATUS_NO_CONTENT:
- HTTP_Status_Code::Reason[i] = "No Content"; break;
- case STATUS_MOVED_PERMANENTLY:
- HTTP_Status_Code::Reason[i] = "Moved Permanently"; break;
- case STATUS_MOVED_TEMPORARILY:
- HTTP_Status_Code::Reason[i] = "Moved Temporarily"; break;
- case STATUS_NOT_MODIFIED:
- HTTP_Status_Code::Reason[i] = "Not Modified"; break;
- case STATUS_BAD_REQUEST:
- HTTP_Status_Code::Reason[i] = "Bad Request"; break;
- case STATUS_UNAUTHORIZED:
- HTTP_Status_Code::Reason[i] = "Unauthorized"; break;
- case STATUS_FORBIDDEN:
- HTTP_Status_Code::Reason[i] = "Forbidden"; break;
- case STATUS_NOT_FOUND:
- HTTP_Status_Code::Reason[i] = "Not Found"; break;
- case STATUS_INTERNAL_SERVER_ERROR:
- HTTP_Status_Code::Reason[i] = "Internal Server Error"; break;
- case STATUS_NOT_IMPLEMENTED:
- HTTP_Status_Code::Reason[i] = "Not Implemented"; break;
- case STATUS_BAD_GATEWAY:
- HTTP_Status_Code::Reason[i] = "Bad Gateway"; break;
- case STATUS_SERVICE_UNAVAILABLE:
- HTTP_Status_Code::Reason[i] = "Service Unavailable"; break;
- default:
- HTTP_Status_Code::Reason[i] = "Unknown";
- }
- }
-
- HTTP_Status_Code::instance_ = 1;
- }
-
- // GUARD released
- }
-
- return HTTP_Status_Code::Reason;
-}
diff --git a/apps/JAWS/server/HTTP_Helpers.h b/apps/JAWS/server/HTTP_Helpers.h
deleted file mode 100644
index 68f05729e48..00000000000
--- a/apps/JAWS/server/HTTP_Helpers.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// HTTP_Helpers.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#ifndef HTTP_HELPERS_H
-#define HTTP_HELPERS_H
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class HTTP_Helper
-// Static functions to enhance the lives of HTTP programmers everywhere.
-{
-public:
-
- // Convert and HTTP-date into a time_t
- static time_t HTTP_mktime (const char *httpdate);
-
- // Create today's date
- static const char *HTTP_date (void);
- static const char *HTTP_date (char *s);
-
- // Month conversions (ascii <--> numeric)
- static int HTTP_month (const char *month);
- static const char *HTTP_month (int month);
-
- static char *HTTP_decode_string (char *path);
-
- // Encode/Decode base64 stuff (weak security model)
- static char *HTTP_decode_base64 (char *data);
- static char *HTTP_encode_base64 (char *data);
-
-private:
-
- static int fixyear (int year);
-
-private:
- static const char *const months_[12];
- static char const *alphabet_;
-
- static char *date_string_;
- static ACE_SYNCH_MUTEX mutex_;
- // Use this sometimes (e.g. HTTP_date)
-};
-
-// Design around the Singleton pattern
-
-class HTTP_Status_Code
- // = TITLE
- // Go from numeric status codes to descriptive strings.
- //
- // = DESCRIPTION
- // Design around the Singleton pattern
-{
-public:
- static const char **instance (void);
- // Singleton access point.
-
- enum STATUS_CODE
- {
- STATUS_OK = 200,
- STATUS_CREATED = 201,
- STATUS_ACCEPTED = 202,
- STATUS_NO_CONTENT = 204,
- STATUS_MOVED_PERMANENTLY = 301,
- STATUS_MOVED_TEMPORARILY = 302,
- STATUS_NOT_MODIFIED = 304,
- STATUS_BAD_REQUEST = 400,
- STATUS_UNAUTHORIZED = 401,
- STATUS_FORBIDDEN = 403,
- STATUS_NOT_FOUND = 404,
- STATUS_INTERNAL_SERVER_ERROR = 500,
- STATUS_NOT_IMPLEMENTED = 501,
- STATUS_BAD_GATEWAY = 502,
- STATUS_SERVICE_UNAVAILABLE = 503,
- STATUS_INSUFFICIENT_DATA = 399
- };
-
- enum
- {
- MAX_STATUS_CODE = 599
- };
-
-private:
- // Singleton pattern is afoot here.
- static const char *Reason[MAX_STATUS_CODE + 1];
- static int instance_;
- static ACE_SYNCH_MUTEX lock_;
-};
-
-#endif /* HTTP_HELPERS_H */
-
diff --git a/apps/JAWS/server/HTTP_Request.cpp b/apps/JAWS/server/HTTP_Request.cpp
deleted file mode 100644
index 7140b7aa21a..00000000000
--- a/apps/JAWS/server/HTTP_Request.cpp
+++ /dev/null
@@ -1,661 +0,0 @@
-// $Id$
-
-#include "ace/Message_Block.h"
-#include "HTTP_Request.h"
-#include "HTTP_Helpers.h"
-#include "HTTP_Config.h"
-
-ACE_RCSID(server, HTTP_Request, "$Id$")
-
-const char *const
-HTTP_Request::static_header_strings_[HTTP_Request::NUM_HEADER_STRINGS] =
-{
- "Date",
- "Pragma",
- "Authorization",
- "From",
- "If-Modified-Since",
- "Referrer",
- "User-Agent",
- "Allow",
- "Content-Encoding",
- "Content-Length",
- "Content-Type",
- "Expires",
- "Last-Modified"
-};
-
-const char *const
-HTTP_Request::static_method_strings_[HTTP_Request::NUM_METHOD_STRINGS] =
-{
- "GET",
- "HEAD",
- "POST",
- "PUT"
-};
-
-// For reasons of efficiency, this class expects buffer to be
-// null-terminated, and buflen does NOT include the \0.
-
-HTTP_Request::HTTP_Request (void)
- : got_request_line_ (0),
- method_ (0),
- uri_ (0),
- version_ (0),
- path_ (0),
- cgi_ (0),
- cgi_env_ (0),
- cgi_args_ (0),
- query_string_ (0),
- path_info_ (0),
- header_strings_ (HTTP_Request::static_header_strings_),
- method_strings_ (HTTP_Request::static_method_strings_)
-{
-
- for (size_t i = 0;
- i < HTTP_Request::NUM_HEADER_STRINGS;
- i++)
- this->headers_.recognize (this->header_strings_[i]);
-}
-
-HTTP_Request::~HTTP_Request (void)
-{
- ACE_OS::free (this->method_);
- ACE_OS::free (this->uri_);
- ACE_OS::free (this->version_);
- ACE_OS::free (this->path_);
- ACE_OS::free (this->query_string_);
- ACE_OS::free (this->path_info_);
-
- delete [] this->cgi_env_;
-}
-
-int
-HTTP_Request::parse_request (ACE_Message_Block &mb)
-{
- mb.wr_ptr ()[0] = '\0';
-
- // Note that RFC 822 does not mention the maximum length of a header
- // line. So in theory, there is no maximum length.
-
- // In Apache, they assume that each header line should not exceed
- // 8K.
-
- int result = this->headers_.complete_header_line (mb.rd_ptr ());
-
- if (result != 0)
- {
- if (!this->got_request_line ())
- {
- this->parse_request_line (mb.rd_ptr ());
- while (this->headers_.complete_header_line (mb.rd_ptr ()) > 0)
- this->headers_.parse_header_line (mb.rd_ptr ());
- }
- else if (result > 0)
- do
- this->headers_.parse_header_line (mb.rd_ptr ());
- while (this->headers_.complete_header_line (mb.rd_ptr ()) > 0);
- }
-
- mb.wr_ptr (strlen(mb.rd_ptr ()) - mb.length ());
-
- if (this->headers_.end_of_headers ()
- || (this->got_request_line () && this->version () == 0))
- return this->init (mb.rd_ptr (), mb.length ());
- else
- return 0;
-}
-
-void
-HTTP_Request::parse_request_line (char *const request_line)
-{
- char *ptr = request_line;
- char *buf = request_line;
- int offset = 1;
-
- this->status_ = HTTP_Status_Code::STATUS_OK;
-
- ptr = ACE_OS::strchr (request_line, '\n');
-
- if (ptr > request_line && ptr[-1] == '\r')
- ptr--, offset++;
-
- if (ptr == request_line)
- {
- this->status_ = HTTP_Status_Code::STATUS_BAD_REQUEST;
- return;
- }
-
- *ptr = '\0';
- ptr += offset;
-
- char *lasts = 0; // for strtok_r
-
- // Get the request type.
- this->got_request_line_ = 1;
-
- if (this->method (ACE_OS::strtok_r (buf, " \t", &lasts))
- && this->uri (ACE_OS::strtok_r (NULL, " \t", &lasts)))
- {
- this->type (this->method ());
-
- if (this->version (ACE_OS::strtok_r (NULL, " \t", &lasts)) == 0
- && this->type () != HTTP_Request::GET)
- this->status_ = HTTP_Status_Code::STATUS_NOT_IMPLEMENTED;
-
- if (this->path (this->uri ()) == 0)
- this->status_ = HTTP_Status_Code::STATUS_NOT_FOUND;
- }
-
- ACE_DEBUG ((LM_DEBUG, " (%t) request %s %s %s parsed\n",
- (this->method () ? this->method () : "-"),
- (this->uri () ? this->uri () : "="),
- (this->version () ? this->version () : "HTTP/0.9")));
-
- ACE_OS::memmove (buf, ptr, ACE_OS::strlen (ptr)+1);
-}
-
-int
-HTTP_Request::init (char *const buffer,
- int buflen)
-{
- // Initialize these every time.
- content_length_ = -1;
-
- // Extract the data pointer.
- data_ = buffer;
- datalen_ = 0;
-
- // Set the datalen
- if (data_ != NULL)
- datalen_ = buflen;
- else
- datalen_ = 0;
-
- ACE_DEBUG ((LM_DEBUG, " (%t) init has initialized\n"));
-
- return 1;
-}
-
-const char *
-HTTP_Request::method (void) const
-{
- return this->method_;
-}
-
-const char *
-HTTP_Request::uri (void) const
-{
- return this->uri_;
-}
-
-const char *
-HTTP_Request::version (void) const
-{
- return this->version_;
-}
-
-const char *
-HTTP_Request::path (void) const
-{
- return this->path_;
-}
-
-int
-HTTP_Request::cgi (void) const
-{
- return this->cgi_;
-}
-
-const char **
-HTTP_Request::cgi_env (void) const
-{
- return (const char **)this->cgi_env_;
-}
-
-const char *
-HTTP_Request::cgi_args (void) const
-{
- return this->cgi_args_;
-}
-
-const char *
-HTTP_Request::query_string (void) const
-{
- return this->query_string_;
-}
-
-const char *
-HTTP_Request::path_info (void) const
-{
- return this->path_info_;
-}
-
-int
-HTTP_Request::got_request_line (void) const
-{
- return this->got_request_line_;
-}
-
-int
-HTTP_Request::type (void) const
-{
- return type_;
-}
-
-const Headers &
-HTTP_Request::headers (void) const
-{
- return this->headers_;
-}
-
-const char *
-HTTP_Request::header_strings (int index) const
-{
- const char *hs = 0;
-
- if (0 <= index && index < NUM_HEADER_STRINGS)
- hs = this->header_strings_[index];
-
- return hs;
-}
-
-const char *
-HTTP_Request::header_values (int index) const
-{
- const char *hs = 0;
- const char *hv = 0;
-
- if (0 <= index && index < NUM_HEADER_STRINGS)
- {
- hs = this->header_strings_[index];
- hv = this->headers_[hs].value ();
- }
-
- return hv;
-}
-
-char *
-HTTP_Request::data (void)
-{
- return data_;
-}
-
-int
-HTTP_Request::data_length (void)
-{
- return datalen_;
-}
-
-int
-HTTP_Request::content_length (void)
-{
- if (this->content_length_ == -1)
- {
- const char * clv = this->headers_["Content-length"].value ();
- this->content_length_ = (clv ? ACE_OS::atoi (clv) : 0);
- }
-
- return this->content_length_;
-}
-
-int
-HTTP_Request::status (void)
-{
- return this->status_;
-}
-
-const char *
-HTTP_Request::status_string (void)
-{
- return HTTP_Status_Code::instance ()[this->status_];
-}
-
-void
-HTTP_Request::dump (void)
-{
- ACE_DEBUG ((LM_DEBUG, "%s command.\n"
- "filename is %s,"
- " length of the file is %d,"
- " data string is %s,"
- " datalen is %d,"
- " status is %d, which is %s\n\n",
- this->method () ? this->method () : "EMPTY",
- this->uri () ? this->uri () : "EMPTY",
- this->content_length (),
- this->data () ? this->data () : "EMPTY",
- this->data_length (),
- this->status (),
- this->status_string ()));
-}
-
-const char *
-HTTP_Request::method (const char *method_string)
-{
- if (this->method_)
- ACE_OS::free (this->method_);
-
- if (method_string == 0)
- {
- this->status_ = HTTP_Status_Code::STATUS_BAD_REQUEST;
- this->method_ = 0;
- }
- else
- this->method_ = ACE_OS::strdup (method_string);
-
- return this->method_;
-}
-
-const char *
-HTTP_Request::uri (char *uri_string)
-{
- if (this->uri_)
- ACE_OS::free (this->uri_);
-
- if (uri_string == 0)
- {
- this->status_ = HTTP_Status_Code::STATUS_BAD_REQUEST;
- this->uri_ = 0;
- }
- else
- {
- this->uri_ = ACE_OS::strdup (uri_string);
- this->cgi (this->uri_);
- HTTP_Helper::HTTP_decode_string (this->uri_);
- }
-
- return this->uri_;
-}
-
-const char *
-HTTP_Request::version (const char *version_string)
-{
- if (this->version_)
- ACE_OS::free (this->version_);
-
- if (version_string)
- this->version_ = ACE_OS::strdup (version_string);
- else
- this->version_ = 0;
-
- return this->version_;
-}
-
-int
-HTTP_Request::type (const char *type_string)
-{
- this->type_ = HTTP_Request::NO_TYPE;
-
- if (type_string == 0)
- return this->type_;
-
- for (size_t i = 0;
- i < HTTP_Request::NUM_METHOD_STRINGS;
- i++)
-
- if (ACE_OS::strcmp (type_string, this->method_strings_[i]) == 0)
- {
- this->type_ = i;
- break;
- }
-
- if (this->type_ == HTTP_Request::NO_TYPE)
- this->status_ = HTTP_Status_Code::STATUS_NOT_IMPLEMENTED;
-
- return this->type_;
-}
-
-int
-HTTP_Request::cgi (char *uri_string)
-{
- this->cgi_ = 0;
- this->cgi_env_ = 0;
- this->cgi_args_ = 0;
-
- ACE_DEBUG ((LM_DEBUG, " (%t) HTTP_Request::cgi (%s)\n", uri_string));
-
- if (uri_string == 0 || ACE_OS::strlen (uri_string) == 0)
- return 0;
-
- // There are 2 cases where a file could be a CGI script
- //
- // (1) the file has a CGI extension.
- // (2) the file resides in a CGI bin directory.
-
- char *extra_path_info = 0;
- if (this->cgi_in_path (uri_string, extra_path_info)
- || this->cgi_in_extension (uri_string, extra_path_info))
- {
- cgi_args_and_env (extra_path_info);
-
- if (extra_path_info)
- {
- this->path_info_ = ACE_OS::strdup (extra_path_info);
- HTTP_Helper::HTTP_decode_string (this->path_info_);
- *extra_path_info = '\0';
- }
- }
-
- return this->cgi_;
-}
-
-int
-HTTP_Request::cgi_in_path (char *uri_string, char *&extra_path_info)
-{
- char *cgi_path;
-
- ACE_DEBUG ((LM_DEBUG, " (%t) HTTP_Request::cgi_in_path (%s)\n",
- uri_string));
-
- if (HTTP_Config::instance ()->cgi_path ())
- cgi_path = ACE_OS::strdup (HTTP_Config::instance ()->cgi_path ());
- else
- cgi_path = ACE_OS::strdup ("");
-
- // error checking considered helpful!
- if (cgi_path == 0)
- return 0;
-
- char *lasts = 0;
- char *cgi_path_next = ACE_OS::strtok_r (cgi_path, ":", &lasts);
-
- if (cgi_path_next)
- do
- {
- int len = ACE_OS::strlen (cgi_path_next);
-
- // match path to cgi path
- int in_cgi_path = 0;
-
- if (*cgi_path_next == '/')
- {
- // cgi path next points to an ``absolute'' path
- extra_path_info = uri_string;
- in_cgi_path =
- (ACE_OS::strncmp (extra_path_info, cgi_path_next, len) == 0);
- }
- else
- {
- // cgi path next points to a ``relative'' path
- extra_path_info = ACE_OS::strstr (uri_string, cgi_path_next);
- in_cgi_path = (extra_path_info != 0);
- }
-
- if (in_cgi_path)
- {
- if (extra_path_info[len] == '/')
- {
- this->cgi_ = 1;
- extra_path_info += len;
-
- // move past the executable name
- do
- extra_path_info++;
- while (*extra_path_info != '/'
- && *extra_path_info != '?'
- && *extra_path_info != '\0');
-
- if (*extra_path_info == '\0')
- extra_path_info = 0;
-
- break;
- }
- }
- extra_path_info = 0;
-
- cgi_path_next = ACE_OS::strtok_r (NULL, ":", &lasts);
- }
- while (cgi_path_next);
-
- ACE_OS::free (cgi_path);
-
- return this->cgi_;
-}
-
-int
-HTTP_Request::cgi_in_extension (char *uri_string, char *&extra_path_info)
-{
- extra_path_info = ACE_OS::strstr (uri_string, ".cgi");
-
- ACE_DEBUG ((LM_DEBUG, " (%t) HTTP_Request::cgi_in_extension (%s)\n",
- uri_string));
-
- while (extra_path_info != 0)
- {
- extra_path_info += 4;
- // skip past ``.cgi''
-
- switch (*extra_path_info)
- {
- case '\0':
- extra_path_info = 0;
- break;
- case '/':
- case '?':
- break;
- default:
- extra_path_info = ACE_OS::strstr (extra_path_info, ".cgi");
- continue;
- }
- this->cgi_ = 1;
- break;
- }
-
- return this->cgi_;
-}
-
-void
-HTTP_Request::cgi_args_and_env (char *&extra_path_info)
-{
- char *cgi_question = 0;
-
- if (extra_path_info)
- cgi_question = ACE_OS::strchr (extra_path_info, '?');
-
- if (extra_path_info == cgi_question)
- extra_path_info = 0;
-
- if (cgi_question)
- {
- *cgi_question++ = '\0';
-
- if (*cgi_question != '\0')
- {
- // We need the ``original'' QUERY_STRING for the
- // environment. We will substitute '+'s for spaces in the
- // other copy.
-
- this->query_string_ = ACE_OS::strdup (cgi_question);
-
- char *ptr = cgi_question;
- int count = 0;
- do
- if (*ptr == '+')
- *ptr = ' ';
- else if (*ptr == '&' || *ptr == '=')
- count++;
- while (*++ptr);
-
- count++;
-
- if (ACE_OS::strchr (cgi_question, '='))
- {
- ACE_NEW (this->cgi_env_, char *[count+1]);
-
- int i = 0;
- ptr = cgi_question;
- do
- {
- this->cgi_env_ [i++] = ptr;
-
- while (*ptr++)
- if (*ptr == '&' || *ptr == '=')
- *ptr = '\0';
-
- HTTP_Helper::HTTP_decode_string (this->cgi_env_[i-1]);
- }
- while (i < count);
-
- this->cgi_env_[count] = 0;
- }
- else
- {
- this->cgi_args_ = cgi_question;
- HTTP_Helper::HTTP_decode_string (cgi_question);
- }
- }
- }
-}
-
-const char *
-HTTP_Request::path (const char *uri_string)
-{
- char const *file_name = uri_string;
- char buf[MAXPATHLEN + 1];
- buf[0] = '\0';
-
- if (file_name == 0) return 0;
-
- if (*file_name == '/')
- {
- file_name++;
- if (*file_name == '~')
- {
- char *ptr = buf;
-
- while (*++file_name && *file_name != '/')
- *ptr++ = *file_name;
-
- *ptr = '\0';
-
- if (ptr == buf)
- ACE_OS::strcpy (buf, ACE_OS::getenv ("HOME"));
- else
- {
-#if !defined (ACE_WIN32) && !defined (VXWORKS)
- char pw_buf[BUFSIZ];
- struct passwd pw_struct;
- if (ACE_OS::getpwnam_r (buf, &pw_struct, pw_buf, sizeof (pw_buf))
- == 0)
- return 0;
- ACE_OS::strcpy (buf, pw_struct.pw_dir);
-#endif /* NOT ACE_WIN32 AND NOT VXWORKS */
- }
-
- ACE_OS::strcat (buf, "/");
- ACE_OS::strcat (buf, HTTP_Config::instance ()->user_dir ());
- ACE_OS::strcat (buf, file_name);
- }
- else
- {
- // With a starting '/' but no '~'
- ACE_OS::strcat (buf, HTTP_Config::instance ()->document_root ());
- ACE_OS::strcat (buf, file_name - 1);
- }
- }
-
- if (*buf != '\0')
- this->path_ = ACE_OS::strdup (buf);
-
- return this->path_;
-}
diff --git a/apps/JAWS/server/HTTP_Request.h b/apps/JAWS/server/HTTP_Request.h
deleted file mode 100644
index 48dac56366c..00000000000
--- a/apps/JAWS/server/HTTP_Request.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// HTTP_Request.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#ifndef HTTP_REQUEST_H
-#define HTTP_REQUEST_H
-
-class ACE_Message_Block;
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "Parse_Headers.h"
-
-class HTTP_Request
- // = TITLE
- // This parses the client request of an HTTP transaction.
- //
- // = DESCRIPTION
-{
-public:
- HTTP_Request (void);
- // Default construction.
-
- ~HTTP_Request (void);
- // Destructor.
-
- int parse_request (ACE_Message_Block &mb);
- // parse an incoming request
-
- void parse_request_line (char *const request_line);
- // the first line of a request is the request line, which is of the
- // form: METHOD URI VERSION.
-
- int init (char *const buffer,
- int buflen);
- // Initialize the request object. This will parse the buffer and
- // prepare for the accessors.
-
-public:
- // = The Accessors.
-
- const char *method (void) const;
- // HTTP request method
-
- const char *uri (void) const;
- // HTTP request uri
-
- const char *version (void) const;
- // HTTP request version
-
- const char *path (void) const;
- // The HTTP request uri translated into a server filename path
-
- int cgi (void) const;
- // TRUE of the request is a cgi request
-
- const char *cgi_args (void) const;
- // The arguments to the cgi request
-
- const char **cgi_env (void) const;
- // The environment variables passed to the CGI request
-
- const char *query_string (void) const;
- // The cgi request query string
-
- const char *path_info (void) const;
- // The cgi request path information
-
- int type (void) const;
- // The type of the HTTP request
-
- const Headers &headers (void) const;
- // The headers that were parsed from the request
-
- const char *header_strings (int index) const;
- // Header strings stored
-
- const char *header_values (int index) const;
- // Values associated with the header strings
-
- char *data (void);
- // The buffer into which request data is read
-
- int data_length (void);
- // The length of the request data
-
- int content_length (void);
- // The length of incoming content if any
-
- int status (void);
- // Current status of the incoming request
-
- const char *status_string (void);
- // A string describing the state of the incoming request
-
- void dump (void);
- // Dump the state of the request.
-
- enum
- {
- NO_TYPE = -1,
- GET = 0,
- HEAD,
- POST,
- PUT,
- NUM_METHOD_STRINGS
- };
- // Values for request type
-
- enum
- {
- DATE = 0,
- PRAGMA,
- AUTHORIZATION,
- FROM,
- IF_MODIFIED_SINCE,
- REFERRER,
- USER_AGENT,
- ALLOW,
- CONTENT_ENCODING,
- CONTENT_LENGTH,
- CONTENT_TYPE,
- EXPIRES,
- LAST_MODIFIED,
- NUM_HEADER_STRINGS
- };
- // Header strings
-
-private:
- // = Private Accessors which can set values
- const char *method (const char *method_string);
- const char *uri (char *uri_string);
- const char *version (const char *version_string);
- const char *path (const char *uri_string);
-
- int cgi (char *uri_string);
- // determine if the given URI is a CGI program.
-
- int cgi_in_path (char *uri_string, char *&extra_path_info);
- // determine if the given URI resides in a cgi-bin directory
-
- int cgi_in_extension (char *uri_string, char *&extra_path_info);
- // determine if the given URI contains a cgi extension
-
- void cgi_args_and_env (char *&extra_path_info);
- // set the arguments and environment for the cgi program
-
- int type (const char *type_string);
-
-private:
- int got_request_line (void) const;
-
-private:
- int got_request_line_;
- Headers headers_;
-
- char *method_;
- char *uri_;
- char *version_;
- char *path_;
-
- int cgi_;
- char **cgi_env_;
- char *cgi_args_;
-
- char *query_string_;
- char *path_info_;
-
- const char * const *const header_strings_;
- static const char *const static_header_strings_[NUM_HEADER_STRINGS];
-
- const char * const *const method_strings_;
- static const char *const static_method_strings_[NUM_METHOD_STRINGS];
-
- char *data_;
- int datalen_;
- int content_length_;
- char *filename_;
- int status_;
- int type_;
-};
-
-#endif /* HTTP_REQUEST_H */
diff --git a/apps/JAWS/server/HTTP_Response.cpp b/apps/JAWS/server/HTTP_Response.cpp
deleted file mode 100644
index 0c2bf3405c1..00000000000
--- a/apps/JAWS/server/HTTP_Response.cpp
+++ /dev/null
@@ -1,366 +0,0 @@
-// $Id$
-
-#include "ace/Process.h"
-#include "ace/Mem_Map.h"
-
-#include "HTTP_Response.h"
-#include "HTTP_Request.h"
-#include "HTTP_Helpers.h"
-#include "HTTP_Config.h"
-#include "IO.h"
-
-ACE_RCSID(server, HTTP_Response, "$Id$")
-
-#if defined (ACE_JAWS_BASELINE)
-static char * const EMPTY_HEADER = "";
-#else
-static const char * const EMPTY_HEADER = "";
-#endif /* ACE_JAWS_BASELINE */
-
-HTTP_Response::HTTP_Response (JAWS_IO &io, HTTP_Request &request)
- : io_(io), request_(request)
-{
-}
-
-HTTP_Response::HTTP_Response (HTTP_Request &request, JAWS_IO &io)
- : io_(io), request_(request)
-{
-}
-
-HTTP_Response::~HTTP_Response (void)
-{
-#if defined (ACE_JAWS_BASELINE)
- if (this->HTTP_HEADER != EMPTY_HEADER)
- delete [] this->HTTP_HEADER;
- // The [] is important. Without it, there was a huge memory leak!
-#endif /* ACE_JAWS_BASELINE */
-}
-
-void
-HTTP_Response::process_request(HTTP_Response &response)
-{
- response.process_request();
-}
-
-void
-HTTP_Response::process_request (void)
-{
- ACE_DEBUG ((LM_DEBUG, " (%t) processing request: %s\n",
- this->request_.status_string ()));
-
- switch (this->request_.status ())
- {
- case HTTP_Status_Code::STATUS_OK :
-
- if (this->request_.cgi ())
- {
- this->cgi_response ();
- }
- else
- {
- this->normal_response ();
- }
-
- break;
-
- default:
- this->error_response (this->request_.status (),
- this->request_.status_string ());
- }
-}
-
-void
-HTTP_Response::error_response (int status_code, const char *log_message)
-{
- ACE_DEBUG ((LM_DEBUG, "(%t) [%s %s %s] %s\n",
- this->request_.method () ? this->request_.method () : "-",
- this->request_.uri () ? this->request_.uri () : "-",
- this->request_.version() ? this->request_.version () : "-",
- log_message ? log_message : "-"));
-
- static char const error_header1[] =
- "%s %d %s\r\n"
- "Server: JAWS/1.0prebeta\r\n"
- "Content-type: text/html\r\n"
- "Content-length: %d\r\n"
- "\r\n"
- "%s"
- ;
-
- static char const error_header2[] =
- "%s %d %s\r\n"
- "Server: JAWS/1.0prebeta\r\n"
- "WWW-Authenticate: Basic realm=\"JAWS_authorization\"\r\n"
- "Content-type: text/html\r\n"
- "Content-length: %d\r\n"
- "\r\n"
- "%s"
- ;
-
- static char const error_message[] =
- "<html>\n"
- "<head><title>Server error message</title></head>\n"
- "<body>\n"
- "<h1>Error %d: %s</h1>\n"
- "The request could not be completed because:\n %s\n"
- "</body>\n"
- "</html>\n"
- ;
-
-
- char *buf;
- char buf1[4 * BUFSIZ];
- char buf2[BUFSIZ];
-
- int length;
- const char *error_header = error_header1;
-
- if (status_code == HTTP_Status_Code::STATUS_UNAUTHORIZED)
- error_header = error_header2;
-
- length =
- ACE_OS::sprintf (buf2, error_message,
- status_code, HTTP_Status_Code::instance ()[status_code],
- log_message);
-
- if (this->request_.version () == 0
- || ACE_OS::strcmp ("HTTP/0.9", this->request_.version ()) == 0)
- buf = buf2;
- else
- {
- length =
- ACE_OS::sprintf (buf1, error_header,
- this->request_.version(), status_code,
- HTTP_Status_Code::instance ()[status_code],
- length,
- buf2);
- buf = buf1;
- }
-
- this->io_.send_error_message (buf, length);
-}
-
-void
-HTTP_Response::normal_response (void)
-{
- const char *hv = 0;;
-
- ACE_DEBUG ((LM_DEBUG, " (%t) %s request for %s [%s], version %s\n",
- request_.method (), request_.uri (), request_.path (),
- (request_.version () ? request_.version () : "HTTP/0.9")));
-
- switch (this->request_.type ())
- {
- case HTTP_Request::GET :
-
- this->build_headers ();
- this->io_.transmit_file (this->request_.path (),
- this->HTTP_HEADER,
- this->HTTP_HEADER_LENGTH,
- this->HTTP_TRAILER,
- this->HTTP_TRAILER_LENGTH);
- break;
-
- case HTTP_Request::HEAD :
- this->build_headers ();
- this->io_.send_confirmation_message (this->HTTP_HEADER,
- this->HTTP_HEADER_LENGTH);
- break;
-
- case HTTP_Request::POST :
- // What to do here?
- // Standard says this is implementation dependent.
- // Examples: annotations, page updates, etc.
- // This may be a good place to stick CORBA stuff,
- // and mobile code.
- this->error_response (HTTP_Status_Code::STATUS_NOT_IMPLEMENTED,
- "Requested method is not implemented.");
- break;
-
- case HTTP_Request::PUT :
- // Only commit to this if we can authenticate it
-
- // if there is no Authentication: header on the incoming request,
- // deny it
- hv = this->request_.headers ()["Authorization"].value ();
- if (hv == 0 || *hv == '\0')
- this->error_response (HTTP_Status_Code::STATUS_UNAUTHORIZED,
- "Unauthorized to use PUT method");
- else if (ACE_OS::strncmp (hv, "Basic ", 6) != 0)
- // ``6'' is the length of the string "Basic "
- this->error_response (HTTP_Status_Code::STATUS_UNAUTHORIZED,
- "Unknown authroization method");
- else
- {
- ACE_Mem_Map mmapfile;
- const char *hvv = hv + 6;
- // Skip past the string "Basic "
- char *buf = new char [ACE_OS::strlen (hv)];
- char *auth
- = HTTP_Helper::HTTP_decode_base64 (ACE_OS::strcpy (buf, hvv));
-
- if (mmapfile.map ("jaws.auth") != -1
- && auth != 0
- && ACE_OS::strstr((const char *) mmapfile.addr (), auth) != 0)
- this->io_.receive_file (this->request_.path (),
- this->request_.data (),
- this->request_.data_length (),
- this->request_.content_length ());
- else
- this->error_response (HTTP_Status_Code::STATUS_UNAUTHORIZED,
- "Invalid authorization attempt");
- delete buf;
- }
- break;
-
- default :
- this->error_response (HTTP_Status_Code::STATUS_NOT_IMPLEMENTED,
- "Requested method is not implemented.");
- }
-}
-
-
-void
-HTTP_Response::cgi_response (void)
-{
- ACE_Process_Options cgi_options;
-
- if (this->request_.cgi_args ())
- cgi_options.command_line ("%s %s",
- this->request_.path (),
- this->request_.cgi_args ());
- else
- cgi_options.command_line ("%s", this->request_.path ());
-
- // Build environment variables
- cgi_options.setenv ("SERVER_SOFTWARE", "%s", "JAWS/1.0");
- cgi_options.setenv ("SERVER_NAME", "%s", "localhost");
- cgi_options.setenv ("GATEWAY_INTERFACE", "%s", "CGI/1.1");
-
- cgi_options.setenv ("SERVER_PROTOCOL", "%s",
- this->request_.version ()
- ? this->request_.version ()
- : "HTTP/0.9");
- cgi_options.setenv ("SERVER_PORT", "%d", 5432);
-
- cgi_options.setenv ("REQUEST_METHOD", "%s", this->request_.method ());
-
- if (this->request_.path_info ())
- {
- cgi_options.setenv ("PATH_INFO", "%s",
- this->request_.path_info ());
- cgi_options.setenv ("PATH_TRANSLATED",
- "%s/%s",
- HTTP_Config::instance ()->document_root (),
- this->request_.path_info ());
- }
-
- cgi_options.setenv ("SCRIPT_NAME",
- "%s",
- this->request_.uri ());
-
- if (this->request_.query_string ())
- cgi_options.setenv ("QUERY_STRING",
- "%s",
- this->request_.query_string ());
-
- if (this->request_.cgi_env ())
- for (size_t i = 0; this->request_.cgi_env ()[i]; i += 2)
- cgi_options.setenv (this->request_.cgi_env ()[i],
- "%s",
- this->request_.cgi_env ()[i+1]);
-
- char buf[BUFSIZ];
- char *p, *q;
- ACE_OS::strcpy (buf, "HTTP_");
- p = q = buf + ACE_OS::strlen (buf);
-
- for (size_t i = 0; i < HTTP_Request::NUM_HEADER_STRINGS; i++)
- {
- int j = 0;
-
- for (char c; (c = this->request_.header_strings (i)[j++]) != '\0'; )
- if (isalpha (c))
- *q++ = toupper (c);
- else if (c == '-')
- *q++ = '_';
- else
- *q++ = c;
-
- *q = '\0';
-
- const char *hv = this->request_.header_values (i);
-
- if (hv && *hv)
- cgi_options.setenv (buf, "%s", hv);
- q = p;
- }
-
- cgi_options.set_handles (this->io_.handle (),
- this->io_.handle (),
- this->io_.handle ());
-
- this->build_headers ();
- this->io_.send_confirmation_message (this->HTTP_HEADER,
- this->HTTP_HEADER_LENGTH);
- // ACE::send (this->io_.handle (),
- // this->HTTP_HEADER, this->HTTP_HEADER_LENGTH);
-
- // Exec the CGI program.
- ACE_Process cgi_process;
- cgi_process.spawn (cgi_options);
- // cgi_process.wait ();
-}
-
-void
-HTTP_Response::build_headers (void)
-{
- // At this point, we should really determine the type of request
- // this is, and build the appropriate header.
-
- // Let's assume this is HTML for now. Unless the request is CGI,
- // then do not include content-* headers.
-
- if (this->request_.version () == 0
- || ACE_OS::strcmp ("HTTP/0.9", this->request_.version ()) == 0)
- {
- HTTP_HEADER = EMPTY_HEADER;
- HTTP_HEADER_LENGTH = 0;
- }
- else
- {
-#if defined (ACE_JAWS_BASELINE)
- HTTP_HEADER = new char[BUFSIZ * 4];
-
- // We assume that at this point everything is OK
- HTTP_HEADER_LENGTH =
- ACE_OS::sprintf (HTTP_HEADER, "%s", "HTTP/1.0 200 OK\r\n");
-
- char date_ptr [40];
- // 40 bytes is the maximum length needed to store the date
-
- if (HTTP_Helper::HTTP_date (date_ptr) != 0)
- HTTP_HEADER_LENGTH +=
- ACE_OS::sprintf (HTTP_HEADER+HTTP_HEADER_LENGTH,
- "Date: %s\r\n", date_ptr);
-
- if (! this->request_.cgi ())
- HTTP_HEADER_LENGTH +=
- ACE_OS::sprintf (HTTP_HEADER+HTTP_HEADER_LENGTH,
- "Content-type: %s\r\n\r\n",
- "text/html");
-#else
- if (! this->request_.cgi ())
- HTTP_HEADER = "HTTP/1.0 200 OK\r\n"
- "Content-type: text/html\r\n\r\n";
- else
- HTTP_HEADER = "HTTP/1.0 200 OK\r\n";
-
- HTTP_HEADER_LENGTH = ACE_OS::strlen (HTTP_HEADER);
-
-#endif /* ACE_JAWS_BASELINE */
- }
-
- HTTP_TRAILER = "";
- HTTP_TRAILER_LENGTH = 0;
-}
diff --git a/apps/JAWS/server/HTTP_Response.h b/apps/JAWS/server/HTTP_Response.h
deleted file mode 100644
index 2bd8d21fbc0..00000000000
--- a/apps/JAWS/server/HTTP_Response.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// HTTP_Response.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#ifndef HTTP_RESPONSE_H
-#define HTTP_RESPONSE_H
-
-class JAWS_IO;
-class HTTP_Request;
-
-class HTTP_Response
- // = TITLE
- // Abstraction for HTTP responses.
- //
- // = DESCRIPTION
- // Provides an encapsulation of responses to HTTP requests.
- // For instance, given an HTTP GET request, it will produce
- // header and body suitable for returning to the client who made
- // the request.
-{
-public:
- HTTP_Response (JAWS_IO &io,
- HTTP_Request &request);
- HTTP_Response (HTTP_Request &request, JAWS_IO &io);
- ~HTTP_Response (void);
-
- void process_request (void);
- // This is called by the handler to initiate a response.
-
- void error_response (int status,
- const char *log_message);
- // This returns an error response for cases where there is a problem
- // with the request, logging the log_message.
-
-private:
-
- void normal_response (void);
- // Called by process_request when the request is a normal request.
-
- void cgi_response (void);
- // Called by process_request when the request is a cgi request.
-
-private:
-
- static void process_request (HTTP_Response &response);
- // static version of process_request, just in case.
-
- void build_headers (void);
- // creates the appropriate header information for responses.
-
-private:
- JAWS_IO &io_;
- HTTP_Request &request_;
- // The IO and Request objects associated with this re
-
-#if defined (ACE_JAWS_BASELINE)
- char *HTTP_HEADER;
-#else
- const char *HTTP_HEADER;
-#endif
- const char *HTTP_TRAILER;
- int HTTP_HEADER_LENGTH;
- int HTTP_TRAILER_LENGTH;
- // HTTP Headers and trailers.
-};
-
-#endif /* HTTP_RESPONSE_H */
diff --git a/apps/JAWS/server/HTTP_Server.cpp b/apps/JAWS/server/HTTP_Server.cpp
deleted file mode 100644
index b262b2ca5c8..00000000000
--- a/apps/JAWS/server/HTTP_Server.cpp
+++ /dev/null
@@ -1,395 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "ace/Get_Opt.h"
-#include "ace/Asynch_Acceptor.h"
-#include "ace/LOCK_SOCK_Acceptor.h"
-#include "ace/Proactor.h"
-
-#include "IO.h"
-#include "HTTP_Server.h"
-
-ACE_RCSID(server, HTTP_Server, "$Id$")
-
-// class is overkill
-class JAWS
-{
-public:
- enum
- {
- POOL = 0,
- PER_REQUEST = 1
- };
-
- enum
- {
- SYNCH = 0,
- ASYNCH = 2
- };
-};
-
-void
-HTTP_Server::parse_args (int argc,
- char *argv[])
-{
- int c;
- int thr_strategy = 0;
- int io_strategy = 0;
- const char *prog = argc > 0 ? argv[0] : "HTTP_Server";
-
- // Set some defaults
- this->port_ = 0;
- this->threads_ = 0;
- this->backlog_ = 0;
- this->throttle_ = 0;
-
- ACE_Get_Opt get_opt (argc, argv, "p:n:t:i:b:");
-
- while ((c = get_opt ()) != -1)
- switch (c)
- {
- case 'p':
- this->port_ = ACE_OS::atoi (get_opt.optarg);
- break;
- case 'n':
- this->threads_ = ACE_OS::atoi (get_opt.optarg);
- break;
- case 't':
- // POOL -> thread pool
- // PER_REQUEST -> thread per request
- // THROTTLE -> thread per request with throttling
- if (ACE_OS::strcmp (get_opt.optarg, "POOL") == 0)
- thr_strategy = JAWS::POOL;
- else if (ACE_OS::strcmp (get_opt.optarg, "PER_REQUEST") == 0)
- {
- thr_strategy = JAWS::PER_REQUEST;
- this->throttle_ = 0;
- }
- else if (ACE_OS::strcmp (get_opt.optarg, "THROTTLE") == 0)
- {
- thr_strategy = JAWS::PER_REQUEST;
- this->throttle_ = 1;
- }
- break;
- case 'f':
- if (ACE_OS::strcmp (get_opt.optarg, "THR_BOUND") == 0)
- {
- // What happened here?
- }
- else if (ACE_OS::strcmp (get_opt.optarg, "THR_DAEMON") == 0)
- {
- }
- else if (ACE_OS::strcmp (get_opt.optarg, "THR_DETACHED") == 0)
- {
- }
- case 'i':
- // SYNCH -> synchronous I/O
- // ASYNCH -> asynchronous I/O
- if (ACE_OS::strcmp (get_opt.optarg, "SYNCH") == 0)
- io_strategy = JAWS::SYNCH;
- else if (ACE_OS::strcmp (get_opt.optarg, "ASYNCH") == 0)
- io_strategy = JAWS::ASYNCH;
- break;
- case 'b':
- this->backlog_ = ACE_OS::atoi (get_opt.optarg);
- break;
- default:
- break;
- }
-
- // No magic numbers.
- if (this->port_ <= 0)
- this->port_ = 5432;
- if (this->threads_ <= 0)
- this->threads_ = 5;
- // Don't use number of threads as default
- if (this->backlog_ <= 0)
- this->backlog_ = this->threads_;
-
- this->strategy_ = thr_strategy | io_strategy;
-
- ACE_UNUSED_ARG (prog);
- ACE_DEBUG ((LM_DEBUG,
- "in HTTP_Server::init, %s port = %d, number of threads = %d\n",
- prog, this->port_, this->threads_));
-}
-
-int
-HTTP_Server::init (int argc, char *argv[])
- // Document this function
-{
- // Ignore signals generated when a connection is broken unexpectedly.
- ACE_Sig_Action sig (ACE_SignalHandler (SIG_IGN), SIGPIPE);
- ACE_UNUSED_ARG (sig);
-
- // Parse arguments which sets the initial state.
- this->parse_args (argc, argv);
-
- // Choose what concurrency strategy to run.
- switch (this->strategy_)
- {
- case (JAWS::POOL | JAWS::ASYNCH) :
- return this->asynch_thread_pool ();
-
- case (JAWS::PER_REQUEST | JAWS::SYNCH) :
- return this->thread_per_request ();
-
- case (JAWS::POOL | JAWS::SYNCH) :
- default:
- return this->synch_thread_pool ();
- }
-
- ACE_NOTREACHED (return 0);
-}
-
-int
-HTTP_Server::fini (void)
-{
- this->tm_.close ();
- return 0;
-}
-
-
-int
-HTTP_Server::synch_thread_pool (void)
-{
- // Main thread opens the acceptor
- if (this->acceptor_.open (ACE_INET_Addr (this->port_), 1,
- PF_INET, this->backlog_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Acceptor::open"), -1);
-
- // Create a pool of threads to handle incoming connections.
- Synch_Thread_Pool_Task t (this->acceptor_, this->tm_, this->threads_);
-
- this->tm_.wait ();
- return 0;
-}
-
-Synch_Thread_Pool_Task::Synch_Thread_Pool_Task (HTTP_Acceptor &acceptor,
- ACE_Thread_Manager &tm,
- int threads)
- : ACE_Task<ACE_NULL_SYNCH> (&tm),
- acceptor_ (acceptor)
-{
- if (this->activate (THR_DETACHED | THR_NEW_LWP, threads) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "Synch_Thread_Pool_Task::open"));
-}
-
-int
-Synch_Thread_Pool_Task::svc (void)
-{
- // Creates a factory of HTTP_Handlers binding to synchronous I/O strategy
- Synch_HTTP_Handler_Factory factory;
-
- for (;;)
- {
- ACE_SOCK_Stream stream;
-
- // Lock in this accept. When it returns, we have a connection.
- if (this->acceptor_.accept (stream) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Acceptor::accept"), -1);
-
- ACE_Message_Block *mb;
- ACE_NEW_RETURN (mb,
- ACE_Message_Block (HTTP_Handler::MAX_REQUEST_SIZE + 1),
- -1);
-
- // Create an HTTP Handler to handle this request
- HTTP_Handler *handler = factory.create_http_handler ();
- handler->open (stream.get_handle (), *mb);
- // Handler is destroyed when the I/O puts the Handler into the
- // done state.
-
- mb->release ();
- ACE_DEBUG ((LM_DEBUG,
- " (%t) in Synch_Thread_Pool_Task::svc, recycling\n"));
- }
-
- ACE_NOTREACHED(return 0);
-}
-
-int
-HTTP_Server::thread_per_request (void)
-{
- int grp_id = -1;
-
- // thread per request
- // Main thread opens the acceptor
- if (this->acceptor_.open (ACE_INET_Addr (this->port_), 1,
- PF_INET, this->backlog_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Acceptor::open"), -1);
-
- ACE_SOCK_Stream stream;
-
- // When we are throttling, this is the amount of time to wait before
- // checking for runnability again.
- const ACE_Time_Value wait_time (0, 10);
-
- for (;;)
- {
- if (this->acceptor_.accept (stream) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Acceptor::accept"), -1);
-
- Thread_Per_Request_Task *t;
- // Pass grp_id as a constructor param instead of into open.
- ACE_NEW_RETURN (t, Thread_Per_Request_Task (stream.get_handle (),
- this->tm_,
- grp_id),
- -1);
-
-
- if (t->open () != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n", "Thread_Per_Request_Task::open"),
- -1);
-
- // Throttling is not allowing too many threads to run away.
- // Should really use some sort of condition variable here.
- if (!this->throttle_)
- continue;
-
- // This works because each task has only one thread.
- while (this->tm_.num_tasks_in_group (grp_id) > this->threads_)
- this->tm_.wait (&wait_time);
- }
-
- ACE_NOTREACHED(return 0);
-}
-
-Thread_Per_Request_Task::Thread_Per_Request_Task (ACE_HANDLE handle,
- ACE_Thread_Manager &tm,
- int &grp_id)
- : ACE_Task<ACE_NULL_SYNCH> (&tm),
- handle_ (handle),
- grp_id_ (grp_id)
-{
-}
-
-
-// HEY! Add a method to the thread_manager to return total number of
-// threads managed in all the tasks.
-
-int
-Thread_Per_Request_Task::open (void *)
-{
- int status = -1;
-
- if (this->grp_id_ == -1)
- status = this->grp_id_ = this->activate (THR_DETACHED | THR_NEW_LWP);
- else
- status = this->activate (THR_DETACHED | THR_NEW_LWP,
- 1, 0, -1, this->grp_id_, 0);
-
- if (status == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "Thread_Per_Request_Task::open"),
- -1);
- return 0;
-}
-
-int
-Thread_Per_Request_Task::svc (void)
-{
- ACE_Message_Block *mb;
- ACE_NEW_RETURN (mb, ACE_Message_Block (HTTP_Handler::MAX_REQUEST_SIZE + 1),
- -1);
- Synch_HTTP_Handler_Factory factory;
- HTTP_Handler *handler = factory.create_http_handler ();
- handler->open (this->handle_, *mb);
- mb->release ();
- return 0;
-}
-
-int
-Thread_Per_Request_Task::close (u_long)
-{
- ACE_DEBUG ((LM_DEBUG,
- " (%t) Thread_Per_Request_Task::svc, dying\n"));
- delete this;
- return 0;
-}
-
-// Understanding the code below requires understanding of the
-// WindowsNT asynchronous completion notification mechanism and the
-// Proactor Pattern.
-
-// (1) The application submits an asynchronous I/O request to the
-// operating system and a special handle with it (Asynchronous
-// Completion Token).
-// (2) The operating system commits to performing the I/O request,
-// while application does its own thing.
-// (3) Operating system finishes the I/O request and places ACT onto
-// the I/O Completion Port, which is a queue of finished
-// asynchronous requests.
-// (4) The application eventually checks to see if the I/O request
-// is done by checking the I/O Completion Port, and retrieves the
-// ACT.
-
-int
-HTTP_Server::asynch_thread_pool (void)
-{
-// This only works on Win32
-#if defined (ACE_WIN32)
- // Create the appropriate acceptor for this concurrency strategy and
- // an appropriate handler for this I/O strategy
- ACE_Asynch_Acceptor<Asynch_HTTP_Handler_Factory> acceptor;
-
- // Tell the acceptor to listen on this->port_, which makes an
- // asynchronous I/O request to the OS.
- if (acceptor.open (ACE_INET_Addr (this->port_),
- HTTP_Handler::MAX_REQUEST_SIZE + 1) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n",
- "ACE_Asynch_Acceptor::open"), -1);
-
- // Create the thread pool.
- // Register threads with the proactor and thread manager.
- Asynch_Thread_Pool_Task t (*ACE_Proactor::instance (),
- this->tm_);
-
- // The proactor threads are waiting on the I/O Completion Port.
-
- // Wait for the threads to finish.
- return this->tm_.wait ();
-#endif /* ACE_WIN32 */
- return -1;
-}
-
-// This only works on Win32
-#if defined (ACE_WIN32)
-
-Asynch_Thread_Pool_Task::Asynch_Thread_Pool_Task (ACE_Proactor &proactor,
- ACE_Thread_Manager &tm)
- : ACE_Task<ACE_NULL_SYNCH> (&tm),
- proactor_ (proactor)
-{
- if (this->activate () == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "Asynch_Thread_Pool_Task::open"));
-}
-
-int
-Asynch_Thread_Pool_Task::svc (void)
-{
- for (;;)
- if (this->proactor_.handle_events () == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Proactor::handle_events"),
- -1);
-
- return 0;
-}
-
-#endif /* ACE_WIN32 */
-
-// Define the factory function.
-ACE_SVC_FACTORY_DEFINE (HTTP_Server)
-
-// Define the object that describes the service.
-ACE_STATIC_SVC_DEFINE (HTTP_Server, "HTTP_Server", ACE_SVC_OBJ_T,
- &ACE_SVC_NAME (HTTP_Server),
- ACE_Service_Type::DELETE_THIS
- | ACE_Service_Type::DELETE_OBJ, 0)
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/server/HTTP_Server.h b/apps/JAWS/server/HTTP_Server.h
deleted file mode 100644
index 8f683297a96..00000000000
--- a/apps/JAWS/server/HTTP_Server.h
+++ /dev/null
@@ -1,141 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// HTTP_Server.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#ifndef HTTP_SERVER_H
-#define HTTP_SERVER_H
-
-#include "ace/Service_Object.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Thread_Manager.h"
-#include "ace/Acceptor.h"
-#include "ace/LOCK_SOCK_Acceptor.h"
-#include "ace/Task_T.h"
-#include "ace/Asynch_IO.h"
-#include "HTTP_Handler.h"
-
-// Forward declaration.
-class ACE_Proactor;
-
-#if defined (ACE_HAS_THREAD_SAFE_ACCEPT)
-typedef ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_NULL_MUTEX> HTTP_SOCK_Acceptor;
-#else
-typedef ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_MUTEX> HTTP_SOCK_Acceptor;
-#endif /* ACE_HAS_THREAD_SAFE_ACCEPT */
-
-typedef HTTP_SOCK_Acceptor HTTP_Acceptor;
-
-class ACE_Svc_Export HTTP_Server : public ACE_Service_Object
- // = TITLE
- // This server is used to create HTTP Handlers for the Web
- // server
- //
- // = DESCRIPTION
-{
-public:
- virtual int init (int argc, char *argv[]);
- // Initialization
-
- virtual int fini (void);
- // Exit hooks
-
-protected:
- virtual int thread_per_request (void);
- // Thread Per Request implementation
-
- virtual int asynch_thread_pool (void);
- // Asynch Thread Pool implementation
-
- virtual int synch_thread_pool (void);
- // Synch Thread Pool implementation
-
-private:
- // James, comment these data members.
- void parse_args (int argc, char **argv);
- int port_;
- int threads_;
- int strategy_;
- int backlog_;
- int throttle_;
- ACE_Thread_Manager tm_;
- HTTP_Acceptor acceptor_;
-};
-
-class Synch_Thread_Pool_Task : public ACE_Task<ACE_NULL_SYNCH>
- // = TITLE
- // Used to implement Synch Thread Pool
- //
- // = DESCRIPTION
- // Describe this and the others below.
-{
-public:
- Synch_Thread_Pool_Task (HTTP_Acceptor &acceptor,
- ACE_Thread_Manager &tm,
- int threads);
- virtual int svc (void);
-
-private:
- HTTP_Acceptor &acceptor_;
-};
-
-class Thread_Per_Request_Task : public ACE_Task<ACE_NULL_SYNCH>
- // = TITLE
- // Used to implement Thread Per Request.
- //
- // = DESCRIPTION
- // Spawns a new thread for every new incoming connection. The
- // handle below is the socket stream of the incoming connection.
-{
-public:
- Thread_Per_Request_Task (ACE_HANDLE handle,
- ACE_Thread_Manager &tm,
- int &grp_id);
- virtual int open (void *args = 0);
- virtual int close (u_long);
- virtual int svc (void);
-
-private:
- ACE_HANDLE handle_;
- int &grp_id_;
-};
-
-// This only works on Win32
-#if defined (ACE_WIN32)
-class Asynch_Thread_Pool_Task : public ACE_Task<ACE_NULL_SYNCH>
- // = TITLE
- // Used to implement Asynch Thread Pool
- //
- // = DESCRIPTION
- // The proactor below utilizes WaitForMultipleObjects.
-{
-public:
- Asynch_Thread_Pool_Task (ACE_Proactor &proactor,
- ACE_Thread_Manager &tm);
- virtual int svc (void);
-
-private:
- ACE_Proactor &proactor_;
-};
-#endif /* ACE_WIN32 */
-
-ACE_SVC_FACTORY_DECLARE (HTTP_Server)
-
-ACE_STATIC_SVC_DECLARE (HTTP_Server)
-
-#endif /* HTTP_SERVER_H */
diff --git a/apps/JAWS/server/IO.cpp b/apps/JAWS/server/IO.cpp
deleted file mode 100644
index abb979ddb1f..00000000000
--- a/apps/JAWS/server/IO.cpp
+++ /dev/null
@@ -1,413 +0,0 @@
-// $Id$
-
-#include "ace/Message_Block.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/Filecache.h"
-#include "IO.h"
-#include "HTTP_Helpers.h"
-
-ACE_RCSID(server, IO, "$Id$")
-
-JAWS_IO::JAWS_IO (void)
- : handle_ (ACE_INVALID_HANDLE),
- handler_ (0)
-{
-}
-
-JAWS_IO::~JAWS_IO (void)
-{
-}
-
-ACE_HANDLE
-JAWS_IO::handle (void)
-{
- return this->handle_;
-}
-
-void
-JAWS_IO::handle (ACE_HANDLE handle)
-{
- this->handle_ = handle;
-}
-
-void
-JAWS_IO::handler (JAWS_IO_Handler *handler)
-{
- this->handler_ = handler;
-}
-
-JAWS_Synch_IO::JAWS_Synch_IO (void)
-{
-}
-
-JAWS_Synch_IO::~JAWS_Synch_IO (void)
-{
- ACE_OS::closesocket (this->handle_);
-}
-
-void
-JAWS_Synch_IO::read (ACE_Message_Block &mb,
- int size)
-{
- ACE_SOCK_Stream stream;
- stream.set_handle (this->handle_);
- int result = stream.recv (mb.wr_ptr (), size);
-
- if (result <= 0)
- this->handler_->read_error ();
- else
- {
- mb.wr_ptr (result);
- this->handler_->read_complete (mb);
- }
-}
-
-void
-JAWS_Synch_IO::receive_file (const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length)
-{
- ACE_Filecache_Handle handle (filename, entire_length);
-
- int result = handle.error ();
-
- if (result == ACE_Filecache_Handle::ACE_SUCCESS)
- {
- ACE_SOCK_Stream stream;
- stream.set_handle (this->handle_);
-
- int bytes_to_memcpy = ACE_MIN (entire_length, initial_data_length);
- ACE_OS::memcpy (handle.address (), initial_data, bytes_to_memcpy);
-
- int bytes_to_read = entire_length - bytes_to_memcpy;
-
- int bytes = stream.recv_n ((char *) handle.address () + initial_data_length,
- bytes_to_read);
- if (bytes == bytes_to_read)
- this->handler_->receive_file_complete ();
- else
- result = -1;
- }
-
- if (result != ACE_Filecache_Handle::ACE_SUCCESS)
- this->handler_->receive_file_error (result);
-}
-
-void
-JAWS_Synch_IO::transmit_file (const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size)
-{
- ACE_Filecache_Handle handle (filename);
-
- int result = handle.error ();
-
- if (result == ACE_Filecache_Handle::ACE_SUCCESS)
- {
-#if defined (ACE_JAWS_BASELINE) || defined (ACE_WIN32)
- ACE_SOCK_Stream stream;
- stream.set_handle (this->handle_);
-
- if ((stream.send_n (header, header_size) == header_size)
- && ((u_long) stream.send_n (handle.address (), handle.size ())
- == handle.size ())
- && (stream.send_n (trailer, trailer_size) == trailer_size))
- this->handler_->transmit_file_complete ();
- else
- result = -1;
-#else
- // Attempting to use writev
- // Is this faster?
- iovec iov[3];
- int iovcnt = 0;
- if (header_size > 0)
- {
- iov[iovcnt].iov_base = ACE_const_cast(char*, header);
- iov[iovcnt].iov_len = header_size;
- iovcnt++;
- }
- if (handle.size () > 0)
- {
- iov[iovcnt].iov_base = ACE_reinterpret_cast(char*,handle.address ());
- iov[iovcnt].iov_len = handle.size ();
- iovcnt++;
- }
- if (trailer_size > 0)
- {
- iov[iovcnt].iov_base = ACE_const_cast(char*, trailer);
- iov[iovcnt].iov_len = trailer_size;
- iovcnt++;
- }
- if (ACE_OS::writev (this->handle_, iov, iovcnt) < 0)
- result = -1;
- else
- this->handler_->transmit_file_complete ();
-#endif /* ACE_JAWS_BASELINE */
- }
-
- if (result != ACE_Filecache_Handle::ACE_SUCCESS)
- this->handler_->transmit_file_error (result);
-}
-
-void
-JAWS_Synch_IO::send_confirmation_message (const char *buffer,
- int length)
-{
- this->send_message (buffer, length);
- this->handler_->confirmation_message_complete ();
-}
-
-void
-JAWS_Synch_IO::send_error_message (const char *buffer,
- int length)
-{
- this->send_message (buffer, length);
- this->handler_->error_message_complete ();
-}
-
-void
-JAWS_Synch_IO::send_message (const char *buffer,
- int length)
-{
- ACE_SOCK_Stream stream;
- stream.set_handle (this->handle_);
- stream.send_n (buffer, length);
-}
-
-// This only works on Win32
-#if defined (ACE_WIN32)
-
-JAWS_Asynch_IO::JAWS_Asynch_IO (void)
-{
-}
-
-JAWS_Asynch_IO::~JAWS_Asynch_IO (void)
-{
- ACE_OS::closesocket (this->handle_);
-}
-
-void
-JAWS_Asynch_IO::read (ACE_Message_Block& mb,
- int size)
-{
- ACE_Asynch_Read_Stream ar;
-
- if (ar.open (*this, this->handle_) == -1
- || ar.read (mb, size) == -1)
- this->handler_->read_error ();
-}
-
-// This method will be called when an asynchronous read completes on a
-// stream.
-
-void
-JAWS_Asynch_IO::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result)
-{
- // This callback is for this->receive_file()
- if (result.act () != 0)
- {
- int code = 0;
- if (result.success () && result.bytes_transferred () != 0)
- {
- if (result.message_block ().length () == result.message_block ().size ())
- code = ACE_Filecache_Handle::ACE_SUCCESS;
- else
- {
- ACE_Asynch_Read_Stream ar;
- if (ar.open (*this, this->handle_) == -1
- || ar.read (result.message_block (),
- result.message_block ().size () - result.message_block ().length (),
- result.act ()) == -1)
- code = -1;
- else
- return;
- }
- }
- else
- code = -1;
-
- if (code == ACE_Filecache_Handle::ACE_SUCCESS)
- this->handler_->receive_file_complete ();
- else
- this->handler_->receive_file_error (code);
-
- delete &result.message_block ();
- delete (ACE_Filecache_Handle *) result.act ();
- }
- else
- {
- // This callback is for this->read()
- if (result.success ()
- && result.bytes_transferred () != 0)
- this->handler_->read_complete (result.message_block ());
- else
- this->handler_->read_error ();
- }
-}
-
-void
-JAWS_Asynch_IO::receive_file (const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length)
-{
- ACE_Message_Block *mb = 0;
- ACE_Filecache_Handle *handle;
-
- ACE_NEW (handle, ACE_Filecache_Handle (filename, entire_length, ACE_NOMAP));
-
- int result = handle->error ();
-
- if (result == ACE_Filecache_Handle::ACE_SUCCESS)
- {
- ACE_OS::memcpy (handle->address (),
- initial_data,
- initial_data_length);
-
- int bytes_to_read = entire_length - initial_data_length;
-
- ACE_NEW (mb, ACE_Message_Block ((char *)handle->address ()
- + initial_data_length, bytes_to_read));
-
- if (mb == 0)
- {
- errno = ENOMEM;
- result = -1;
- }
- else
- {
- ACE_Asynch_Read_Stream ar;
-
- if (ar.open (*this, this->handle_) == -1
- || ar.read (*mb, mb->size () - mb->length (), handle) == -1)
- result = -1;
- }
- }
-
- if (result != ACE_Filecache_Handle::ACE_SUCCESS)
- {
- this->handler_->receive_file_error (result);
- delete mb;
- delete handle;
- }
-}
-
-void
-JAWS_Asynch_IO::transmit_file (const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size)
-{
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer = 0;
- ACE_Filecache_Handle *handle = new ACE_Filecache_Handle (filename, ACE_NOMAP);
-
- int result = handle->error ();
-
- if (result == ACE_Filecache_Handle::ACE_SUCCESS)
- {
- ACE_Message_Block header_mb (header, header_size);
- ACE_Message_Block trailer_mb (trailer, trailer_size);
-
- header_and_trailer = new ACE_Asynch_Transmit_File::Header_And_Trailer
- (&header_mb, header_size, &trailer_mb, trailer_size);
-
- ACE_Asynch_Transmit_File tf;
-
- if (tf.open (*this, this->handle_) == -1
- || tf.transmit_file (handle->handle (), // file handle
- header_and_trailer, // header and trailer data
- 0, // bytes_to_write
- 0, // offset
- 0, // offset_high
- 0, // bytes_per_send
- 0, // flags
- handle // act
- ) == -1)
- result = -1;
- }
-
- if (result != ACE_Filecache_Handle::ACE_SUCCESS)
- {
- this->handler_->transmit_file_error (result);
- delete header_and_trailer;
- delete handle;
- }
-}
-
-
-// This method will be called when an asynchronous transmit file completes.
-void
-JAWS_Asynch_IO::handle_transmit_file (const ACE_Asynch_Transmit_File::Result &result)
-{
- if (result.success ())
- this->handler_->transmit_file_complete ();
- else
- this->handler_->transmit_file_error (-1);
-
- delete result.header_and_trailer ();
- delete (ACE_Filecache_Handle *) result.act ();
-}
-
-void
-JAWS_Asynch_IO::send_confirmation_message (const char *buffer,
- int length)
-{
- this->send_message (buffer, length, CONFORMATION);
-}
-
-void
-JAWS_Asynch_IO::send_error_message (const char *buffer,
- int length)
-{
- this->send_message (buffer, length, ERROR_MESSAGE);
-}
-
-void
-JAWS_Asynch_IO::send_message (const char *buffer,
- int length,
- int act)
-{
- ACE_Message_Block *mb;
- ACE_NEW (mb, ACE_Message_Block (buffer, length));
-
- if (mb == 0)
- {
- this->handler_->error_message_complete ();
- return;
- }
-
- ACE_Asynch_Write_Stream aw;
- if (aw.open (*this, this->handle_) == -1
- || aw.write (*mb, length, (void *) act) == -1)
- {
- mb->release ();
-
- if (act == CONFORMATION)
- this->handler_->confirmation_message_complete ();
- else
- this->handler_->error_message_complete ();
- }
-}
-
-void
-JAWS_Asynch_IO::handle_write_stream (const ACE_Asynch_Write_Stream::Result &result)
-{
- result.message_block ().release ();
-
- if (result.act () == (void *) CONFORMATION)
- this->handler_->confirmation_message_complete ();
- else
- this->handler_->error_message_complete ();
-}
-
-#endif /* ACE_WIN32 */
-
-// #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-// template class ACE_Singleton<JAWS_VFS, ACE_SYNCH_MUTEX>;
-// #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-// #pragma instantiate ACE_Singleton<JAWS_VFS, ACE_SYNCH_MUTEX>
-// #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/server/IO.h b/apps/JAWS/server/IO.h
deleted file mode 100644
index cf22d1ff09f..00000000000
--- a/apps/JAWS/server/IO.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// IO.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#ifndef JAWS_IO_H
-#define JAWS_IO_H
-
-class ACE_Message_Block;
-class JAWS_IO_Handler;
-
-#include "ace/ACE.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Asynch_IO.h"
-
-class JAWS_IO
- // = TITLE
- //
- // This class defines the abstract interface for an I/O class in
- // the context of Web-likes servers
- //
- // = DESCRIPTION
- //
- // An I/O class should have the following interface. Derived
- // classes will define the exactly how the I/O will take place
- // (Asynchronous, Synchronous, Reactive)
-{
-public:
- JAWS_IO (void);
- virtual ~JAWS_IO (void);
- void handler (JAWS_IO_Handler *handler);
- void handle (ACE_HANDLE h);
- ACE_HANDLE handle (void);
-
- // James, please add documentation here.
-
- virtual void read (ACE_Message_Block& mb, int size) = 0;
- // read from the handle size bytes into the message block.
-
- virtual void transmit_file (const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size) = 0;
- // send header, filename, trailer to the handle.
-
- virtual void receive_file (const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length) = 0;
- // read data from the handle and store in filename.
-
- virtual void send_confirmation_message (const char *buffer, int length) = 0;
- // send a confirmation message to the handle.
-
- virtual void send_error_message (const char *buffer, int length) = 0;
- // send an error message to the handle.
-
-protected:
- ACE_HANDLE handle_;
- JAWS_IO_Handler *handler_;
-};
-
-class JAWS_IO_Handler
- // = TITLE
- //
- // This class defines the abstract interface for an I/O handler class in
- // the context of Web-likes servers
- //
- // = DESCRIPTION
-{
-public:
- virtual void read_complete (ACE_Message_Block &data) = 0;
- // This method is called by the IO class when new client data shows
- // up.
-
- virtual void read_error (void) = 0;
- // This method is called by the IO class when there was an error in
- // reading new data from the client.
-
- virtual void transmit_file_complete (void) = 0;
- // This method is called by the IO class when the requested file has
- // been successfully transmitted to the client.
-
- virtual void transmit_file_error (int result) = 0;
- // This method is called by the IO class when there was an error in
- // transmitting the requested file to the client.
-
- virtual void receive_file_complete (void) = 0;
- // This method is called by the IO class when the requested file has
- // been successfully received from the client.
-
- virtual void receive_file_error (int result) = 0;
- // This method is called by the IO class when there was an error in
- // receiving the requested file from the client.
-
- virtual void write_error (void) = 0;
- // This method is called by the IO class when there was an error in
- // writing data to the client.
-
- virtual void confirmation_message_complete (void) = 0;
- // This method is called by the IO class when the confirmation
- // message has been delivered to the client.
-
- virtual void error_message_complete (void) = 0;
- // This method is called by the IO class when the error message has
- // been delivered to the client.
-
-};
-
-class JAWS_Synch_IO : public JAWS_IO
- // = TITLE
- //
- // This class defines the interface for a Synchronous I/O class.
- //
- // = DESCRIPTION
-{
-public:
- JAWS_Synch_IO (void);
-
- ~JAWS_Synch_IO (void);
-
- void read (ACE_Message_Block& mb, int size);
-
- void transmit_file (const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size);
-
- void receive_file (const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length);
-
- void send_confirmation_message (const char *buffer,
- int length);
-
- void send_error_message (const char *buffer,
- int length);
-
-protected:
- virtual void send_message (const char *buffer,
- int length);
-};
-
-// This only works on Win32
-#if defined (ACE_WIN32)
-
-class JAWS_Asynch_IO : public JAWS_IO, public ACE_Handler
- // = TITLE
- //
- // This class defines the interface for a Asynchronous I/O class.
- //
- // = DESCRIPTION
-{
-public:
- JAWS_Asynch_IO (void);
-
- ~JAWS_Asynch_IO (void);
-
- void read (ACE_Message_Block& mb, int size);
-
- void transmit_file (const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size);
-
- void receive_file (const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length);
-
- void send_confirmation_message (const char *buffer,
- int length);
-
- void send_error_message (const char *buffer,
- int length);
-
-protected:
- enum Message_Types
- {
- CONFORMATION,
- ERROR_MESSAGE
- };
-
- virtual void send_message (const char *buffer,
- int length,
- int act);
-
- virtual void handle_read_stream (const ACE_Asynch_Read_Stream::Result &result);
- // This method will be called when an asynchronous read completes on
- // a stream.
-
- virtual void handle_write_stream (const ACE_Asynch_Write_Stream::Result &result);
- // This method will be called when an asynchronous write completes
- // on a stream.
-
- virtual void handle_transmit_file (const ACE_Asynch_Transmit_File::Result &result);
- // This method will be called when an asynchronous transmit file
- // completes.
-};
-
-#endif /* ACE_WIN32 */
-#endif /* JAWS_IO_H */
-
diff --git a/apps/JAWS/server/JAWS_Concurrency.cpp b/apps/JAWS/server/JAWS_Concurrency.cpp
deleted file mode 100644
index 4d7388d6f8a..00000000000
--- a/apps/JAWS/server/JAWS_Concurrency.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-// $Id$
-
-#include "JAWS_Concurrency.h"
-
-ACE_RCSID(server, JAWS_Concurrency, "$Id$")
-
-JAWS_Concurrency_Base::JAWS_Concurrency_Base (void)
-{
-}
-
-int
-JAWS_Concurrency_Base::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
-{
- return this->putq (mb, tv);
-}
-
-int
-JAWS_Concurrency_Base::svc (void)
-{
- int result = 0;
-
- for (;;)
- {
- ACE_Message_Block *mb;
-
- // At this point we could set a timeout value so that the
- // threading strategy can delete a thread if there is nothing to
- // do. Carefully think how to implement it so you don't leave
- // yourself with 0 threads.
-
- result = this->getq (mb);
- if (result == -1 || mb == 0)
- break;
-
- this->put_next (mb);
- }
- return 0;
-}
-
-JAWS_Dispatch_Policy::JAWS_Dispatch_Policy (void)
-{
-}
-
-JAWS_Dispatch_Policy::~JAWS_Dispatch_Policy (void)
-{
-}
-
-JAWS_Dispatcher::JAWS_Dispatcher (JAWS_Dispatch_Policy *policy)
- : policy_(policy)
-{
-}
-
-JAWS_Thread_Pool_Task::JAWS_Thread_Pool_Task (long flags,
- int nthreads,
- int maxthreads)
- : nthreads_ (nthreads),
- maxthreads_ (maxthreads)
-{
- if (this->activate (flags, nthreads) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "JAWS_Thread_Pool_Task::activate"));
-}
-
-JAWS_Thread_Per_Task::JAWS_Thread_Per_Task (long flags, int maxthreads)
- : flags_ (flags),
- maxthreads_ (maxthreads)
-{
-}
-
-int
-JAWS_Thread_Per_Task::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
-{
- const int force_active = 1;
- const int nthreads = 1;
-
- if (this->activate (this->flags_, nthreads, force_active) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "JAWS_Thread_Pool_Task::activate"),
- -1);
-
- this->putq (mb, tv);
-
- return 0;
-}
diff --git a/apps/JAWS/server/JAWS_Concurrency.h b/apps/JAWS/server/JAWS_Concurrency.h
deleted file mode 100644
index 39b4700df72..00000000000
--- a/apps/JAWS/server/JAWS_Concurrency.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_CONCURRENCY_H
-#define JAWS_CONCURRENCY_H
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Task.h"
-#include "IO.h"
-
-class JAWS_Concurrency_Base : public ACE_Task<ACE_SYNCH>
- // = TITLE
- // Base class for different concurrency models
- //
- // = DESCRIPTION
- // Provides a default implementaion of the virtual put() method
- // which calls putq(), but can be overloaded to do something
- // synchronously, such as call put_next().
-
-{
-public:
- JAWS_Concurrency_Base (void);
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
- virtual int svc (void);
-};
-
-class JAWS_Dispatch_Policy
- // = TITLE
- // Policy mechanism for choosing different concurrency models.
- //
- // = DESCRIPTION
- // Given some (unspecified) state, decides what the concurrency
- // model should be. (For now, we always return the same model.)
-{
-public:
- JAWS_Dispatch_Policy (void);
- virtual ~JAWS_Dispatch_Policy (void);
- virtual JAWS_Concurrency_Base * update (void *state = 0) = 0;
-};
-
-class JAWS_Dispatcher
- // = TITLE
- // The class that is responsible to delivering events to the
- // appropriate concurrency mechanism.
- //
- // = DESCRIPTION
- // JAWS_IO_Handler calls into the dispatcher so that the completed
- // IO can find a thread to take care of it.
-{
-public:
- JAWS_Dispatcher (JAWS_Dispatch_Policy *policy);
-
- int dispatch (JAWS_IO_Handler *ioh);
-
-private:
- JAWS_Dispatch_Policy *policy_;
-};
-
-class JAWS_Thread_Pool_Task : public JAWS_Concurrency_Base
- // = TITLE
- // Used to implement Thread Pool Concurrency Strategy
- //
- // = DESCRIPTION
- // This task is created to hold a pool of threads that receive
- // requests through the message queue.
-{
-public:
- JAWS_Thread_Pool_Task (long flags = THR_NEW_LWP,
- int nthreads = 5,
- int maxthreads = 20);
-
-private:
- int nthreads_;
- int maxthreads_;
-};
-
-class JAWS_Thread_Per_Task : public JAWS_Concurrency_Base
- // = TITLE
- // Used to implement Thread Per Request Concurrency Strategy
- //
- // = DESCRIPTION
- // As each new message arrives from the queue, a new thread is
- // spawned to handle it. This is done by overloading put to call
- // activate.
-{
-public:
- JAWS_Thread_Per_Task (long flags = THR_NEW_LWP, int maxthreads = 20);
-
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
-
-private:
- long flags_;
- int maxthreads_;
-};
-
-#endif /* !defined (JAWS_CONCURRENCY_H) */
diff --git a/apps/JAWS/server/JAWS_Pipeline.cpp b/apps/JAWS/server/JAWS_Pipeline.cpp
deleted file mode 100644
index f2ea3ecfbe9..00000000000
--- a/apps/JAWS/server/JAWS_Pipeline.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-// $Id$
-
-#include "JAWS_Pipeline.h"
-
-ACE_RCSID(server, JAWS_Pipeline, "$Id$")
-
-JAWS_Pipeline::JAWS_Pipeline (void)
-{
-}
-
-int
-JAWS_Pipeline::open (void *)
-{
- // Simply call into the virtual svc() method.
- if (this->svc () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "JAWS_Pipeline::svc"),
- -1);
- return 0;
-}
-
-int
-JAWS_Pipeline::close (u_long)
-{
- return 0;
-}
-
-#include "JAWS_Pipeline_Handler.cpp"
diff --git a/apps/JAWS/server/JAWS_Pipeline.h b/apps/JAWS/server/JAWS_Pipeline.h
deleted file mode 100644
index bac2acc6f91..00000000000
--- a/apps/JAWS/server/JAWS_Pipeline.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_PIPELINE_H
-#define JAWS_PIPELINE_H
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Service_Config.h"
-#include "ace/Stream.h"
-#include "ace/Module.h"
-#include "ace/Task.h"
-
-typedef ACE_Stream<ACE_NULL_SYNCH> JAWS_Pipeline_Stream;
-typedef ACE_Module<ACE_NULL_SYNCH> JAWS_Pipeline_Module;
-typedef ACE_Task<ACE_NULL_SYNCH> JAWS_Pipeline_Task;
-
-class JAWS_Pipeline : public JAWS_Pipeline_Task
- // = TITLE
- // Methods that are common to pipeline components
-{
-public:
- JAWS_Pipeline (void);
- // ACE_Task hooks
-
- virtual int open (void * = 0);
- virtual int close (u_long = 0);
-};
-
-#include "JAWS_Pipeline_Handler.h"
-
-#endif /* !defined (JAWS_PIPELINE_H) */
diff --git a/apps/JAWS/server/JAWS_Pipeline_Handler.cpp b/apps/JAWS/server/JAWS_Pipeline_Handler.cpp
deleted file mode 100644
index da5605558a2..00000000000
--- a/apps/JAWS/server/JAWS_Pipeline_Handler.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-// $Id$
-
-#ifndef JAWS_PIPELINE_HANDLER_CPP
-#define JAWS_PIPELINE_HANDLER_CPP
-
-#include "JAWS_Pipeline_Handler.h"
-
-ACE_RCSID(server, JAWS_Pipeline_Handler, "$Id$")
-
-template <class TYPE>
-JAWS_Pipeline_Handler<TYPE>::JAWS_Pipeline_Handler (void)
-{
-}
-
-template <class TYPE> int
-JAWS_Pipeline_Handler<TYPE>::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
-{
- TYPE *data = ACE_dynamic_cast (TYPE *,
- mb->data_block ());
-
- int status = this->handle_input (data, tv);
-
- return (status != -1) ? this->put_next (mb, tv) : -1;
-}
-
-#endif /* !defined (JAWS_PIPELINE_HANDLER_CPP) */
diff --git a/apps/JAWS/server/JAWS_Pipeline_Handler.h b/apps/JAWS/server/JAWS_Pipeline_Handler.h
deleted file mode 100644
index 7e9becb6f5e..00000000000
--- a/apps/JAWS/server/JAWS_Pipeline_Handler.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_PIPELINE_HANDLER_H
-#define JAWS_PIPELINE_HANDLER_H
-
-#include "JAWS_Pipeline.h"
-
-template <class TYPE>
-class JAWS_Pipeline_Handler : public JAWS_Pipeline_Task
- // = TITLE
- // Methods that are common to pipeline components
-{
-public:
- JAWS_Pipeline_Handler (void);
- // ACE_Task hooks
-
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
- // inherited from ACE_Task
-
- virtual int handle_put (TYPE *data, ACE_Time_Value *tv) = 0;
- // Callback hook for specialized data processing
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "JAWS_Pipeline_Handler.cpp"
-#endif
-
-#endif /* !defined (JAWS_PIPELINE_HANDLER_H) */
diff --git a/apps/JAWS/server/Makefile b/apps/JAWS/server/Makefile
deleted file mode 100644
index 1c9878f9226..00000000000
--- a/apps/JAWS/server/Makefile
+++ /dev/null
@@ -1,954 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE Adapter Web Server (JAWS)
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = main
-LIB = libJAWS.a
-SHLIB = libJAWS.$(SOEXT)
-
-FILES = \
- HTTP_Server \
- HTTP_Config \
- HTTP_Handler \
- HTTP_Helpers \
- JAWS_Pipeline \
- JAWS_Concurrency \
- HTTP_Request \
- HTTP_Response \
- Parse_Headers \
- IO
-
-LIBS += $(ACELIB)
-LDLIBS = -lJAWS
-
-PSRC = $(addsuffix .cpp,$(BIN))
-LSRC = $(addsuffix .cpp,$(FILES))
-
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-BUILD = $(VLIB) $(VSHLIB) $(SHLIBA) $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/HTTP_Server.o .obj/HTTP_Server.so .shobj/HTTP_Server.o .shobj/HTTP_Server.so: HTTP_Server.cpp \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Get_Opt.i \
- $(ACE_ROOT)/ace/Asynch_Acceptor.h \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.cpp \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Proactor.h \
- IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- HTTP_Server.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Acceptor.i \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- HTTP_Handler.h HTTP_Request.h Parse_Headers.h HTTP_Response.h
-.obj/HTTP_Config.o .obj/HTTP_Config.so .shobj/HTTP_Config.o .shobj/HTTP_Config.so: HTTP_Config.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- HTTP_Config.h
-.obj/HTTP_Handler.o .obj/HTTP_Handler.so .shobj/HTTP_Handler.o .shobj/HTTP_Handler.so: HTTP_Handler.cpp \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/Filecache.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- HTTP_Handler.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- HTTP_Request.h Parse_Headers.h HTTP_Response.h IO.h HTTP_Helpers.h
-.obj/HTTP_Helpers.o .obj/HTTP_Helpers.so .shobj/HTTP_Helpers.o .shobj/HTTP_Helpers.so: HTTP_Helpers.cpp HTTP_Helpers.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp
-.obj/JAWS_Pipeline.o .obj/JAWS_Pipeline.so .shobj/JAWS_Pipeline.o .shobj/JAWS_Pipeline.so: JAWS_Pipeline.cpp JAWS_Pipeline.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp \
- JAWS_Pipeline_Handler.h JAWS_Pipeline_Handler.cpp
-.obj/JAWS_Concurrency.o .obj/JAWS_Concurrency.so .shobj/JAWS_Concurrency.o .shobj/JAWS_Concurrency.so: JAWS_Concurrency.cpp JAWS_Concurrency.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h
-.obj/HTTP_Request.o .obj/HTTP_Request.so .shobj/HTTP_Request.o .shobj/HTTP_Request.so: HTTP_Request.cpp \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- HTTP_Request.h Parse_Headers.h HTTP_Helpers.h HTTP_Config.h
-.obj/HTTP_Response.o .obj/HTTP_Response.so .shobj/HTTP_Response.o .shobj/HTTP_Response.so: HTTP_Response.cpp \
- $(ACE_ROOT)/ace/Process.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Process.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- HTTP_Response.h HTTP_Request.h Parse_Headers.h HTTP_Helpers.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- HTTP_Config.h IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h
-.obj/Parse_Headers.o .obj/Parse_Headers.so .shobj/Parse_Headers.o .shobj/Parse_Headers.so: Parse_Headers.cpp Parse_Headers.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i
-.obj/IO.o .obj/IO.so .shobj/IO.o .shobj/IO.so: IO.cpp \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Filecache.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- HTTP_Helpers.h
-.obj/main.o .obj/main.so .shobj/main.o .shobj/main.so: main.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Filecache.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- HTTP_Server.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Acceptor.i \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.cpp \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- HTTP_Handler.h HTTP_Request.h Parse_Headers.h HTTP_Response.h IO.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/JAWS/server/Makefile.bor b/apps/JAWS/server/Makefile.bor
deleted file mode 100644
index 037d2b2b8fc..00000000000
--- a/apps/JAWS/server/Makefile.bor
+++ /dev/null
@@ -1,17 +0,0 @@
-
-NAME = main
-OBJFILES = \
- $(OBJDIR)\HTTP_Server.obj \
- $(OBJDIR)\HTTP_Config.obj \
- $(OBJDIR)\HTTP_Handler.obj \
- $(OBJDIR)\HTTP_Helpers.obj \
- $(OBJDIR)\JAWS_Pipeline.obj \
- $(OBJDIR)\JAWS_Concurrency.obj \
- $(OBJDIR)\HTTP_Request.obj \
- $(OBJDIR)\HTTP_Response.obj \
- $(OBJDIR)\Parse_Headers.obj \
- $(OBJDIR)\IO.obj \
- $(OBJDIR)\main.obj
-
-!include <$(ACE_ROOT)\apps\build.bor>
-
diff --git a/apps/JAWS/server/Parse_Headers.cpp b/apps/JAWS/server/Parse_Headers.cpp
deleted file mode 100644
index fb18fc5238c..00000000000
--- a/apps/JAWS/server/Parse_Headers.cpp
+++ /dev/null
@@ -1,356 +0,0 @@
-// $Id$
-
-#include "Parse_Headers.h"
-
-ACE_RCSID(server, Parse_Headers, "$Id$")
-
-// Implementation of class Headers
-
-Headers::Headers (void) : done_(0)
-{
-}
-
-Headers::~Headers (void)
-{
-}
-
-void
-Headers::recognize (const char * const header)
-{
- (void)this->map_[header];
-}
-
-void
-Headers::parse_header_line (char * const header_line)
-{
- char *ptr = header_line;
- char *buf = header_line;
- int offset = 1;
-
- ptr = ACE_OS::strchr (header_line, '\n');
-
- if (ptr > header_line && ptr[-1] == '\r')
- {
- ptr--;
- offset++;
- }
-
- if (ptr == header_line)
- {
- this->done_ = 1;
- return;
- }
-
- *ptr = '\0';
- ptr += offset;
-
- char *value = 0;
- char *header = ACE_OS::strtok_r (buf, ":", &value);
-
- ACE_DEBUG((LM_DEBUG, " (%t) Headers::parse_header_line [%s]\n",
- header ? header : "<empty>"));
-
- if (header != NULL && this->map_.mapped (header))
- {
- while (isspace (*value))
- value++;
-
- this->map_[header] = value;
-
- ACE_DEBUG((LM_DEBUG, " (%t) Headers::parse_header_line <%s>\n",
- value ? value : "<empty>"));
- }
-
- // Write back the unused portion of the input.
- ACE_OS::memmove (header_line, ptr, strlen(ptr) + 1);
-}
-
-int
-Headers::complete_header_line (char *const header_line)
-{
- // Algorithm --
- // Scan for end of line marker.
- // If the next character is linear white space, then unfold the header.
- // Else, if the next character is printable, we have a complete header line.
- // Else, presumably the next character is '\0', so the header is incomplete.
-
- // return -1 if end of line but not complete header line
- // return 0 if no end of line marker
- // return 1 if complete header line
-
- char *ptr = header_line;
- int offset;
-
- if (!this->end_of_line (ptr, offset))
- return 0;
-
- if (ptr == header_line)
- {
- ACE_OS::memmove (ptr, ptr+offset, ACE_OS::strlen (ptr + offset) + 1);
- this->done_ = 1;
- ACE_DEBUG ((LM_DEBUG, " (%t) no more headers\n"));
- return 0;
- }
-
- do
- {
- switch (ptr[offset])
- {
- case ' ':
- case '\t':
- ACE_OS::memmove (ptr, ptr+offset, ACE_OS::strlen (ptr + offset) + 1);
- break;
-
- case '\n':
- case '\r':
- return 1;
-
- default:
- if (isalpha (ptr[offset]))
- return 1;
- else
- return -1;
- }
- }
- while (this->end_of_line (ptr, offset) != 0);
-
- return 0;
-}
-
-int
-Headers::end_of_headers (void) const
-{
- return this->done_;
-}
-
-Headers_Map_Item &
-Headers::operator[] (const char * const header)
-{
- return this->map_[header];
-}
-
-const Headers_Map_Item &
-Headers::operator[] (const char * const header) const
-{
- return this->map_[header];
-}
-
-int
-Headers::end_of_line (char *&line, int &offset) const
-{
- char *old_line = line;
- char *ptr = ACE_OS::strchr (old_line, '\n');
-
- if (ptr == NULL)
- return 0;
-
- line = ptr;
- offset = 1;
-
- if (line > old_line
- && line[-1] == '\r')
- {
- line--;
- offset = 2;
- }
-
- return 1;
-}
-
-
-// Implementation of class Headers_Map
-
-Headers_Map::Headers_Map (void)
- : num_headers_(0)
-{
-}
-
-Headers_Map::~Headers_Map (void)
-{
-}
-
-Headers_Map_Item::Headers_Map_Item (void)
- : header_(0),
- value_(0)
-{
-}
-
-Headers_Map_Item::~Headers_Map_Item (void)
-{
- ACE_OS::free ((void *) this->header_);
- ACE_OS::free ((void *) this->value_);
- this->header_ = this->value_ = 0;
-}
-
-// Headers_Map_Item::operator const char * (void) const
-// {
-// return this->value_ == NULL ? this->no_value_ : this->value_;
-// }
-
-Headers_Map_Item &
-Headers_Map_Item::operator= (char * value)
-{
- ACE_OS::free ((void *) this->value_);
- this->value_ = ACE_OS::strdup (value);
- return *this;
-}
-
-Headers_Map_Item &
-Headers_Map_Item::operator= (const char * value)
-{
- ACE_OS::free ((void *) this->value_);
- this->value_ = ACE_OS::strdup (value);
- return *this;
-}
-
-Headers_Map_Item &
-Headers_Map_Item::operator= (const Headers_Map_Item & mi)
-{
- ACE_OS::free ((void *) this->value_);
- ACE_OS::free ((void *) this->header_);
- this->header_ = ACE_OS::strdup (mi.header_);
- this->value_ = (mi.value_ ? ACE_OS::strdup (mi.value_) : 0);
- return *this;
-}
-
-const char *
-Headers_Map_Item::header (void) const
-{
- return this->header_;
-}
-
-const char *
-Headers_Map_Item::value (void) const
-{
- return this->value_;
-}
-
-Headers_Map_Item &
-Headers_Map::operator[] (const char * const header)
-{
- Headers_Map_Item *item_ptr;
-
- item_ptr = this->find (header);
-
- if (item_ptr == NULL)
- item_ptr = this->place (header);
-
- return *item_ptr;
-}
-
-const Headers_Map_Item &
-Headers_Map::operator[] (const char * const header) const
-{
- Headers_Map_Item *item_ptr;
- Headers_Map *mutable_this = (Headers_Map *)this;
-
- item_ptr = this->find (header);
-
- if (item_ptr == NULL)
- item_ptr = mutable_this->place (header);
-
- return *item_ptr;
-}
-
-int
-Headers_Map::mapped (const char * const header) const
-{
- int result = this->find (header) != NULL;
-
- return result;
-}
-
-Headers_Map_Item *
-Headers_Map::find (const char * const header) const
-{
- Headers_Map *const mutable_this = (Headers_Map *) this;
-
- mutable_this->garbage_.header_ = header;
-#if 0
- Headers_Map_Item *mi_ptr = (Headers_Map_Item *)
- ::bsearch (&this->garbage_,
- this->map_,
- this->num_headers_,
- sizeof (Headers_Map_Item),
- Headers_Map::compare);
-#else
- int i = 0;
- int j = this->num_headers_;
-
- while (i < j-1)
- {
- int k = (i+j)/2;
- if (Headers_Map::compare (&this->garbage_, this->map_+k) < 0)
- j = k;
- else
- i = k;
- }
-
- Headers_Map_Item *mi_ptr = mutable_this->map_ + i;
- if (Headers_Map::compare (&this->garbage_, mi_ptr) != 0)
- mi_ptr = 0;
-#endif
-
- mutable_this->garbage_.header_ = 0;
-
- return mi_ptr;
-}
-
-Headers_Map_Item *
-Headers_Map::place (const char *const header)
-{
- this->garbage_.header_ = ACE_OS::strdup (header);
-
- int i = this->num_headers_++;
- ACE_OS::free ((void *) this->map_[i].header_);
- ACE_OS::free ((void *) this->map_[i].value_);
- this->map_[i].header_ = 0;
- this->map_[i].value_ = 0;
- Headers_Map_Item temp_item;
-
- while (i > 0)
- {
- if (Headers_Map::compare (&this->garbage_,
- &this->map_[i - 1]) > 0)
- break;
-
- this->map_[i].header_ = this->map_[i - 1].header_;
- this->map_[i].value_ = this->map_[i - 1].value_;
- this->map_[i - 1].header_ = 0;
- this->map_[i - 1].value_ = 0;
-
- i--;
- }
-
- this->map_[i].header_ = this->garbage_.header_;
- this->map_[i].value_ = this->garbage_.value_;
-
- this->garbage_.header_ = 0;
-
- return &this->map_[i];
-}
-
-int
-Headers_Map::compare (const void *item1,
- const void *item2)
-{
- Headers_Map_Item *a, *b;
- int result;
-
- a = (Headers_Map_Item *) item1;
- b = (Headers_Map_Item *) item2;
-
- if (a->header_ == 0 || b->header_ == 0)
- {
- if (a->header_ == 0 && b->header_ == 0)
- result = 0;
- else if (a->header_ == 0)
- result = 1;
- else
- result = -1;
- }
- else
- result = ACE_OS::strcasecmp (a->header_, b->header_);
-
- return (result < 0) ? -1 : (result > 0);
-}
diff --git a/apps/JAWS/server/Parse_Headers.h b/apps/JAWS/server/Parse_Headers.h
deleted file mode 100644
index 68274bd442b..00000000000
--- a/apps/JAWS/server/Parse_Headers.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// Parse_Headers.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#ifndef PARSE_HEADERS_H
-#define PARSE_HEADERS_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class Headers_Map_Item
-{
-friend class Headers_Map;
-friend class Headers;
-
-private:
- Headers_Map_Item (void);
- ~Headers_Map_Item (void);
-
- // operator const char * (void) const;
- Headers_Map_Item &operator= (char *);
- Headers_Map_Item &operator= (const char *);
- Headers_Map_Item &operator= (const Headers_Map_Item &);
-
-public:
- const char *header (void) const;
- const char *value (void) const;
-
-private:
- const char *header_;
- const char *value_;
-};
-
-class Headers_Map
- // = TITLE
- // Map textual headings to header values (e.g. "Subject:" maps to
- // "Re: My left foot"
-{
-public:
- Headers_Map (void);
- ~Headers_Map (void);
-
- Headers_Map_Item &operator[] (const char *const header);
- const Headers_Map_Item &operator[] (const char *const header) const;
-
- enum
- {
- MAX_HEADERS = 100
- };
-
- int mapped (const char *const header) const;
-
-private:
- Headers_Map_Item *find (const char *const header) const;
- Headers_Map_Item *place (const char *const header);
- static int compare (const void *item1, const void *item2);
-
-private:
- Headers_Map_Item map_[MAX_HEADERS];
- Headers_Map_Item garbage_;
-
- int num_headers_;
-};
-
-class Headers
- // = TITLE
- // A general mechanism to parse headers of Internet text headers.
- //
- // = DESCRIPTION
- // Allow interesting headers to be inserted and later associated
- // with values. This implementation assumes the parsing of headers
- // will be done from ACE_Message_Blocks.
-{
-public:
- Headers (void);
- ~Headers (void);
-
- void recognize (const char *const header);
-
- void parse_header_line (char *const header_line);
-
- int complete_header_line (char *const header_line);
- // -1 -> end of line but not complete header line
- // 0 -> no end of line marker
- // 1 -> complete header line
-
- int end_of_headers (void) const;
-
- enum
- {
- MAX_HEADER_LINE_LENGTH = 8192
- };
-
- Headers_Map_Item &operator[] (const char *const header);
- const Headers_Map_Item &operator[] (const char *const header) const;
-
-private:
- int end_of_line (char *&line, int &offset) const;
-
-private:
- Headers_Map map_;
- int done_;
-};
-
-#endif /* PARSE_HEADERS_H */
diff --git a/apps/JAWS/server/README b/apps/JAWS/server/README
deleted file mode 100644
index 4fab66d703d..00000000000
--- a/apps/JAWS/server/README
+++ /dev/null
@@ -1,201 +0,0 @@
-# -*- text -*-
-# Hey, Emacs! This is a TEXT file.
-
---------------------------
-README for the JAWS server
---------------------------
-
-This is the README file for the JAWS server.
-
-CONTENTS
-
-1. Compiling
- a. UNIX
- b. Windows NT 4.0
-
-2. Executing
- a. svc.conf parameters
- b. General Info
-
-3. Limitations
-
-4. Acknowledgements
-
-------------
-1. Compiling
-------------
-
-1a. Compiling under UNIX.
-
- Assuming that the environment variable ACE_ROOT is set
-correctly, and that you are using GNU make, compiling should simply
-involve:
-
- $ cd $ACE_ROOT/apps/JAWS/server
- $ make clean
- $ make depend
- $ make
-
-This will produce an executable named ``main''.
-
-1b. Compiling under Windows NT 4.0.
-
- Assuming you are using a recent version of Microsoft
-Visual C++, you can use the jaws.mdp file located in
-$ACE_ROOT/apps/JAWS/server to build JAWS.
-
-
-------------
-2. Executing
-------------
-
-2a. svc.conf parameters.
-
- To run JAWS, simply execute "main". It loads the HTTP server
-from the file named in the ``svc.conf'' file. The ``svc.conf'' file
-itself contains documentation about the load line. It supports the
-following command-line arguments:
-
- -p port Start JAWS on the specified port.
- -n num_threads Use num_threads as the maximum number of threads.
- -f thr_flag Can be used multiple times to set thread
- creation flags:
- THR_BOUND -> bound threads
- THR_DAEMON -> daemonized threads
- THR_DETACHED -> detached threads
- THR_NEW_LWP -> increase concurrency level
- -t thr_strategy Use one of the following strategies:
- POOL -> thread pool
- PER_REQUEST -> thread-per-request
- THROTTLE -> thread-per-request with throttling
- -i io_strategy Use one of the following strategies:
- SYNCH -> synchronous I/O
- ASYNCH -> asynchronous I/O
- -b backlog Backlog value for listen ().
-
-2b. General Information
-
- By default, JAWS will used port 5432 with 5 threads and apply
-the synchronous thread pool strategy. Unless set, the default backlog
-value is equal the value of the maximum number of threads.
-
- JAWS also responds to several environment variables. This is
-a temporary feature which will be replaced by a more general
-configuration file similar to NCSA httpd's. The environment variables
-are:
- JAWS_DOCUMENT_ROOT
- This is the starting point the server will use to look
- for files.
- Default value: the current directory of the server.
-
- JAWS_CGI_PATH
- This is intended to be a ``:'' delimited list of paths
- (similar to your regular PATH environment variable) which
- describes the possible locations for CGI binaries.
- Default value: Any directory named ``cgi-bin''.
-
- JAWS_USER_DIR
- This is the name of the subdirectory in a users home
- directory which contains publicly available WWW documents.
- Default value: ``.www''.
-
- JAWS_DIR_INDEX
- The name of the file which is sent, if present, when the URL
- leads to a directory.
- Default value: ``index.html''.
-
- You may test the server by executing telnet, opening a
-connection to the server machine on the server port. For instance:
-
- $ telnet machinename 5432
- Trying ###.###.###.###...
- Connected to machinename.your.domain
- Escape character is '^]'.
- GET /main.cpp
- // main.cpp
- //...
-
- Note that if you use an HTTP/1.0 get request, then you have
-to hit return twice before the file will be sent. E.g.,
-
- $ telnet machinename 5432
- Trying ###.###.###.###...
- Connected to machinename.your.domain
- Escape character is '^]'.
- GET /main.cpp HTTP/1.0
-
- // main.cpp
- //...
-
- Where applicable, JAWS will perform ``~'' expansion for home
-directories of usernames.
-
-
------------
-3. Features
------------
-
-(a) JAWS supports full HTTP/1.0 responses.
-
-(b) JAWS support CGI scripts on UNIX.
-
-(c) JAWS parses request headers. The mechanism can be used to parse
- headers from a variety of text based protocols (e.g., SNMP and
- NNTP).
-
-(d) Optimized filecaching.
-
---------------
-4. Limitations
---------------
-
-The following are TODO items for JAWS:
-
-status|task
-------+-----------------------
- | (a) JAWS will support HTTP/1.1 eventually, including
- | persistent connections.
- |
- | (b) JAWS can be more aggressive with its threading strategies,
- | such as:
- | (*) parallelize HTTP protocol processing, similar to
- | PHTTPD.
- | (*) prioritize threads to give more important requests
- | more execution time.
- | (*) apply throttling, similar to THTTPD.
- |
- | (c) JAWS will support a general protocol content filtering
- | mechanism which will be used to replace the existing CGI
- | support implementation.
- |
-
-Questions, comments, corrections, suggestions are welcome. Please
-feel free to send me any such correspondence.
-
-James Hu <jxh@cs.wustl.edu>
-
--------------------
-4. Acknowledgements
--------------------
-
- My partners in crime for this endeavor include:
-
- Eastman-Kodak, Rochester N.Y.
- and Object Technologies, Inc. For providing funding for this
- research.
-
- Dr. Douglas Schmidt For being my advisor, and
- convincing my sponsors to fund
- me.
-
- Irfan Pyarali For porting JAWS to NT, and
- for designing and implementing
- the JAWS IO mechanism.
-
- Sumedh Mungee For writing the benchmark
- client, and performing the
- UNIX benchmarks.
-
- Tim Harrison For his comments, advice, and
- help in designing the IO
- mechanism used by JAWS.
diff --git a/apps/JAWS/server/jaws.auth b/apps/JAWS/server/jaws.auth
deleted file mode 100644
index e3c51f7eac8..00000000000
--- a/apps/JAWS/server/jaws.auth
+++ /dev/null
@@ -1,2 +0,0 @@
-jxh:nonsense
-bill:no nonsense
diff --git a/apps/JAWS/server/jaws.dsp b/apps/JAWS/server/jaws.dsp
deleted file mode 100644
index 1c2d3317665..00000000000
--- a/apps/JAWS/server/jaws.dsp
+++ /dev/null
@@ -1,176 +0,0 @@
-# Microsoft Developer Studio Project File - Name="jaws" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=jaws - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "jaws.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "jaws.mak" CFG="jaws - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "jaws - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "jaws - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "jaws - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\Release"
-# PROP BASE Intermediate_Dir ".\Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir ".\Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "ACE_NLOGGING" /D ACE_HAS_SVC_DLL=1 /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 ace.lib /nologo /subsystem:console /machine:I386 /out:".\jaws-r.exe" /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "jaws - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\Debug"
-# PROP BASE Intermediate_Dir ".\Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir ".\Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D ACE_HAS_SVC_DLL=1 /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "jaws - Win32 Release"
-# Name "jaws - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\HTTP_Config.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Helpers.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Request.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Response.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Server.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\main.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Parse_Headers.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# Begin Source File
-
-SOURCE=.\HTTP_Config.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Helpers.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Request.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Response.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Server.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Server_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Parse_Headers.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# End Group
-# Begin Source File
-
-SOURCE=.\HTTP_Server_T.cpp
-# PROP BASE Exclude_From_Build 1
-# PROP Exclude_From_Build 1
-# End Source File
-# End Target
-# End Project
diff --git a/apps/JAWS/server/jaws.dsw b/apps/JAWS/server/jaws.dsw
deleted file mode 100644
index 3ffccf6207c..00000000000
--- a/apps/JAWS/server/jaws.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "jaws"=.\jaws.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/apps/JAWS/server/main.cpp b/apps/JAWS/server/main.cpp
deleted file mode 100644
index 0d04f565a06..00000000000
--- a/apps/JAWS/server/main.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-// $Id$
-
-#include "ace/Service_Config.h"
-#include "ace/Reactor.h"
-#include "ace/Filecache.h"
-
-#include "HTTP_Server.h"
-
-ACE_RCSID(server, main, "$Id$")
-
-ACE_STATIC_SVC_REQUIRE(HTTP_Server)
-
-#ifdef ACE_HAS_SIG_C_FUNC
-extern "C"
-{
-#endif /* ACE_HAS_SIG_C_FUNC */
-
- // call exit() so that static destructors get called
-static void
-handler (int)
-{
- delete (ACE_Filecache *) ACE_Filecache::instance ();
- ACE_OS::exit (0);
-}
-
-#ifdef ACE_HAS_SIG_C_FUNC
-}
-#endif /* ACE_HAS_SIG_C_FUNC */
-
-// This is the driver entry point into JAWS. It is possible to use
-// JAWS as an ACE Service, as well.
-
-int
-main (int argc, char *argv[])
-{
- ACE_Service_Config daemon;
-
- ACE_OS::signal (SIGCHLD, SIG_IGN);
-
- // SigAction not needed since the handler will shutdown the server.
- ACE_OS::signal (SIGINT, (ACE_SignalHandler) handler);
- ACE_OS::signal (SIGUSR2, (ACE_SignalHandler) handler);
-
- if (daemon.open (argc, argv, ACE_DEFAULT_LOGGER_KEY, 0) != 0)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), 1);
-
- // The configured service creates threads, and the
- // server won't exit until the threads die.
-
- // Run forever, performing the configured services until we receive
- // a SIGINT.
-
-
- return 0;
-}
diff --git a/apps/JAWS/server/svc.conf b/apps/JAWS/server/svc.conf
deleted file mode 100644
index 5f34c06aaa1..00000000000
--- a/apps/JAWS/server/svc.conf
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# -p port number
-# -n threads in the server
-# -f thread activation flags
-# = THR_BOUND
-# = THR_DAEMON
-# = THR_DETACHED
-# = THR_NEW_LWP
-# -t threading strategy
-# = POOL -> thread pool
-# = PER_REQUEST -> thread per request
-# = THROTTLE -> thread per request with throttling
-# -i I/O strategy
-# = SYNCH
-# = ASYNCH
-# -b backlog value for listen ()
-#
-#
-# Thread Pool, 20 unbound threads
-# This is the baseline
-static HTTP_Server "HTTP_Server -p 5432 -n 20 -i SYNCH -t POOL -b 50 -f THR_NEW_LWP"
-#
-#
-# Thread Pool, 40 threads
-#static HTTP_Server "HTTP_Server -p 5432 -n 40 -i SYNCH -t POOL -b 50 -f THR_NEW_LWP -f THR_BOUND"
-#
-#
-# Thread-per-request, unlimited number of threads
-#static HTTP_Server "HTTP_Server -p 5432 -i SYNCH -t PER_REQUEST -b 50 -f THR_NEW_LWP"
-#
-#
-# Throttling, 40 threads
-#static HTTP_Server "HTTP_Server -p 5432 -n 40 -i SYNCH -t THROTTLE -b 50 -f THR_NEW_LWP"
-#
-
-#
-# Example for using HTTP_Server as a dynamic service
-#
-# For NT.
-#dynamic HTTP_Server Service_Object * ./jaws.exe:_make_HTTP_Server() "HTTP_Server -p 5432 -n 20 -i SYNCH -t POOL -b 50 -f THR_NEW_LWP"
-
-#
-# For UNIX platforms.
-#dynamic HTTP_Server Service_Object * ./main:_make_HTTP_Server() "HTTP_Server -p 5432 -n 20 -i SYNCH -t POOL -b 50 -f THR_NEW_LWP"
diff --git a/apps/JAWS/server/test.cgi b/apps/JAWS/server/test.cgi
deleted file mode 100755
index 936afcf0d3c..00000000000
--- a/apps/JAWS/server/test.cgi
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-echo Content-type: text/plain
-echo
-
-echo args -- $*
-env
-echo Done!
-exit 0
diff --git a/apps/JAWS/stress_testing/Makefile b/apps/JAWS/stress_testing/Makefile
deleted file mode 100644
index 7894978a63d..00000000000
--- a/apps/JAWS/stress_testing/Makefile
+++ /dev/null
@@ -1,49 +0,0 @@
-#----------------------------------------------------------------------------
-# %W% %G%
-#
-# Makefile for the ACE Adapter Web Server (JAWS) client
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = http_tester benchd
-
-FILES = \
- util \
- connection \
- stats \
- cp
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LOBJ = $(addsuffix .o,$(FILES))
-SHOBJ = $(addsuffix .so,$(FILES))
-
-INCLDIRS += -I../..
-
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-BUILD = $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
diff --git a/apps/JAWS/stress_testing/README b/apps/JAWS/stress_testing/README
deleted file mode 100644
index 0969522d638..00000000000
--- a/apps/JAWS/stress_testing/README
+++ /dev/null
@@ -1,54 +0,0 @@
-http_tester
------------
-
-This is the http_tester suite, an ACE based HTTP benchmarking tool,
-used to evaluate the performance of JAWS and other HTTP servers.
-
-Usage
------
-
-To use the http_tester, you need to use a config file "infile", which
-consists of a list of experiments, one on each line. http_tester logs
-output data in the "outfile".
-
-Usage: http_tester infile outfile
-
-Experiments
------------
-
-Each experiment consists of several space-delimited compulsory
-fields, as follows:
-
-experiment_id (string)
-total_number_of_requests (integer)
-request_rate (float)
-url1 (first URL)
-p1 (probability of requesting the first URL)
-url2 (second URL)
-p2 (probability of requesting the second URL)
-url3 (third URL)
-p3 (probability of requesting the third URL)
-TCP_NODELAY (boolean, 1 == TCP_NODELAY is set)
-SOCKET_RECV_BUFSIZ (usually 65536)
-
-URLS must be of the form:
-
-http://www.cs.wustl.edu:8888/~sumedh/index.html
-
-(the port number is required, im making it optional in the next version).
-
-Please see the sample file "config", for an example.
-
-Output file
------------
-
-The output file consists of the following space delimited fields:
-
-Experiment Id (string)
-Average throughput of connection (float)
-Average latency of connection (float)
-Maximum number of active connections at any given time (int)
-
-
-Sumedh Mungee
-<sumedh@cs.wustl.edu>
diff --git a/apps/JAWS/stress_testing/benchd.cpp b/apps/JAWS/stress_testing/benchd.cpp
deleted file mode 100644
index 2c6dfcbd526..00000000000
--- a/apps/JAWS/stress_testing/benchd.cpp
+++ /dev/null
@@ -1,240 +0,0 @@
-// $Id$
-
-// benchd: Adapted from the "ntalker" example.
-// Sumedh Mungee
-
-#include "ace/Process.h"
-#include "ace/INET_Addr.h"
-#include "ace/SOCK_Dgram_Mcast.h"
-#include "ace/Reactor.h"
-#include "ace/Get_Opt.h"
-#include "ace/ARGV.h"
-
-ACE_RCSID(stress_testing, benchd, "$Id$")
-
-#if defined (ACE_HAS_IP_MULTICAST)
-// network interface to subscribe to
-// this is hardware specific.
-// use netstat (1M) to find whether your interface
-// is le0 or ie0
-
-// Maximum number of arguments supported for a request
-static const int MAX_ARGS = 16;
-// Name of the client benchmarking tool
-static const char *TESTER = "http_tester";
-static int QUIET = 0;
-static const char *INTERFACE = "le0";
-static const char *MCAST_ADDR = ACE_DEFAULT_MULTICAST_ADDR;
-static const u_short UDP_PORT = ACE_DEFAULT_MULTICAST_PORT;
-static const char *OUTPUT_FILE_NAME = "benchd.log";
-static ACE_HANDLE OUTPUT_FILE;
-
-// Handle both multicast and stdin events.
-
-class Handle_Events : public ACE_Event_Handler
-{
-public:
- Handle_Events (u_short udp_port,
- const char *ip_addr,
- const char *interface,
- ACE_Reactor &reactor);
- ~Handle_Events (void);
-
- virtual int handle_input (ACE_HANDLE);
- virtual int handle_close (ACE_HANDLE, ACE_Reactor_Mask);
-
-private:
- int serve (char *buf);
- ACE_SOCK_Dgram_Mcast mcast_;
- ACE_Handle_Set handle_set_;
-};
-
-int
-Handle_Events::handle_input (ACE_HANDLE h)
-{
- char buf[BUFSIZ];
-
- if (h == 0)
- {
- int readresult = ACE_OS::read (h, buf, BUFSIZ);
- if (readresult > 0)
- {
- if (this->mcast_.send (buf, readresult) != readresult)
- {
- ACE_OS::perror ("send error");
- return -1;
- }
- return 0;
- }
- else if (readresult == -1)
- ::perror ("can't read from STDIN");
-
- return -1;
- }
- else
- {
- ACE_INET_Addr remote_addr;
-
- // receive message from multicast group
- int retcode = this->mcast_.recv (buf, sizeof buf, remote_addr);
-
- if (retcode != -1)
- {
- /*
- cout << "received datagram from host " << remote_addr.get_host_name ()
- << " on port " << remote_addr.get_port_number ()
- << " bytes = " << retcode << endl;
- */
- serve (buf);
- return 0;
- }
-
- ACE_OS::perror ("Something amiss.");
- return -1;
- }
-}
-
-int
-Handle_Events::handle_close (ACE_HANDLE h, ACE_Reactor_Mask)
-{
- if (h == 0)
- cout << "STDIN_Events handle removed from reactor." << endl << flush;
- else
- cout << "Mcast_Events handle removed from reactor." << endl << flush;
- return 0;
-}
-
-Handle_Events::~Handle_Events (void)
-{
- // ACE_OS::exit on error (bogus)...
-
- if (this->mcast_.unsubscribe () == -1)
- ACE_OS::perror ("unsubscribe fails"), ACE_OS::exit (1);
-}
-
-Handle_Events::Handle_Events (u_short udp_port,
- const char *ip_addr,
- const char *interface,
- ACE_Reactor &reactor)
-{
- // Create multicast address to listen on.
-
- ACE_INET_Addr sockmc_addr (udp_port, ip_addr);
-
- // subscribe to multicast group.
-
- if (this->mcast_.subscribe (sockmc_addr, 1, interface) == -1)
- ACE_OS::perror ("can't subscribe to multicast group"), ACE_OS::exit (1);
-
- // Disable loopbacks.
- // if (this->mcast_.set_option (IP_MULTICAST_LOOP, 0) == -1 )
- // ACE_OS::perror (" can't disable loopbacks " ), ACE_OS::exit (1);
-
- if (!QUIET) {
- this->handle_set_.set_bit (0);
- }
- this->handle_set_.set_bit (this->mcast_.get_handle ());
-
- // Register callbacks with the ACE_Reactor.
- if (reactor.register_handler (this->handle_set_,
- this,
- ACE_Event_Handler::READ_MASK) == -1)
- ACE_OS::perror ("can't register events"), ACE_OS::exit (1);
-}
-
-
-// This method handles multicast requests..
-// These requests are of the following form:
-// command (arguments)
-
-
-// currently only one is supported (and indeed needed :-)) http_tester
-// arguments
-
-int
-Handle_Events::serve (char *buf)
-{
- ACE_ARGV arguments (buf);
-
- if (ACE_OS::strcmp (arguments[0], TESTER) == 0)
- {
- ACE_Process_Options po;
- ACE_Process p;
-
- po.set_handles (ACE_INVALID_HANDLE, OUTPUT_FILE, OUTPUT_FILE);
- po.command_line (arguments.argv ());
-
- p.spawn (po);
- return 0;
- }
- else
- return -1;
-}
-
-static void
-parse_args (int argc, char *argv[])
-{
- ACE_Get_Opt get_opt (argc, argv, "i:u:q");
-
- int c;
-
- while ((c = get_opt ()) != -1)
- switch (c)
- {
- case 'q':
- QUIET = 1;
- case 'i':
- INTERFACE = get_opt.optarg;
- break;
- case 'u':
- // Usage fallthrough.
- default:
- ACE_DEBUG ((LM_DEBUG, "%s -i interface\n", argv[0]));
- ACE_OS::exit (1);
- }
-}
-
-static sig_atomic_t done = 0;
-
-// Signal handler.
-
-extern "C" void
-handler (int)
-{
- done = 1;
-}
-
-int
-main (int argc, char *argv[])
-{
- ACE_Sig_Action sa ((ACE_SignalHandler) handler, SIGINT);
- ACE_OS::signal (SIGCLD, SIG_IGN);
- ACE_UNUSED_ARG (sa);
-
- parse_args (argc, argv);
-
- OUTPUT_FILE = ACE_OS::open (OUTPUT_FILE_NAME, O_CREAT | O_WRONLY, 0644);
- if (OUTPUT_FILE == 0)
- return 1;
-
- ACE_Reactor reactor;
- Handle_Events handle_events (UDP_PORT, MCAST_ADDR, INTERFACE, reactor);
-
- // main loop
-
- while (!done)
- reactor.handle_events ();
-
- ACE_OS::close (OUTPUT_FILE);
- cout << "\nbenchd done.\n";
- return 0;
-}
-#else
-int
-main (int argc, char *argv[])
-{
- ACE_ERROR ((LM_ERROR, "error: %s must be run on a platform that support IP multicast\n",
- argv[0]));
- return 0;
-}
-#endif /* ACE_HAS_IP_MULTICAST */
diff --git a/apps/JAWS/stress_testing/client.h b/apps/JAWS/stress_testing/client.h
deleted file mode 100644
index 58ef98c7bdf..00000000000
--- a/apps/JAWS/stress_testing/client.h
+++ /dev/null
@@ -1,8 +0,0 @@
-// $Id$
-
-#include "global.h"
-#include "util.h"
-#include "http.h"
-#include "cp.h"
-#include "stats.h"
-
diff --git a/apps/JAWS/stress_testing/config b/apps/JAWS/stress_testing/config
deleted file mode 100644
index 7e730eaef10..00000000000
--- a/apps/JAWS/stress_testing/config
+++ /dev/null
@@ -1,3 +0,0 @@
-1.0 1 1 http://localhost:5432/IO.h 1 a 0 b 0 1 65536
-2.0 1 1 http://localhost:5432/IO.h 1 a 0 b 0 1 65536
-
diff --git a/apps/JAWS/stress_testing/connection.cpp b/apps/JAWS/stress_testing/connection.cpp
deleted file mode 100644
index a243fdd01d5..00000000000
--- a/apps/JAWS/stress_testing/connection.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-// $Id$
-
-#include "connection.h"
-
-ACE_RCSID(stress_testing, connection, "$Id$")
-
-// Make the connection to the WEB server
-
-int connection::connect(char *hostname_opt_port, int tcp_nodelay, int sockbufsiz) {
- if(!hostname_opt_port) return 1;
-
- char *hostname_with_port;
- // Check to see if portnumber is specified in the hostnameport
- // If not, append :80
- if(!ACE_OS::strchr(hostname_opt_port,':')) {
- hostname_with_port = new char[ACE_OS::strlen(hostname_opt_port) + 3];
- ACE_OS::sprintf(hostname_with_port, "%s:%d", hostname_opt_port, 80);
- }
- else {
- hostname_with_port = hostname_opt_port;
- }
-
- // Beyond this point, hostname_with_port is of the form hostname:port
-
- ACE_INET_Addr server_addr(hostname_with_port);
-
- // Connect to server
-
- ACE_SOCK_Connector con;
-
- if(con.connect(stream_, server_addr) == -1) {
- perror("ACE_SOCK_Connector::connect");
- return 1;
- }
-
-
- // tcp_nodelay processing.
-
- // turn off weird ack things
- if(tcp_nodelay) {
- struct protoent *p = ACE_OS::getprotobyname ("tcp");
- int one = 1;
-
- if (p && stream_.set_option (p->p_proto,
- TCP_NODELAY,
- (char *)& one,
- sizeof (one))) {
- perror("tcp_nodelay");
- return 1;
- }
- }
-
- if(sockbufsiz)
- if (stream_.set_option (SOL_SOCKET,
- SO_RCVBUF,
- (char *) &sockbufsiz,
- sizeof sockbufsiz) == -1) {
- perror("socket_queue_size");
- return 1;
- }
-
- return 0;
-}
-
-int connection::read(void *buffer, size_t maxlen, unsigned int timeout_seconds) {
- ACE_UNUSED_ARG (timeout_seconds);
- return stream_.recv(buffer, maxlen);
-}
-
-int connection::write(const void *buffer, size_t maxlen, unsigned int timeout_seconds) {
- ACE_UNUSED_ARG (timeout_seconds);
- return stream_.send(buffer, maxlen);
-}
-
-int connection::write_n(const void *buffer, size_t len, unsigned int timeout_seconds) {
- ACE_UNUSED_ARG (timeout_seconds);
- if(stream_.send_n(buffer, len) == -1)
- ACE_ERROR_RETURN((LM_ERROR, "Write failed for %s", buffer),1);
- return 0;
-}
-
-int connection::read_n(void *buffer, size_t maxlen, unsigned int timeout_seconds) {
- ACE_UNUSED_ARG (timeout_seconds);
- if(stream_.recv_n(buffer, maxlen) == -1)
- ACE_ERROR_RETURN((LM_ERROR, "Read failed.."),1);
- return 1;
-}
-
-int connection::close(void) {
- stream_.close_reader();
- stream_.close_writer();
- stream_.close();
- return 0;
-}
-
-connection::~connection(void) {
- this->close();
-}
diff --git a/apps/JAWS/stress_testing/connection.h b/apps/JAWS/stress_testing/connection.h
deleted file mode 100644
index 5eaa164bc78..00000000000
--- a/apps/JAWS/stress_testing/connection.h
+++ /dev/null
@@ -1,22 +0,0 @@
-// $Id$
-
-#include "global.h"
-
-#ifndef _D_connection
-#define _D_connection
-class connection {
-
-public:
- int connect(char *hostname_opt_port, int tcp_nodelay, int sockbufsiz);
- read(void *buffer, size_t maxlen, unsigned int timeout_seconds = 60);
- write(const void *buffer, size_t maxlen, unsigned int timeout_seconds = 60);
- write_n(const void *buffer, size_t len, unsigned int timeout_seconds = 60);
- read_n(void *buffer, size_t maxlen, unsigned int timeout_seconds = 60);
- int close(void);
- ~connection(void);
-
-private:
- ACE_SOCK_Stream stream_;
- char sockbuf[66000];
-};
-#endif
diff --git a/apps/JAWS/stress_testing/cp.cpp b/apps/JAWS/stress_testing/cp.cpp
deleted file mode 100644
index 4829735aaa8..00000000000
--- a/apps/JAWS/stress_testing/cp.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-// $Id$
-
-#include "cp.h"
-
-ACE_RCSID(stress_testing, cp, "$Id$")
-
-Client_Parameters::Client_Parameters(int i) {
-
- id = i;
-
-}
diff --git a/apps/JAWS/stress_testing/cp.h b/apps/JAWS/stress_testing/cp.h
deleted file mode 100644
index ad2e5ddf31b..00000000000
--- a/apps/JAWS/stress_testing/cp.h
+++ /dev/null
@@ -1,14 +0,0 @@
-// $Id$
-
-#include "util.h"
-#include "stats.h"
-
-class Client_Parameters {
-public:
- Client_Parameters(int);
- URL *url;
- static Stats *stats;
- static int tcp_nodelay;
- static int sockbufsiz;
- int id;
-};
diff --git a/apps/JAWS/stress_testing/global.h b/apps/JAWS/stress_testing/global.h
deleted file mode 100644
index 58a0b24b3e0..00000000000
--- a/apps/JAWS/stress_testing/global.h
+++ /dev/null
@@ -1,31 +0,0 @@
-// $Id$
-
-#include "ace/ACE.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-#include "ace/SOCK_Acceptor.h"
-#include "ace/SOCK_Connector.h"
-#include "ace/Pipe.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/INET_Addr.h"
-#include "ace/Profile_Timer.h"
-#include "ace/Thread.h"
-#include "ace/Thread_Manager.h"
-#include "ace/Service_Config.h"
-
-#include <math.h>
-
-
-
-
-
-
-
-
-
-
-
diff --git a/apps/JAWS/stress_testing/http.h b/apps/JAWS/stress_testing/http.h
deleted file mode 100644
index efce9235e56..00000000000
--- a/apps/JAWS/stress_testing/http.h
+++ /dev/null
@@ -1,16 +0,0 @@
-// $Id$
-
-#include "global.h"
-
-#define CONTENT_ENCODING_HEADER "Content-encoding: "
-#define CONTENT_TYPE_HEADER "Content-type: "
-#define INCOMING_FILE_NAME "/tmp/sumedh.web.inc"
-#define TEMPORARY_FILE_NAME "/tmp/sumedh.web.tmp"
-
-#define ENCODING_TAB "./encoding.tab"
-#define CONTENT_TAB "./content.tab"
-
-int demime(void);
-int decode(char *encoding);
-int view(char *content);
-
diff --git a/apps/JAWS/stress_testing/http_tester.cpp b/apps/JAWS/stress_testing/http_tester.cpp
deleted file mode 100644
index 4cd759baa74..00000000000
--- a/apps/JAWS/stress_testing/http_tester.cpp
+++ /dev/null
@@ -1,171 +0,0 @@
-// $Id$
-
-#include "client.h"
-
-ACE_RCSID(stress_testing, http_tester, "$Id$")
-
-int Client_Parameters::tcp_nodelay;
-int Client_Parameters::sockbufsiz;
-Stats *Client_Parameters::stats;
-
-static void *
-client_thread(void *data)
-{
- Client_Parameters *cp = (Client_Parameters *) data;
- float latency = 0, throughput;
- URL *u = cp->url;
-
- // Check for presence of protocol, hostname and filename.
-
- if(!(u->get_protocol() && u->get_hostname() && u->get_filename())) {
- cerr << "Invalid URL" << endl;
- return NULL;
- }
-
- cp->stats->i_have_started(cp->id);
-
- // Attempt connection
- connection webserver;
-
- if(webserver.connect(u->get_hostname(), cp->tcp_nodelay, cp->sockbufsiz)) return NULL;
- // Send the request now.
-
-
- char request[BUFSIZ];
-
- ACE_Profile_Timer throughput_timer, latency_timer;
- throughput_timer.start();
- latency_timer.start();
- ACE_OS::sprintf(request,"GET /%s HTTP/1.0\r\n\r\n",u->get_filename());
- webserver.write_n(request, strlen(request)) ;
-
- char buffer[BUFSIZ];
- ssize_t num_read = 0, total_read = 0;
- unsigned int first_time = 1;
- for(;;) {
- num_read = webserver.read(buffer, sizeof buffer);
- if(first_time) {
- ACE_Profile_Timer::ACE_Elapsed_Time et;
- latency_timer.stop();
- latency_timer.elapsed_time(et);
- latency = et.real_time;
- first_time = 0;
- }
- if(num_read <= 0)
- break;
- total_read += num_read;
- }
- cp->stats->i_am_done(cp->id);
- ACE_Profile_Timer::ACE_Elapsed_Time et;
- throughput_timer.stop();
- throughput_timer.elapsed_time(et);
- throughput = (8 * total_read/et.real_time) / (1000 * 1000); //pow(10,6) ;
- cp->stats->log(cp->id, throughput, latency);
- webserver.close();
- return NULL;
-}
-
-int driver(char *id, int total_num, float requests_sec, char *url1, float p1, char *url2, float p2, char *url3, float p3, int tcp_nodelay, int sockbufsiz) {
-
- // construct the client parameters packet
-
- Client_Parameters::tcp_nodelay = tcp_nodelay;
- Client_Parameters::sockbufsiz = sockbufsiz;
-
- Client_Parameters::stats = new Stats(total_num);
-
- int missed_deadlines = 0;
- // sleep_time is in microseconds, and requests_sec is per second, hence the pow(10,6)
- float sleep_time = (1/requests_sec) * (1000 * 1000); // pow(10,6);
- float delta = 0;
- srand(time(NULL));
- for(int i = 0; i < total_num; i++) { // i is used as a id for threads
- ACE_Profile_Timer timer;
- if(sleep_time < delta)
- {
- // cerr << "Requested rate is too high, sleep_time == " << sleep_time << ", and delta = " << delta << ", after " << i << " iterations! " << endl;
- missed_deadlines++;
- }
- else
- {
- ACE_Time_Value tv(0, (long int) (sleep_time - delta));
- ACE_OS::sleep(tv);
- timer.start();
- }
- Client_Parameters *cp = new Client_Parameters(i);
-
- double r = ((double)rand()/(double)RAND_MAX);
- // cerr << " choosing between " << url1 << url2 << url3 << " with r == " << r;
- if(r <= p1) cp->url = new URL(url1);
- if( (r > p1) && (r <= (p1 + p2))) cp->url = new URL(url2);
- if( (r > (p1 + p2)) && (r <= p1 + p2 + p3)) cp->url = new URL(url3);
- // cerr << "The URL being requested is " << cp->url->get_filename() << endl;
-
-
- (ACE_Thread_Manager::instance ())->spawn(client_thread, (void *) cp);
- timer.stop();
- ACE_Profile_Timer::ACE_Elapsed_Time et;
- timer.elapsed_time(et);
- delta = ( (0.4 * fabs(et.real_time * (1000 * 1000))) + (0.6 * delta) ); // pow(10,6)
- }
-
- // Join the other threads..
- (ACE_Thread_Manager::instance ())->wait();
- // Now output the data for this test
- cout << id;
- Client_Parameters::stats->output();
- cout << endl;
- if (missed_deadlines != 0)
- {
- cout << "missed deadlines " << missed_deadlines << endl;
- cout << "missed deadlines as a % of total requests: " << (float) missed_deadlines / total_num * 100 << endl;
- }
- return 0;
-}
-
-
-main(int argc, char **argv)
-{
- // This will set the global scale factor if the ACE_SCALE_FACTOR
- // environment variable is set.
- ACE_High_Res_Timer::get_env_global_scale_factor ();
-
- if(argc < 3) {
- cerr << "Usage: " << argv[0] << " infile outfile " << endl;
- cerr << "The input file contains lines, with the following fields: " << endl;
- cerr << "experiment_id total_number_of_requests request_rate url1 p1 url2 p2 url3 p3 TCP_NODELAY SOCKET_RECV_BUFSIZ " << endl;
-
- return 1;
- }
-
- FILE *fp = fopen(argv[1],"r");
- if(fp == NULL) {
- perror("fopen");
- return 2;
- }
- close(1);
- int fd = open(argv[2], O_WRONLY | O_CREAT | O_TRUNC, 0644);
- if(fd == -1) {
- perror("open");
- return 3;
- }
-
-
- int total_num, tcp, sock;
- char *id = new char[BUFSIZ];
- float rate, p1, p2, p3;
- char *url1 = new char[BUFSIZ];
- char *url2 = new char[BUFSIZ];
- char *url3 = new char[BUFSIZ];
-
-
- while(!feof(fp)) {
- fscanf(fp,"%s %d %f %s %f %s %f %s %f %d %d\n", id, &total_num, &rate, url1, &p1, url2, &p2, url3, &p3, &tcp, &sock);
- fprintf(stderr,"----\n");
- fprintf(stderr,"\tNow performing experiment:%s\n\tSending %d requests at %f requests/second\n", id, total_num, rate);
- driver(id, total_num, rate, url1, p1, url2, p2, url3, p3, tcp, sock);
- }
- fclose(fp);
- close(fd);
- return 0;
-}
diff --git a/apps/JAWS/stress_testing/out b/apps/JAWS/stress_testing/out
deleted file mode 100644
index c237b7f38bc..00000000000
--- a/apps/JAWS/stress_testing/out
+++ /dev/null
@@ -1,2 +0,0 @@
-1.0 0.47895 0.00859167 1
-2.0 0.562603 0.00185976 1
diff --git a/apps/JAWS/stress_testing/stats.cpp b/apps/JAWS/stress_testing/stats.cpp
deleted file mode 100644
index 6e71b91c014..00000000000
--- a/apps/JAWS/stress_testing/stats.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-// $Id$
-
-#include "stats.h"
-
-ACE_RCSID(stress_testing, stats, "$Id$")
-
-Stats::Stats(int size) {
- throughput_ = new float[size];
- latency_ = new float[size];
- thread_count_ = size;
- init_fini_ = new Init_Fini_t[2*size];
- for(int i = 0; i < size; i++)
- throughput_[i] = latency_[i] = 0;
-}
-
-void Stats::log(int id, float throughput, float latency) {
- throughput_[id] = throughput;
- latency_[id] = latency;
-}
-
-// Unused for now.
-void Stats::print(char *message) {
-
- ACE_UNUSED_ARG (message);
-
- // char time_buf[64];
- // long ltime;
- // time(&ltime);
-
- // ACE_OS::ctime_r(&ltime, time_buf, sizeof time_buf);
-
- // if(ACE_OS::gettimeofday() == -1) {
- // perror("gettimeofday");
- // }
- // time_buf[strlen(time_buf)-1] = 0;
- // printf("%010ld%09ld \t %s %s\n", tp.tv_sec, tp.tv_usec, time_buf, message);
-}
-
-
-int comp(const void *a, const void *b) {
-
- Init_Fini_t *A = (Init_Fini_t *)a;
- Init_Fini_t *B = (Init_Fini_t *)b;
-
- return (A->timestamp < B->timestamp) ? -1 : (A->timestamp > B->timestamp);
-}
-
-
-void Stats::output() {
- int i;
- float tavg = 0, lavg = 0;
-
- qsort(init_fini_, 2*thread_count_, sizeof(Init_Fini_t), comp);
-
- int max = 0,thread_peak = 0;
-
- for(i = 0; i < 2*thread_count_; i++) {
- // cerr << " " << ((init_fini_[i].type == THREAD_START) ? "START": "END") << " " << init_fini_[i].timestamp.sec() << "." << init_fini_[i].timestamp.usec() << endl;
- if(init_fini_[i].type == THREAD_START) {
- if(++thread_peak > max)
- max = thread_peak;
- }
- else thread_peak--;
- }
- for(i = 0; i < thread_count_; i++) {
- tavg += throughput_[i];
- lavg += latency_[i];
- }
- cout << " " << tavg/thread_count_ << " " << lavg/thread_count_ << " " << max;
-}
-
-
-void Stats::i_have_started(int id) {
-
- init_fini_[2*id].type = THREAD_START;
- init_fini_[2*id].timestamp = ACE_OS::gettimeofday();
-
-}
-
-void Stats::i_am_done(int id) {
-
- init_fini_[(2*id)+1].type = THREAD_END;
-
- init_fini_[(2*id)+1].timestamp = ACE_OS::gettimeofday();
-
-}
-
-
diff --git a/apps/JAWS/stress_testing/stats.h b/apps/JAWS/stress_testing/stats.h
deleted file mode 100644
index b5ef4a4f4a0..00000000000
--- a/apps/JAWS/stress_testing/stats.h
+++ /dev/null
@@ -1,31 +0,0 @@
-// $Id$
-
-#include "global.h"
-
-#ifndef _D_Stats
-#define _D_Stats
-
-#define THREAD_START 42
-#define THREAD_END 43
-
-class Init_Fini_t {
-public:
- int type; // 0 is start, 1 is end
- ACE_Time_Value timestamp;
-};
-
-class Stats {
-public:
- Stats(int);
- void log(int, float, float);
- void i_have_started(int);
- void i_am_done(int);
- void print (char *);
- void output();
-private:
- float *throughput_;
- float *latency_;
- Init_Fini_t *init_fini_; // Array (2n deep) to count peak no. of active threads
- int thread_count_;
-};
-#endif
diff --git a/apps/JAWS/stress_testing/util.cpp b/apps/JAWS/stress_testing/util.cpp
deleted file mode 100644
index 29cd92ef143..00000000000
--- a/apps/JAWS/stress_testing/util.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-// $Id$
-
-#include "util.h"
-
-ACE_RCSID(stress_testing, util, "$Id$")
-
-URL::URL(char *input_buf) {
-
- char *buffer = new char[BUFSIZ];
-
- ACE_OS::strcpy(buffer,input_buf);
- if(buffer == NULL)
- return;
-
- char *temp;
- char *lasts;
-
- if((temp = ACE_OS::strtok_r(buffer,": ",&lasts))) {
- protocol_ = (char *) ACE_OS::malloc(strlen(temp) + 1);
- ACE_OS::strcpy(protocol_, temp);
- }
-
- if((temp = ACE_OS::strtok_r(NULL,"/",&lasts))) {
- hostname_ = (char *) ACE_OS::malloc(strlen(temp) + 1);
- ACE_OS::strcpy(hostname_, temp);
- }
- if((temp = ACE_OS::strtok_r(NULL,"\0",&lasts))) {
- filename_ = (char *) malloc(strlen(temp) + 1);
- ACE_OS::strcpy(filename_, temp);
- }
- else {
- filename_ = (char *) malloc(strlen(INDEX_NAME) + 1);
- ACE_OS::strcpy(filename_,INDEX_NAME);
- }
-}
-
-char *URL::get_protocol(void) {
- return protocol_;
-}
-
-char *URL::get_hostname(void) {
- return hostname_;
-}
-
-char *URL::get_filename(void) {
- return filename_;
-}
-
-
-
-
-
-void cleanup(void) {
- unlink(TEMPORARY_FILE_NAME);
- unlink(INCOMING_FILE_NAME);
-}
-
-void sigint(int) {
- cleanup();
-}
diff --git a/apps/JAWS/stress_testing/util.h b/apps/JAWS/stress_testing/util.h
deleted file mode 100644
index 875a8cd80e0..00000000000
--- a/apps/JAWS/stress_testing/util.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// $Id$
-
-#include "connection.h"
-
-#ifndef _D_URL
-#define _D_URL
-class URL {
-
-public:
-
- URL(char *buffer);
-
- char *get_protocol();
- char *get_hostname();
- char *get_filename();
-
-private:
- char *protocol_;
- char *hostname_;
- char *filename_;
-};
-
-void cleanup(void);
-void sigint(int);
-int copier(connection in);
-
-#define INDEX_NAME "/index.html"
-#define INCOMING_FILE_NAME "/tmp/sumedh.web.inc"
-#define TEMPORARY_FILE_NAME "/tmp/sumedh.web.tmp"
-#endif
-
-
-
-
diff --git a/apps/Makefile b/apps/Makefile
deleted file mode 100644
index bd397b2f6f6..00000000000
--- a/apps/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the apps directory
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README
-
-DIRS = Gateway \
- gperf \
- JAWS
-
-# The following directories aren't compiled by default since haven't
-# finished integrating it into ACE...
-#
-# Orbix-Examples
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU
-
diff --git a/apps/Makefile.am b/apps/Makefile.am
deleted file mode 100644
index 7aba8c167e0..00000000000
--- a/apps/Makefile.am
+++ /dev/null
@@ -1,33 +0,0 @@
-##---------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for the apps directory
-##
-##---------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-## The following directories aren't compiled by default since haven't
-## finished integrating it into ACE...
-##
-## Orbix-Examples
-
-if COMPILE_GPERF
-GPERF_DIR = gperf
-else
-GPERF_DIR =
-endif
-
-SUBDIRS = $(GPERF_DIR)
-## SUBDIRS = Gateway \
-## JAWS \
-## Orbix-Examples \
-## gperf
-
-## EXTRA_DIST = README
diff --git a/apps/Makefile.bor b/apps/Makefile.bor
deleted file mode 100644
index bdc3b24ec5a..00000000000
--- a/apps/Makefile.bor
+++ /dev/null
@@ -1,11 +0,0 @@
-
-!include <$(ACE_ROOT)\include\makeinclude\make_flags.bor>
-
-all:
- cd $(ACE_ROOT)\apps\gperf
- $(MAKE) -f Makefile.bor $(MAKE_FLAGS)
- cd $(ACE_ROOT)\apps\Gateway
- $(MAKE) -f Makefile.bor $(MAKE_FLAGS)
- cd $(ACE_ROOT)\apps\JAWS
- $(MAKE) -f Makefile.bor $(MAKE_FLAGS)
-
diff --git a/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp b/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp
deleted file mode 100644
index c9ba927b11d..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp
+++ /dev/null
@@ -1,147 +0,0 @@
-// $Id$
-
-#include "Input_Handler.h"
-#include "Notification_Receiver_Handler.h"
-
-ACE_RCSID(Consumer, Input_Handler, "$Id$")
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-Input_Handler::~Input_Handler (void)
-{
- ACE_DEBUG ((LM_DEBUG,
- "closing down Input_Handler::~Input_Handler\n"));
- this->handle_close ();
-}
-
-int
-Input_Handler::consumer_initiated_shutdown (void)
-{
- return this->consumer_initiated_shutdown_;
-}
-
-void
-Input_Handler::consumer_initiated_shutdown (int c)
-{
- this->consumer_initiated_shutdown_ = c;
-}
-
-ACE_HANDLE
-Input_Handler::get_handle (void) const
-{
- return this->handle_;
-}
-
-int
-Input_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- ACE_DEBUG ((LM_DEBUG, "closing down Consumer::Input_Handler\n"));
-
- Event_Comm::Notification_Receiver *receiver = this->receiver_handler_->receiver ();
- Event_Comm::Notifier *notifier = this->receiver_handler_->notifier ();
-
- if (this->consumer_initiated_shutdown ())
- {
- // Only try to unsubscribe if the Consumer initiated the
- // shutdown. Otherwise, the Supplier initiated it and it has
- // probably gone away by now!
- TRY
- {
- // Gracefully shutdown the Receiver by removing it from the
- // Notifier's internal map.
-
- notifier->unsubscribe (receiver, "", IT_X);
- }
- CATCHANY
- {
- cerr << IT_X << endl;
- }
- ENDTRY;
- }
-
- // Don't execute a callback here otherwise we'll recurse
- // indefinitely!
- if (ACE_Reactor::instance ()->remove_handler
- (this,
- ACE_Event_Handler::READ_MASK | ACE_Event_Handler::DONT_CALL) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "remove_handler"));
-
- // *Must* be allocated dyanmically!
- ::operator delete (this);
- return 0;
-}
-
-Input_Handler::Input_Handler (Notification_Receiver_Handler *ch,
- ACE_HANDLE handle)
- : receiver_handler_ (ch),
- handle_ (handle),
- consumer_initiated_shutdown_ (0)
-{
- if (ACE_Reactor::instance ()->register_handler
- (this,
- ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR ((LM_ERROR,
- "Input_Handler::Input_Handler\n"));
-}
-
-int
-Input_Handler::handle_input (ACE_HANDLE h)
-{
- char buf[BUFSIZ];
-
- // Read up to BUFSIZ worth of data from ACE_HANDLE h.
- ssize_t n = ACE_OS::read (h, buf, sizeof buf - 1);
-
- if (n > 0)
- {
- // Null terminate the buffer, replacing the '\n' with '\0'.
- if (buf[n - 1] == '\n' || buf[n - 1] == EOF)
- buf[n - 1] = '\0';
- else
- buf[n] = '\0';
- ACE_DEBUG ((LM_DEBUG,
- "notifying for event %s\n",
- buf));
- }
- else
- {
- ACE_OS::strcpy (buf, "quit");
- ACE_DEBUG ((LM_DEBUG,
- "shutting down Input_Handler\n"));
- }
-
- Event_Comm::Notifier *notifier =
- this->receiver_handler_->notifier ();
-
- ACE_ASSERT (notifier != 0);
-
- if (ACE_OS::strcmp (buf, "quit") == 0)
- {
- // Consumer wants to shutdown.
- this->consumer_initiated_shutdown (1);
-
- // Tell the main event loop to shutdown.
- ACE_Reactor::end_event_loop();
- }
- else
- {
- TRY
- {
- Event_Comm::Notification notification;
-
- notification.tag_ = ACE_OS::strdup (buf);
-
- notifier->send_notification (notification, IT_X);
- }
- CATCHANY
- {
- cerr << "Unexpected exception " << IT_X << endl;
- } ENDTRY;
- }
-
- /* NOTREACHED */
- return 0;
-}
-#endif /* ACE_HAS_ORBIX */
diff --git a/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.h b/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.h
deleted file mode 100644
index e8a193e8385..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Input_Handler.h
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#ifndef _INPUT_HANDLER_H
-#define _INPUT_HANDLER_
-
-#include "ace/Service_Config.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-// Forward declaration.
-class Notification_Receiver_Handler;
-
-class Input_Handler : public ACE_Service_Object
-{
- // = TITLE
- // Handles input events generated from a keyboard.
- //
- // = DESCRIPTION
- // This subclass <ACE_Service_Object> receives "unsubscribes"
- // from the <Notifier> when input is received from the keyboard.
-public:
- Input_Handler (Notification_Receiver_Handler *,
- ACE_HANDLE h = 0);
-
- virtual int handle_input (ACE_HANDLE);
- // Dispatch the callback when events occur.
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::NULL_MASK);
- // Close down the handler.
-
- int consumer_initiated_shutdown (void);
- // Report whether the Consumer initiated the shutdown.
-
- void consumer_initiated_shutdown (int);
- // Indicate that the Consumer initiated the shutdown.
-
-private:
- ~Input_Handler (void);
- // Ensure dynamic allocation.
-
- virtual ACE_HANDLE get_handle (void) const;
-
- ACE_HANDLE handle_;
- // ACE_HANDLE where the input comes from.
-
- Notification_Receiver_Handler *receiver_handler_;
- // Pointer to the <Notification_Receiver_Handler> that receives
- // notifications from the <Event_Comm::Notifier>.
-
- int consumer_initiated_shutdown_;
- // Keep track of whether the Consumer initiated the shutdown.
-};
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _INPUT_HANDLER_H */
diff --git a/apps/Orbix-Examples/Event_Comm/Consumer/Makefile b/apps/Orbix-Examples/Event_Comm/Consumer/Makefile
deleted file mode 100644
index 4e7357d4517..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Consumer/Makefile
+++ /dev/null
@@ -1,163 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the Consumer.
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = consumer
-
-FILES = Notification_Receiver_Handler \
- Input_Handler
-
-LSRC = $(addsuffix .cpp,$(FILES)) consumer.cpp
-LOBJ = $(addsuffix .o,$(FILES))
-SHOBJ = $(addsuffix .so,$(FILES))
-
-LDLIBS = $(addprefix $(VSHDIR),$(LOBJ)) ../libsrc/libEvent_Comm.a
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-BUILD = $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-CPPFLAGS += -I../include
-VLDLIBS += -lgen
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-Notification_Receiver_Handler.o: Notification_Receiver_Handler.cpp \
- Notification_Receiver_Handler.h \
- ${ACE_ROOT}ace/CORBA_Handler.h \
- ${ACE_ROOT}ace/Service_Config.h \
- ${ACE_ROOT}ace/Reactor.h \
- ${ACE_ROOT}ace/Handle_Set.h \
- ${ACE_ROOT}ace/sysincludes.h \
- ${ACE_ROOT}ace/config.h \
- ${ACE_ROOT}ace/Handle_Set.i \
- ${ACE_ROOT}ace/Timer_Queue.h \
- ${ACE_ROOT}ace/Event_Handler.h \
- ${ACE_ROOT}ace/Time_Value.h \
- ${ACE_ROOT}ace/Synch.h \
- ${ACE_ROOT}ace/Synch_T.h \
- ${ACE_ROOT}ace/Timer_Queue.i \
- ${ACE_ROOT}ace/Signal.h \
- ${ACE_ROOT}ace/Set.h \
- ${ACE_ROOT}ace/Thread.h \
- ${ACE_ROOT}ace/Token.h \
- ${ACE_ROOT}ace/Reactor.i \
- ${ACE_ROOT}ace/Log_Msg.h \
- ${ACE_ROOT}ace/Log_Record.h \
- ${ACE_ROOT}ace/Log_Priority.h \
- ${ACE_ROOT}ace/Log_Record.i \
- ${ACE_ROOT}ace/Log_Msg.i \
- ${ACE_ROOT}ace/Thread_Specific.h \
- ${ACE_ROOT}ace/Thread_Specific.i \
- ${ACE_ROOT}ace/Service_Object.h \
- ${ACE_ROOT}ace/Shared_Object.h \
- ${ACE_ROOT}ace/Service_Types.h \
- ${ACE_ROOT}ace/Thread_Manager.h \
- ../include/Event_Comm_i.h ../include/Notification_Receiver_i.h \
- ../include/Notifier_i.h \
- ${ACE_ROOT}ace/Map_Manager.h \
- ${ACE_ROOT}ace/SString.h \
- ${ACE_ROOT}ace/SString.i \
- ../include/Event_Comm.hh
-Input_Handler.o: Input_Handler.cpp Input_Handler.h \
- ${ACE_ROOT}ace/Service_Config.h \
- ${ACE_ROOT}ace/Reactor.h \
- ${ACE_ROOT}ace/Handle_Set.h \
- ${ACE_ROOT}ace/sysincludes.h \
- ${ACE_ROOT}ace/config.h \
- ${ACE_ROOT}ace/Handle_Set.i \
- ${ACE_ROOT}ace/Timer_Queue.h \
- ${ACE_ROOT}ace/Event_Handler.h \
- ${ACE_ROOT}ace/Time_Value.h \
- ${ACE_ROOT}ace/Synch.h \
- ${ACE_ROOT}ace/Synch_T.h \
- ${ACE_ROOT}ace/Timer_Queue.i \
- ${ACE_ROOT}ace/Signal.h \
- ${ACE_ROOT}ace/Set.h \
- ${ACE_ROOT}ace/Thread.h \
- ${ACE_ROOT}ace/Token.h \
- ${ACE_ROOT}ace/Reactor.i \
- ${ACE_ROOT}ace/Log_Msg.h \
- ${ACE_ROOT}ace/Log_Record.h \
- ${ACE_ROOT}ace/Log_Priority.h \
- ${ACE_ROOT}ace/Log_Record.i \
- ${ACE_ROOT}ace/Log_Msg.i \
- ${ACE_ROOT}ace/Thread_Specific.h \
- ${ACE_ROOT}ace/Thread_Specific.i \
- ${ACE_ROOT}ace/Service_Object.h \
- ${ACE_ROOT}ace/Shared_Object.h \
- ${ACE_ROOT}ace/Service_Types.h \
- ${ACE_ROOT}ace/Thread_Manager.h \
- Notification_Receiver_Handler.h \
- ${ACE_ROOT}ace/CORBA_Handler.h \
- ../include/Event_Comm_i.h ../include/Notification_Receiver_i.h \
- ../include/Notifier_i.h \
- ${ACE_ROOT}ace/Map_Manager.h \
- ${ACE_ROOT}ace/SString.h \
- ${ACE_ROOT}ace/SString.i \
- ../include/Event_Comm.hh
-consumer.o: consumer.cpp \
- ${ACE_ROOT}ace/Log_Msg.h \
- ${ACE_ROOT}ace/Log_Record.h \
- ${ACE_ROOT}ace/sysincludes.h \
- ${ACE_ROOT}ace/config.h \
- ${ACE_ROOT}ace/Log_Priority.h \
- ${ACE_ROOT}ace/Log_Record.i \
- ${ACE_ROOT}ace/Log_Msg.i \
- ${ACE_ROOT}ace/Thread_Specific.h \
- ${ACE_ROOT}ace/Synch.h \
- ${ACE_ROOT}ace/Time_Value.h \
- ${ACE_ROOT}ace/Synch_T.h \
- ${ACE_ROOT}ace/Thread_Specific.i \
- Notification_Receiver_Handler.h \
- ${ACE_ROOT}ace/CORBA_Handler.h \
- ${ACE_ROOT}ace/Service_Config.h \
- ${ACE_ROOT}ace/Reactor.h \
- ${ACE_ROOT}ace/Handle_Set.h \
- ${ACE_ROOT}ace/Handle_Set.i \
- ${ACE_ROOT}ace/Timer_Queue.h \
- ${ACE_ROOT}ace/Event_Handler.h \
- ${ACE_ROOT}ace/Timer_Queue.i \
- ${ACE_ROOT}ace/Signal.h \
- ${ACE_ROOT}ace/Set.h \
- ${ACE_ROOT}ace/Thread.h \
- ${ACE_ROOT}ace/Token.h \
- ${ACE_ROOT}ace/Reactor.i \
- ${ACE_ROOT}ace/Service_Object.h \
- ${ACE_ROOT}ace/Shared_Object.h \
- ${ACE_ROOT}ace/Service_Types.h \
- ${ACE_ROOT}ace/Thread_Manager.h \
- ../include/Event_Comm_i.h ../include/Notification_Receiver_i.h \
- ../include/Notifier_i.h \
- ${ACE_ROOT}ace/Map_Manager.h \
- ${ACE_ROOT}ace/SString.h \
- ${ACE_ROOT}ace/SString.i \
- ../include/Event_Comm.hh Input_Handler.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp b/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp
deleted file mode 100644
index f74b09ae508..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-// $Id$
-
-#include "Notification_Receiver_Handler.h"
-
-ACE_RCSID(Consumer, Notification_Receiver_Handler, "$Id$")
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-#if defined (ACE_HAS_MT_ORBIX) && (ACE_HAS_MT_ORBIX != 0)
-typedef ACE_MT_CORBA_Handler CORBA_HANDLER;
-#else
-typedef ACE_ST_CORBA_Handler CORBA_HANDLER;
-#endif /* ACE_HAS_MT_ORBIX */
-
-int
-Notification_Receiver_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
-// ACE_ST_CORBA_Handler::remove_service (Event_Comm_Notification_Receiver_IMPL);
-
- if (this->receiver_ != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "closing down Notification_Receiver_Handler\n"));
- CORBA_HANDLER::instance ()->deactivate_service (Event_Comm_Notification_Receiver_IMPL,
- this->receiver_->_marker ());
- CORBA::release (this->receiver_);
- this->receiver_ = 0;
- CORBA::release (this->notifier_);
- this->notifier_ = 0;
- // *Must* be allocated dynamically in order to delete this!
- delete this;
- }
- return 0;
-}
-
-Notification_Receiver_Handler::Notification_Receiver_Handler (int argc, char *argv[])
- : notifier_ (0),
- receiver_ (0)
-{
- const char *server_name =
- Event_Comm_Notification_Receiver_IMPL;
- char buf[BUFSIZ];
- char *receiver_marker = buf;
- char *filtering_criteria;
- char *host;
- char *notifier_marker;
- char *service_location = argv[0];
-
- // First see if we have any environment variables.
- filtering_criteria = ACE_OS::getenv ("FILTERING_CRITERIA");
- host = ACE_OS::getenv ("HOST");
- notifier_marker = ACE_OS::getenv ("NOTIFIER_MARKER");
-
- // Then override these variables with command-line arguments.
- filtering_criteria = argc > 1 ? argv[1] : "";
- host = argc > 2 ? argv[2] : "tango.cs";
- notifier_marker = argc > 3 ? argv[3] : "notifier:" Event_Comm_Notifier_IR;
-
- CORBA::Orbix.setDiagnostics (0);
-
- utsname name;
-
- // Make the marker name be the "/hostname/processid"
- ACE_OS::uname (&name);
- sprintf (buf, "/%s/%d", name.nodename, ACE_OS::getpid ());
-
- CORBA_HANDLER::instance ()->activate_service (Event_Comm_Notification_Receiver_IMPL,
- receiver_marker,
- service_location);
-
- // Create the receiver object.
- ACE_NEW (this->receiver_,
- TIE_Event_Comm_Notification_Receiver (Notification_Receiver_i)
- (new Notification_Receiver_i));
-
- this->receiver_->_marker (receiver_marker);
-
- ACE_ASSERT (this->receiver_);
-
- TRY
- {
- // Get a binding to the notifier.
- this->notifier_ = Event_Comm::Notifier::_bind (notifier_marker, host, IT_X);
-
- if (this->notifier_ != CORBA::OBJECT_NIL)
- // Subscribe ourselves with the notifier's broker.
- this->notifier_->subscribe (this->receiver_,
- filtering_criteria, IT_X);
- }
- CATCHANY
- {
- cerr << "Unexpected exception " << IT_X << endl;
- ACE_OS::exit (1);
- }
- ENDTRY;
- // Print out context.
-
- receiver_marker = (char *) this->receiver_->_marker ();
- CORBA::BOA::activationMode mode = CORBA::Orbix.myActivationMode ();
- ACE_DEBUG ((LM_DEBUG,
- "starting up a %spersistent server in mode %d with marker name %s\n",
- mode == CORBA::BOA::persistentActivationMode ? "" : "non-",
- mode,
- receiver_marker));
-}
-
-Event_Comm::Notification_Receiver *
-Notification_Receiver_Handler::receiver (void)
-{
- return this->receiver_;
-}
-
-Event_Comm::Notifier *
-Notification_Receiver_Handler::notifier (void)
-{
- return this->notifier_;
-}
-
-// Destroy a Receiver target object.
-
-Notification_Receiver_Handler::~Notification_Receiver_Handler (void)
-{
- this->handle_close (-1,
- ACE_Event_Handler::ALL_EVENTS_MASK);
-}
-
-#endif /* ACE_HAS_ORBIX */
diff --git a/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.h b/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.h
deleted file mode 100644
index e5595339158..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Notifier_Receiver_Handler.h
-//
-// = DESCRIPTION
-// Subclass of Corba_Handler that sets up the Notification_Receiver handler
-// for use with the ACE ACE_Reactor.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#ifndef _NOTIFICATION_RECEIVER_HANDLER_H
-#define _NOTIFICATION_RECEIVER_HANDLER_H
-
-#include "ace/CORBA_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "Event_Comm_i.h"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-class Notification_Receiver_Handler
-{
- // = TITLE
- // Subclass of Corba_Handler that sets up the Notification
- // Receiver handler for use with the ACE ACE_Reactor.
- //
- // = DESCRIPTION
- // Note that this class doesn't inherit from ACE_ST_CORBA_Handler
- // (unlike the Supplier's Notifier_Handler class). Instead, it
- // uses an alternative interface that can be called directly.
-public:
- Notification_Receiver_Handler (int argc, char *argv[]);
-
- Event_Comm::Notification_Receiver *receiver (void);
- Event_Comm::Notifier *notifier (void);
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::NULL_MASK);
- // Close down the handler.
-
-private:
- ~Notification_Receiver_Handler (void);
- // Ensure dynamic allocation.
-
- Event_Comm::Notification_Receiver *receiver_;
- // Pointer to an IDL <Notification_Receiver> proxy object.
-
- Event_Comm::Notifier *notifier_;
- // Pointer to an IDL <Notifier> proxy object.
-};
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _NOTIFICATION_RECEIVER_HANDLER_H */
diff --git a/apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp b/apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp
deleted file mode 100644
index ef0ffe1be82..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-// $Id$
-
-#include "Notification_Receiver_Handler.h"
-#include "Input_Handler.h"
-
-ACE_RCSID(Consumer, consumer, "$Id$")
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-class Consumer : public ACE_Event_Handler
-{
- // = TITLE
- // Consumer driver for the Orbix Notification example.
-public:
- Consumer (int argc, char *argv[]);
- ~Consumer (void);
-
- void run (void);
- // Execute the consumer;
-
-private:
- virtual int handle_signal (int signum, siginfo_t *, ucontext_t *);
-
- virtual int handle_close (ACE_HANDLE, ACE_Reactor_Mask);
-
- Input_Handler *ih_;
- // Handler for keyboard input.
-
- Notification_Receiver_Handler *nrh_;
- // Handler for CORBA Consumer.
-
- ACE_Service_Config daemon_;
- // ACE server event-loop mechanism.
-};
-
-int
-Consumer::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- ACE_DEBUG ((LM_DEBUG,
- "closing down Consumer\n"));
- return 0;
-}
-
-int
-Consumer::handle_signal (int signum, siginfo_t *, ucontext_t *)
-{
- // Indicate that the consumer initiated the shutdown.
- this->ih_->consumer_initiated_shutdown (1);
-
- // Shut down the event loop.
- ACE_Reactor::end_event_loop ();
- return 0;
-}
-
-// Run the event loop until someone calls
-// calls ACE_Reactor::end_event_loop().
-
-void
-Consumer::run (void)
-{
- if (ACE_Reactor::run_event_loop () == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "run_reactor_event_loop"));
-}
-
-Consumer::Consumer (int argc, char *argv[])
- : ih_ (0),
- nrh_ (0)
-{
- // Initialize the server.
- if (this->daemon_.open (argc, argv) == -1)
- {
- if (errno == ENOENT) // There's no svc.conf file, so use static linking...
- {
- ACE_DEBUG ((LM_DEBUG,
- "no config file, using static binding\n"));
- // The constructor registers the handlers...
- ACE_NEW (this->nrh_,
- Notification_Receiver_Handler (argc, argv));
- ACE_NEW (this->ih_,
- Input_Handler (this->nrh_));
- }
- else
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- "open",
- 1));
- }
-
- if (ACE_Reactor::instance ()->register_handler (SIGINT, this) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "register_handler"));
-}
-
-Consumer::~Consumer (void)
-{
- // Free up the handlers if they were statically bound.
- this->ih_->handle_close ();
- this->nrh_->handle_close ();
-}
-
-int
-main (int argc, char *argv[])
-{
- // Initialize the supplier and consumer object references.
- Consumer consumer (argc, argv);
-
- // Loop forever handling events.
- consumer.run ();
-
- return 0;
-}
-#else /* !defined ACE_HAS_ORBIX */
-int
-main (int argc, char *argv[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "you must have Orbix to run application %s\n",
- argv[0]),
- 1);
-}
-#endif /* ACE_HAS_ORBIX */
diff --git a/apps/Orbix-Examples/Event_Comm/Makefile b/apps/Orbix-Examples/Event_Comm/Makefile
deleted file mode 100644
index fad4487725b..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the consumer/supplier notification application
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README
-
-DIRS = libsrc \
- Consumer \
- Supplier
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU
-
diff --git a/apps/Orbix-Examples/Event_Comm/README b/apps/Orbix-Examples/Event_Comm/README
deleted file mode 100644
index 1bd7b5d8c45..00000000000
--- a/apps/Orbix-Examples/Event_Comm/README
+++ /dev/null
@@ -1,109 +0,0 @@
-OVERVIEW
-
-This directory contains source code for a prototype CORBA-based
-distributed notification mechanism. This mechanism implements a
-"publish/subscribe" communication protocol. It allows Suppliers to
-pass messages containing object references to a dynamically managed
-group of Consumers. This is similar to the OMG COSS Event Service,
-though not as sophisticated.
-
-This example also illustrates how to integrate Orbix with the ACE
-libraries.
-
-DIRECTORY STRUCTURE
-
-There are 4 directories:
-
-Supplier
-
- -- The supplier test driver, which must be started
- first. It has an instance of an IDL Notifier
- object. This object accepts subscriptions from Consumers
- and forwards events sent to it either via Consumers or
- via its standard input.
-
- The Supplier must be registered with the ORB using the
- following command:
-
- % putit Event_Comm_Notifier <pathname>/supplier
-
-Consumer
-
- -- The consumer test driver, which must be started
- after the Supplier. It has an instance of an
- IDL Notification_Receiver object. This object is
- used to receive notifications from the Notifier object
- residing in the Supplier. When the Consumer starts up it
- gets an object reference to the Supplier's Notifier.
- It then subscribes its Notification_Receiver object with
- the Supplier's Notifier by passing an object reference.
-
- In addition to passing an object reference to a
- Notification_Receiver, the Consumer also may specify a
- filtering criteria, which is a regular expression. If
- the filtering criteria is the string "" then the Notifier
- will send all Notifications to the Consumer (i.e., "" is
- treated as a "wildcard"). Otherwise, the filtering
- criteria is considered to be a regular expression,
- and only those Notification tags that match the regular
- expression will be forwarded to the Consumer. The regular
- expressions are those used by ed(1) (see the regexp(5)
- manual page for more info).
-
- The Consumer must be registered with the ORB
- using the following command:
-
- % putit Event_Comm_Notification_Receiver <pathname>/consumer
-
-include
-
- -- This contains links to the appropriate header
- files.
-
-libsrc
-
- -- This contains the IDL files and IDL implementation
- classes that support the distributed notification scheme.
- These are shared by the Consumer and Supplier.
-
-RUNNING THE TESTS
-
-To run the tests do the following:
-
-1. Compile everything.
-
-2. Start up the Orbix daemon (orbixd) if it's not already
- running.
-
-3. Register the Consumer (i.e., Notification_Receiver) and Supplier
- (i.e., Notifier) with the Orbix daemon (orbixd), as described
- above.
-
-4. Start the Supplier/supplier executable.
-
-5. Start up as many copies of the Consumer/consumer as you'd like.
- Typically, I run each one in its own window. If you'd like to use
- different machines make sure that you start up the Orbix daemon on
- each one and register the Consumer.
-
-6. Once the Consumers have subscribed you can send them info by typing
- commands in the Supplier window. These will be sent to all the
- Consumers who have subscribed. Likewise, you can send messages
- from a Consumer to all other Consumers by typing messages in a
- Consumer window.
-
- Note that if you type "quit", ^D, or ^C in a Consumer window the
- Consumer will unsubscribe and shutdown its handlers and exit.
- Likewise, if you type "quit", ^D, or ^C in the Supplier window
- the Supplier will disconnect all of its Consumers and exit.
- When a Consumer is disconnected from its Supplier it automatically
- shuts itself down.
-
-7. When you want to terminate a Consumer or a Supplier, just type ^C
- and the process will shut down gracefully.
-
-Please let me know if there are any questions.
-
- Doug
-
-schmidt@cs.wustl.edu
diff --git a/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp b/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp
deleted file mode 100644
index dc2c89642d7..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-// $Id$
-
-#include "Event_Comm.hh"
-#include "Notifier_Handler.h"
-#include "Input_Handler.h"
-
-ACE_RCSID(Supplier, Input_Handler, "$Id$")
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-int
-Input_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- ACE_DEBUG ((LM_DEBUG,
- "closing down Supplier::Input_Handler\n"));
-
- Event_Comm::Notifier *notifier = this->notifier_->notifier ();
- ACE_ASSERT (notifier != 0);
-
- ACE_OS::fclose (this->fp_);
-
- TRY
- {
- // Disconnect all the consumers gracefully.
- notifier->send_disconnect ("quit", IT_X);
- }
- CATCHANY
- {
- cerr << IT_X << endl;
- }
- ENDTRY;
-
- // Don't execute a callback here otherwise we'll recurse
- // indefinitely!
- if (ACE_Reactor::instance ()->remove_handler
- (this,
- ACE_Event_Handler::READ_MASK | ACE_Event_Handler::DONT_CALL) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "remove_handler"));
-
- // *Must* be allocated dyanmically!
- ::operator delete ((void *) this);
- return 0;
-}
-
-Input_Handler::Input_Handler (Notifier_Handler *notifier,
- ACE_HANDLE handle) // Use stdin by default.
- : notifier_ (notifier),
- handle_ (handle)
-{
- // Register ourselves with the ACE_Reactor so that input events
- // cause our handle_input() method to be dispatched automatically.
-
- if (ACE_Reactor::instance ()->register_handler
- (this, ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "register_handler"));
-
- this->fp_ = ACE_OS::fdopen (handle, "r");
-
- if (this->fp_ == 0)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "fdopen"));
-}
-
-Input_Handler::~Input_Handler (void)
-{
- ACE_DEBUG ((LM_DEBUG,
- "closing down Input_Handler::~Input_Handler\n"));
- this->handle_close ();
-}
-
-ACE_HANDLE
-Input_Handler::get_handle (void) const
-{
- return this->handle_;
-}
-
-// Frame input events and notify <Consumers>.
-
-int
-Input_Handler::handle_input (ACE_HANDLE h)
-{
- char buf[BUFSIZ];
-
- // Read up to BUFSIZ worth of data from ACE_HANDLE h.
-
- if (ACE_OS::fgets (buf, sizeof buf - 1, this->fp_) == 0)
- {
- ACE_OS::strcpy (buf, "quit");
- ACE_DEBUG ((LM_DEBUG,
- "shutting down Input_Handler\n"));
- }
- else
- {
- size_t n = ACE_OS::strlen (buf);
-
- // Null terminate the buffer, replacing the '\n' with '\0'.
- if (buf[n - 1] == '\n' || buf[n - 1] == EOF)
- buf[n - 1] = '\0';
- else
- buf[n] = '\0';
- ACE_DEBUG ((LM_DEBUG, "notifying for event %s\n", buf));
- }
-
- Event_Comm::Notifier *notifier = this->notifier_->notifier ();
- ACE_ASSERT (notifier != 0);
-
- if (ACE_OS::strcmp (buf, "quit") == 0)
- // Tell the main event loop to shutdown.
- ACE_Reactor::end_event_loop();
- else
- {
- // Use the notifier to notify Consumers.
- TRY
- {
- Event_Comm::Notification notification;
-
- // Pass the buf over in the tag field.
- notification.tag_ = ACE_OS::strdup (buf);
-
- // This is where the "any" value goes or the object
- // reference... notification.value_ = ...
-
- // Forward <Notification> to all <Notification_Receivers>.
- notifier->send_notification (notification, IT_X);
- }
- CATCHANY
- {
- cerr << "unexpected exception " << IT_X << endl;
- }
- ENDTRY;
- }
- return 0;
-}
-
-#endif /* ACE_HAS_ORBIX */
diff --git a/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.h b/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.h
deleted file mode 100644
index 813a8b7af36..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Input_Handler.h
-//
-// = DESCRIPTION
-// Handle input from the keyboard.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#ifndef _INPUT_HANDLER_H
-#define _INPUT_HANDLER_H
-
-#include "ace/Service_Config.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-// Forward declaration.
-class Notifier_Handler;
-
-class Input_Handler : public ACE_Service_Object
-{
- // = TITLE
- // Handles input events generated from a keyboard.
- //
- // = DESCRIPTION
- // The events are currently framed and forwarded to
- // all Consumers. In the future, we will need to
- // be more selective and only send to those Consumers
- // whose filtering criteria matches!
-public:
- Input_Handler (Notifier_Handler *,
- ACE_HANDLE = ACE_STDIN);
- // Use stdin by default.
-
- virtual int handle_input (ACE_HANDLE);
- // Frame input events and notify <Consumers>.
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::NULL_MASK);
- // Close down the handler.
-
-protected:
- virtual ACE_HANDLE get_handle (void) const;
-
- ACE_HANDLE handle_;
- // ACE_HANDLE where the input comes from.
-
- Notifier_Handler *notifier_;
- // Pointer to a <Notifier_Handler> that's used to inform Consumers
- // that events of interest have occurred.
-
- FILE *fp_;
- // Pointer to an input ACE_FILE.
-
-private:
- ~Input_Handler (void);
- // Ensure dynamic allocation.
-};
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _INPUT_HANDLER_H */
diff --git a/apps/Orbix-Examples/Event_Comm/Supplier/Makefile b/apps/Orbix-Examples/Event_Comm/Supplier/Makefile
deleted file mode 100644
index 477a6b22e70..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Supplier/Makefile
+++ /dev/null
@@ -1,162 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the Notifier.
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = supplier
-
-FILES = Input_Handler \
- Notifier_Handler
-
-LSRC = $(addsuffix .cpp,$(FILES)) supplier.cpp
-LOBJ = $(addsuffix .o,$(FILES))
-SHOBJ = $(addsuffix .so,$(FILES))
-
-LDLIBS = $(addprefix $(VSHDIR),$(LOBJ)) ../libsrc/libEvent_Comm.a
-
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-BUILD = $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-CPPFLAGS += -I../include
-VLDLIBS += -lgen
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-Input_Handler.o: Input_Handler.cpp ../include/Event_Comm.hh Notifier_Handler.h \
- ${ACE_ROOT}ace/CORBA_Handler.h \
- ${ACE_ROOT}ace/Service_Config.h \
- ${ACE_ROOT}ace/Reactor.h \
- ${ACE_ROOT}ace/Handle_Set.h \
- ${ACE_ROOT}ace/sysincludes.h \
- ${ACE_ROOT}ace/config.h \
- ${ACE_ROOT}ace/Handle_Set.i \
- ${ACE_ROOT}ace/Timer_Queue.h \
- ${ACE_ROOT}ace/Event_Handler.h \
- ${ACE_ROOT}ace/Time_Value.h \
- ${ACE_ROOT}ace/Synch.h \
- ${ACE_ROOT}ace/Synch_T.h \
- ${ACE_ROOT}ace/Timer_Queue.i \
- ${ACE_ROOT}ace/Signal.h \
- ${ACE_ROOT}ace/Set.h \
- ${ACE_ROOT}ace/Thread.h \
- ${ACE_ROOT}ace/Token.h \
- ${ACE_ROOT}ace/Reactor.i \
- ${ACE_ROOT}ace/Log_Msg.h \
- ${ACE_ROOT}ace/Log_Record.h \
- ${ACE_ROOT}ace/Log_Priority.h \
- ${ACE_ROOT}ace/Log_Record.i \
- ${ACE_ROOT}ace/Log_Msg.i \
- ${ACE_ROOT}ace/Thread_Specific.h \
- ${ACE_ROOT}ace/Thread_Specific.i \
- ${ACE_ROOT}ace/Service_Object.h \
- ${ACE_ROOT}ace/Shared_Object.h \
- ${ACE_ROOT}ace/Service_Types.h \
- ${ACE_ROOT}ace/Thread_Manager.h \
- ../include/Event_Comm_i.h ../include/Notification_Receiver_i.h \
- ../include/Notifier_i.h \
- ${ACE_ROOT}ace/Map_Manager.h \
- ${ACE_ROOT}ace/SString.h \
- ${ACE_ROOT}ace/SString.i \
- Input_Handler.h
-Notifier_Handler.o: Notifier_Handler.cpp Notifier_Handler.h \
- ${ACE_ROOT}ace/CORBA_Handler.h \
- ${ACE_ROOT}ace/Service_Config.h \
- ${ACE_ROOT}ace/Reactor.h \
- ${ACE_ROOT}ace/Handle_Set.h \
- ${ACE_ROOT}ace/sysincludes.h \
- ${ACE_ROOT}ace/config.h \
- ${ACE_ROOT}ace/Handle_Set.i \
- ${ACE_ROOT}ace/Timer_Queue.h \
- ${ACE_ROOT}ace/Event_Handler.h \
- ${ACE_ROOT}ace/Time_Value.h \
- ${ACE_ROOT}ace/Synch.h \
- ${ACE_ROOT}ace/Synch_T.h \
- ${ACE_ROOT}ace/Timer_Queue.i \
- ${ACE_ROOT}ace/Signal.h \
- ${ACE_ROOT}ace/Set.h \
- ${ACE_ROOT}ace/Thread.h \
- ${ACE_ROOT}ace/Token.h \
- ${ACE_ROOT}ace/Reactor.i \
- ${ACE_ROOT}ace/Log_Msg.h \
- ${ACE_ROOT}ace/Log_Record.h \
- ${ACE_ROOT}ace/Log_Priority.h \
- ${ACE_ROOT}ace/Log_Record.i \
- ${ACE_ROOT}ace/Log_Msg.i \
- ${ACE_ROOT}ace/Thread_Specific.h \
- ${ACE_ROOT}ace/Thread_Specific.i \
- ${ACE_ROOT}ace/Service_Object.h \
- ${ACE_ROOT}ace/Shared_Object.h \
- ${ACE_ROOT}ace/Service_Types.h \
- ${ACE_ROOT}ace/Thread_Manager.h \
- ../include/Event_Comm_i.h ../include/Notification_Receiver_i.h \
- ../include/Notifier_i.h \
- ${ACE_ROOT}ace/Map_Manager.h \
- ${ACE_ROOT}ace/SString.h \
- ${ACE_ROOT}ace/SString.i \
- ../include/Event_Comm.hh
-supplier.o: supplier.cpp \
- ${ACE_ROOT}ace/Service_Config.h \
- ${ACE_ROOT}ace/Reactor.h \
- ${ACE_ROOT}ace/Handle_Set.h \
- ${ACE_ROOT}ace/sysincludes.h \
- ${ACE_ROOT}ace/config.h \
- ${ACE_ROOT}ace/Handle_Set.i \
- ${ACE_ROOT}ace/Timer_Queue.h \
- ${ACE_ROOT}ace/Event_Handler.h \
- ${ACE_ROOT}ace/Time_Value.h \
- ${ACE_ROOT}ace/Synch.h \
- ${ACE_ROOT}ace/Synch_T.h \
- ${ACE_ROOT}ace/Timer_Queue.i \
- ${ACE_ROOT}ace/Signal.h \
- ${ACE_ROOT}ace/Set.h \
- ${ACE_ROOT}ace/Thread.h \
- ${ACE_ROOT}ace/Token.h \
- ${ACE_ROOT}ace/Reactor.i \
- ${ACE_ROOT}ace/Log_Msg.h \
- ${ACE_ROOT}ace/Log_Record.h \
- ${ACE_ROOT}ace/Log_Priority.h \
- ${ACE_ROOT}ace/Log_Record.i \
- ${ACE_ROOT}ace/Log_Msg.i \
- ${ACE_ROOT}ace/Thread_Specific.h \
- ${ACE_ROOT}ace/Thread_Specific.i \
- ${ACE_ROOT}ace/Service_Object.h \
- ${ACE_ROOT}ace/Shared_Object.h \
- ${ACE_ROOT}ace/Service_Types.h \
- ${ACE_ROOT}ace/Thread_Manager.h \
- Notifier_Handler.h \
- ${ACE_ROOT}ace/CORBA_Handler.h \
- ../include/Event_Comm_i.h ../include/Notification_Receiver_i.h \
- ../include/Notifier_i.h \
- ${ACE_ROOT}ace/Map_Manager.h \
- ${ACE_ROOT}ace/SString.h \
- ${ACE_ROOT}ace/SString.i \
- ../include/Event_Comm.hh Input_Handler.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp b/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp
deleted file mode 100644
index 37cd5c7544e..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-// $Id$
-
-#include "Notifier_Handler.h"
-
-ACE_RCSID(Supplier, Notifier_Handler, "$Id$")
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-#if defined (ACE_HAS_MT_ORBIX) && (ACE_HAS_MT_ORBIX != 0)
-typedef ACE_MT_CORBA_Handler CORBA_HANDLER;
-#else
-typedef ACE_ST_CORBA_Handler CORBA_HANDLER;
-#endif /* ACE_HAS_MT_ORBIX */
-
-int
-Notifier_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- if (this->notifier_ != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "closing down Notifier_Handler\n"));
- CORBA_HANDLER::instance ()->deactivate_service (Event_Comm_Notifier_IMPL,
- this->notifier_->_marker ());
- CORBA::release (this->notifier_);
- this->notifier_ = 0;
- // *Must* be allocated dyanmically!
- ::operator delete ((void *) this);
- }
-
- return 0;
-}
-
-Event_Comm::Notifier *
-Notifier_Handler::notifier (void)
-{
- return this->notifier_;
-}
-
-void
-Notifier_Handler::notifier (Event_Comm::Notifier *notifier)
-{
- if (this->notifier_ != notifier)
- {
- CORBA::release (this->notifier_);
- this->notifier_ = notifier;
- }
-}
-
-// Create and initialize a Notifier target object.
-
-Notifier_Handler::Notifier_Handler (const char *service_location,
- const char *marker,
- int putit)
-{
- CORBA_HANDLER::instance ()->activate_service (Event_Comm_Notifier_IMPL,
- putit ? marker : 0,
- service_location);
-
- // Create a notifier object using the implementation class
- // Notifier_i.
- ACE_NEW (this->notifier_,
- TIE_Event_Comm_Notifier (Notifier_i) (new Notifier_i,
- marker));
-}
-
-// Destroy a Notifier target object.
-
-Notifier_Handler::~Notifier_Handler (void)
-{
- this->handle_close ();
-}
-
-#endif /* ACE_HAS_ORBIX */
diff --git a/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.h b/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.h
deleted file mode 100644
index 3c9df6b6aaf..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Notifier_Handler.h
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#ifndef _NOTIFIER_HANDLER_H
-#define _NOTIFIER_HANDLER_H
-
-#include "ace/CORBA_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "Event_Comm_i.h"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-class Notifier_Handler
- // = TITLE
- // Integrate CORBA with the ACE ACE_Reactor.
-{
-public:
- Notifier_Handler (const char *service_location,
- const char *marker = "notifier",
- int putit = 1); // Default marker name.
-
- Event_Comm::Notifier *notifier (void);
- void notifier (Event_Comm::Notifier *);
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::NULL_MASK);
- // Close down the handler.
-
-private:
- ~Notifier_Handler (void);
- // Ensure dynamic allocation.
-
- Event_Comm::Notifier *notifier_;
- // Pointer to an <Event_Comm::Notifier> object.
-};
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _NOTIFIER_HANDLER_H */
diff --git a/apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp b/apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp
deleted file mode 100644
index ef1e2c5d914..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-// $Id$
-
-#include "ace/Service_Config.h"
-
-#include "Notifier_Handler.h"
-#include "Input_Handler.h"
-
-ACE_RCSID(Supplier, supplier, "$Id$")
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-class Supplier : public ACE_Event_Handler
-{
- // = TITLE
- // Supplier driver for the Orbix Publish/Subscribe example.
- //
- // = DESCRIPTION
- // The executable file generated from this code should be
- // registered (under the name 'logger') using the 'putit' command.
-public:
- Supplier (int argc, char *argv[]);
- ~Supplier (void);
-
- void run (void);
- // Execute the supplier.
-
-private:
- virtual int handle_signal (int signum, siginfo_t *, ucontext_t *);
-
- virtual int handle_close (ACE_HANDLE, ACE_Reactor_Mask);
-
- Input_Handler *ih_;
- // Handler for keyboard input.
-
- Notifier_Handler *nh_;
- // Handler for CORBA Notifier.
-
- ACE_Service_Config daemon_;
- // ACE server event-loop mechanism.
-};
-
-int
-Supplier::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- ACE_DEBUG ((LM_DEBUG,
- "closing down Supplier\n"));
- return 0;
-}
-
-int
-Supplier::handle_signal (int signum, siginfo_t *, ucontext_t *)
-{
- ACE_Reactor::end_event_loop ();
- return 0;
-}
-
-void
-Supplier::run (void)
-{
- if (ACE_Reactor::run_event_loop () == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "run_reactor_event_loop"));
-}
-
-Supplier::Supplier (int argc, char *argv[])
- : ih_ (0),
- nh_ (0)
-{
- // Initialize the server.
- if (this->daemon_.open (argc, argv) == -1)
- {
- if (errno == ENOENT) // There's no svc.conf file, so use static linking...
- {
- ACE_DEBUG ((LM_DEBUG,
- "no config file, using static binding\n"));
- // The constructor registers the handlers...
- int putit = argc > 1 ? 1 : 0;
-
- // Pass in program exec name to use a service_location!
- ACE_NEW (this->nh_,
- Notifier_Handler (argv[0],
- "notifier",
- putit));
- ACE_NEW (this->ih_,
- Input_Handler (this->nh_));
- }
- else
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- "open",
- 1));
- }
-
- ACE_DEBUG ((LM_DEBUG,
- "starting up server %s\n",
- CORBA::Orbix.myImplementationName ()));
-
- if (ACE_Reactor::instance ()->register_handler (SIGINT, this) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "register_handler"));
-}
-
-Supplier::~Supplier (void)
-{
- // Free up the handlers if they were statically bound.
- this->ih_->handle_close ();
- this->nh_->handle_close ();
-}
-
-int
-main (int argc, char *argv[])
-{
- // Initialize server daemon.
- Supplier supplier (argc, argv);
-
- // Loop forever handling events.
- supplier.run ();
-
- return 0;
-}
-#else /* !defined ACE_HAS_ORBIX */
-int
-main (int argc, char *argv[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "you must have Orbix to run application %s\n",
- argv[0]),
- 1);
-}
-#endif /* ACE_HAS_ORBIX */
diff --git a/apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh b/apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh
deleted file mode 100644
index 85ad256da2a..00000000000
--- a/apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh
+++ /dev/null
@@ -1,887 +0,0 @@
-
-#ifndef Event_Comm_hh
-#define Event_Comm_hh
-
-#include <CORBA.h>
-
-#include <string.h>
-
-class Event_Comm {
-public:
-
-#ifndef Event_Comm_Notification_defined
-#define Event_Comm_Notification_defined
-
- struct Notification {
- CORBA::String_mgr tag_;
-
- void encodeOp (CORBA::Request &IT_r) const;
- void decodeOp (CORBA::Request &IT_r);
- void decodeInOutOp (CORBA::Request &IT_r);
- static void* IT_anySupport (CORBA::Request &IT_r,
- void *&, void*, const CORBA::Flags&);
- static const void *IT_fn;
- };
-
- static const CORBA::TypeCode_ptr _tc_Notification;
-
-#ifndef Event_Comm_NotificationVarH
-#define Event_Comm_NotificationVarH
-
-#ifndef Event_Comm_NotificationvPtr
-#define Event_Comm_NotificationvPtr
-typedef Notification* Notification_vPtr;
-#endif
-
-class Notification_var : public CORBA::_var
-{
- public:
-
- Notification_var () {
- _ptr = NULL;
- }
-
- Notification_var (Notification *IT_p) {
- _ptr = IT_p;
- }
-
- Notification_var (const Notification_var &IT_s) {
- if (!IT_s._ptr) {
- _ptr = IT_s._ptr;
- return;
- }
- _ptr = new Notification (*(IT_s._ptr));
- }
-
- Notification_var &operator= (Notification *IT_p) {
- if (_ptr != IT_p) {
- delete _ptr;
- }
- _ptr = IT_p;
- return (*this);
- }
-
- Notification_var &operator= (const Notification_var &IT_s) {
- if (_ptr != IT_s._ptr) {
- delete _ptr;
- }
- _ptr = new Notification (*(IT_s._ptr));
- return (*this);
- }
-
- ~Notification_var () {
- delete _ptr;
- }
-
- Notification* operator-> () {
- return _ptr;
- }
-
- operator const Notification_vPtr () const { return _ptr;}
- operator Notification_vPtr& () { return _ptr;}
- operator Notification& () const { return * _ptr;}
-
- protected:
- Notification *_ptr;
- private:
- Notification_var &operator= (const CORBA::_var &IT_s);
- Notification_var (const CORBA::_var &IT_s);
-};
-
-#endif
-
-
-#endif
-
-
-#ifndef _Event_Comm_Notification_Receiver_defined
-#define _Event_Comm_Notification_Receiver_defined
-class Notification_Receiver_dispatch : public virtual CORBA::PPTR {
-public:
-
- Notification_Receiver_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m,
- CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {}
-
-
- Notification_Receiver_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- Notification_Receiver_dispatch () {}
-
- Notification_Receiver_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- Notification_Receiver_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m,
- char *IT_i, CORBA::Object* IT_ob, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {}
-
-
- virtual unsigned char dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void* IT_pp=NULL);
-
-
-};
-
-class Notification_Receiver;
-
-#ifndef Event_Comm_Notification_ReceiverPtr
-#define Event_Comm_Notification_ReceiverPtr
-
- typedef Notification_Receiver* Notification_Receiver_ptr;
-
- typedef Notification_Receiver* Notification_ReceiverRef;
-
-#endif
-
-
-#ifndef Event_Comm_Notification_ReceiverForwH
-#define Event_Comm_Notification_ReceiverForwH
-static CORBA::ObjectRef Notification_Receiver_getBase (void *);
-static void Notification_Receiver_release (Notification_Receiver *, CORBA::Environment &IT_env);
-static void Notification_Receiver_release (Notification_Receiver_ptr);
-static Notification_Receiver* Notification_Receiver_duplicate (Notification_Receiver_ptr, CORBA::Environment &IT_env);
-static Notification_Receiver* Notification_Receiver_duplicate (Notification_Receiver_ptr );
-static Notification_Receiver_ptr Notification_Receiver_nil (CORBA::Environment &IT_env);
-static Notification_Receiver_ptr Notification_Receiver_nil ();
-#endif
-#define Event_Comm_Notification_Receiver_IMPL "Event_Comm_Notification_Receiver"
-
-
-class Notification_Receiver;
-
- typedef Notification_Receiver Notification_ReceiverProxy;
-#define Event_Comm_Notification_Receiver_IR "Event_Comm_Notification_Receiver"
-#define Event_Comm_Notification_Receiver_IMPL "Event_Comm_Notification_Receiver"
-
-#ifndef Event_Comm_Notification_ReceiverPtr
-#define Event_Comm_Notification_ReceiverPtr
-
- typedef Notification_Receiver* Notification_Receiver_ptr;
-
- typedef Notification_Receiver* Notification_ReceiverRef;
-
-#endif
-
-class Notification_Receiver: public virtual CORBA::Object {
-public:
- Notification_Receiver (char *IT_OR);
- Notification_Receiver (ObjectReference *IT_OR);
- Notification_Receiver () : CORBA::Object (1) {}
-protected:
- Notification_Receiver_ptr __duplicate(
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::Object::__duplicate (IT_env);
- return this;
- }
-public:
- static Notification_Receiver_ptr _duplicate(
- Notification_Receiver_ptr obj,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::EnvExcRaiser IT_raise (&IT_env);
- if (CORBA::is_nil(obj, IT_env)) {
- IT_raise.maybeRaise ();
- return (obj);
- }
- Notification_Receiver_ptr IT_obj = obj->__duplicate (IT_env);
- IT_raise.maybeRaise();
- return IT_obj;
- }
-public:
- static Notification_Receiver* _bind (const char* IT_markerServer, const char* host,
- const CORBA::Context &IT_c,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notification_Receiver* _bind (CORBA::Environment &IT_env);
- static Notification_Receiver* _bind (const char* IT_markerServer=NULL, const char* host=NULL,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notification_Receiver* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notification_Receiver_ptr _nil (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::EnvExcRaiser IT_raise (&IT_env);
- IT_raise.maybeRaise();
- return (Notification_Receiver_ptr) CORBA::OBJECT_NIL;}
- virtual void receive_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
- virtual void disconnect (const char * reason, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
-};
-
- static const CORBA::TypeCode_ptr _tc_Notification_Receiver;
-
- static const CORBA::TypeCode_ptr _tc_Notification_ReceiverRef;
-
-#ifndef Event_Comm_Notification_ReceiverVarH
-#define Event_Comm_Notification_ReceiverVarH
-
-#ifndef Event_Comm_Notification_ReceivervPtr
-#define Event_Comm_Notification_ReceivervPtr
-typedef Notification_Receiver* Notification_Receiver_vPtr;
-#endif
-
-class Notification_Receiver_var : public CORBA::_var
-{
- public:
-
- Notification_Receiver_var () {
- _ptr = Notification_Receiver_nil ();
- }
-
- Notification_Receiver_var (Notification_Receiver *IT_p) {
- _ptr = IT_p;
- }
-
- Notification_Receiver_var (const Notification_Receiver_var &IT_s) {
- _ptr = Notification_Receiver_duplicate (IT_s._ptr);
- }
-
- Notification_Receiver_var &operator= (Notification_Receiver *IT_p) {
- Notification_Receiver_release (_ptr);
- _ptr = IT_p;
- return (*this);
- }
-
- Notification_Receiver_var &operator= (const Notification_Receiver_var &IT_s) {
- Notification_Receiver_release (_ptr);
- _ptr = Notification_Receiver_duplicate (IT_s._ptr);
- return (*this);
- }
-
- ~Notification_Receiver_var () {
- Notification_Receiver_release (_ptr);
- }
-
- Notification_Receiver* operator-> () {
- return _ptr;
- }
-
- operator const Notification_Receiver_vPtr () const { return _ptr;}
- operator Notification_Receiver_vPtr& () { return _ptr;}
-
- protected:
- Notification_Receiver *_ptr;
- private:
- Notification_Receiver_var &operator= (const CORBA::_var &IT_s);
- Notification_Receiver_var (const CORBA::_var &IT_s);
- Notification_Receiver_var &operator= (const CORBA::_mgr &IT_s);
- Notification_Receiver_var &operator= (const CORBA::_SeqElem &IT_s);
- Notification_Receiver_var (const CORBA::_mgr &IT_s);
- Notification_Receiver_var (const CORBA::_SeqElem &IT_s);
-};
-
-#endif
-
-
-#ifndef Event_Comm_Notification_ReceiverMgrH
-#define Event_Comm_Notification_ReceiverMgrH
-
-class Notification_Receiver_mgr : public CORBA::_mgr
-{
- public:
-
- Notification_Receiver_mgr () {
- _ptr = Notification_Receiver_nil ();
- _release = 1;
- }
-
- Notification_Receiver_mgr (const Notification_Receiver_mgr &IT_s) {
- _ptr = Notification_Receiver_duplicate (IT_s._ptr);
- _release = 1;
- }
-
- Notification_Receiver_mgr &operator= (Notification_Receiver *IT_p) {
- if (_ptr && _release)
- Notification_Receiver_release (_ptr);
- _ptr = IT_p;
- _release = 1;
- return (*this);
- }
-
- Notification_Receiver_mgr &operator= (const Notification_Receiver_mgr &IT_s) {
- if (_ptr && _release)
- Notification_Receiver_release (_ptr);
- _ptr = Notification_Receiver_duplicate(IT_s._ptr);
- _release = 1;
- return (*this);
- }
-
- Notification_Receiver_mgr &operator= (const Notification_Receiver_var &IT_s) {
- if (_ptr && _release)
- Notification_Receiver_release (_ptr);
- _ptr = Notification_Receiver_duplicate(IT_s);
- _release = 1;
- return (*this);
- }
-
- ~Notification_Receiver_mgr () {
- if (_release)
- Notification_Receiver_release (_ptr);
- }
-
- unsigned char release () {
- return _release;
- }
-
- void release (unsigned char rel) {
- _release = rel;
- }
-
- operator int () const {
- CORBA::Environment env;
- CORBA::EnvExcRaiser IT_raise (&env);
- return (!(CORBA::is_nil((CORBA::Object*) _ptr, env)));
- }
-
- operator void* () const {
- return _ptr;
- }
-
- operator CORBA::Object * () const {
- return (CORBA::Object *) _ptr;
- }
-
- operator Notification_Receiver* () const {
- return (Notification_Receiver*) _ptr;
- }
-
- Notification_Receiver *_ptr;
-
- protected:
-
- unsigned char _release;
-};
-
-#endif
-
-#ifndef Event_Comm_Notification_ReceiverSeqElemH
-#define Event_Comm_Notification_ReceiverSeqElemH
-
-class Notification_Receiver_SeqElem : public CORBA::_SeqElem
-{
- public:
-
- Notification_Receiver_SeqElem (Event_Comm::Notification_Receiver_ptr* IT_p, unsigned char rel) {
- _ptr = IT_p;
- _release = rel;
- }
-
- Notification_Receiver_SeqElem &operator= (Event_Comm::Notification_Receiver_ptr IT_p) {
- if (!_ptr)
- return (*this);
- if (*(_ptr) && _release)
- Notification_Receiver_release (*(_ptr));
- *(_ptr) = IT_p;
- return (*this);
- }
-
- Notification_Receiver_SeqElem &operator= (const Notification_Receiver_SeqElem &IT_s) {
- if (!_ptr|| !IT_s._ptr)
- return (*this);
- if (*(_ptr) && _release)
- Notification_Receiver_release (*(_ptr));
- *(_ptr) = Notification_Receiver_duplicate(*(IT_s._ptr));
- return (*this);
- }
-
- operator Event_Comm::Notification_Receiver_ptr () const
-{
- if (!_ptr)
- return (Notification_Receiver_nil());
- return (Event_Comm::Notification_Receiver_ptr) (*_ptr);
- }
-
- Notification_Receiver_ptr operator->() const { return *_ptr;}
-
- protected:
- Event_Comm::Notification_Receiver_ptr *_ptr;
- unsigned char _release;
-};
-
-#endif
-
-
-#define TIE_Event_Comm_Notification_Receiver(X) Event_Comm_Notification_Receiver##X
-
-#define DEF_TIE_Event_Comm_Notification_Receiver(X) \
- class Event_Comm_Notification_Receiver##X : public virtual Event_Comm::Notification_Receiver { \
- X* m_obj; \
- public: \
- \
- Event_Comm_Notification_Receiver##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\
- : Event_Comm::Notification_Receiver(), CORBA::Object (), m_obj(objp) { \
- m_pptr = new Event_Comm::Notification_Receiver_dispatch \
- (( Event_Comm::Notification_Receiver*)this,(CORBA::Object*)this,m,l,Event_Comm_Notification_Receiver_IR,m_obj); \
- } \
- Event_Comm_Notification_Receiver##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\
- : Event_Comm::Notification_Receiver(), CORBA::Object () { \
- m_pptr = new Event_Comm::Notification_Receiver_dispatch \
- (( Event_Comm::Notification_Receiver*)this,(CORBA::Object*)this,IT_m,Event_Comm_Notification_Receiver_IR,IT_p,IT_q); \
- m_obj = (X*)(m_pptr->getImplObj ()); \
- } \
- \
- virtual ~Event_Comm_Notification_Receiver##X () { \
- if (_okToDeleteImpl ()) delete m_obj; } \
- \
- virtual void* _deref () { \
- return m_obj; } \
- \
- virtual void receive_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->receive_notification ( notification,IT_env);\
-}\
- \
- virtual void disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->disconnect ( reason,IT_env);\
-}\
- \
- };
-
-
-#define QUALS_Event_Comm_Notification_Receiver \
- virtual void receive_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->receive_notification ( notification,IT_env);\
-}\
- \
- virtual void disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->disconnect ( reason,IT_env);\
-}\
-
-
-
-
-class Notification_ReceiverProxyFactoryClass : public virtual CORBA::ObjectFactoryClass {
-public:
- Notification_ReceiverProxyFactoryClass (unsigned char IT_p=0)
- : CORBA::ProxyFactory (Event_Comm_Notification_Receiver_IR, IT_p) {}
-
- virtual void* New (char *IT_OR, CORBA::Environment&);
-
- virtual void* New (ObjectReference *IT_OR, CORBA::Environment&);
-
- virtual void* New2 ();
-
- virtual void* IT_castUp (void *IT_p, char* IT_s);
-
- virtual CORBA::PPTR* pptr (void *IT_p);
-
- virtual void baseInterfaces (_IDL_SEQUENCE_string&);
-
-
-};
-
-static Notification_ReceiverProxyFactoryClass Notification_ReceiverProxyFactory;
-
-
-
-#endif
-
-
-#ifndef _Event_Comm_Notifier_defined
-#define _Event_Comm_Notifier_defined
-class Notifier_dispatch : public virtual CORBA::PPTR {
-public:
-
- Notifier_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m,
- CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {}
-
-
- Notifier_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- Notifier_dispatch () {}
-
- Notifier_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- Notifier_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m,
- char *IT_i, CORBA::Object* IT_ob, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {}
-
-
- virtual unsigned char dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void* IT_pp=NULL);
-
-
-};
-
-class Notifier;
-
-#ifndef Event_Comm_NotifierPtr
-#define Event_Comm_NotifierPtr
-
- typedef Notifier* Notifier_ptr;
-
- typedef Notifier* NotifierRef;
-
-#endif
-
-
-#ifndef Event_Comm_NotifierForwH
-#define Event_Comm_NotifierForwH
-static CORBA::ObjectRef Notifier_getBase (void *);
-static void Notifier_release (Notifier *, CORBA::Environment &IT_env);
-static void Notifier_release (Notifier_ptr);
-static Notifier* Notifier_duplicate (Notifier_ptr, CORBA::Environment &IT_env);
-static Notifier* Notifier_duplicate (Notifier_ptr );
-static Notifier_ptr Notifier_nil (CORBA::Environment &IT_env);
-static Notifier_ptr Notifier_nil ();
-#endif
-#define Event_Comm_Notifier_IMPL "Event_Comm_Notifier"
-
-
-class Notifier;
-
- typedef Notifier NotifierProxy;
-#define Event_Comm_Notifier_IR "Event_Comm_Notifier"
-#define Event_Comm_Notifier_IMPL "Event_Comm_Notifier"
-
-#ifndef Event_Comm_NotifierPtr
-#define Event_Comm_NotifierPtr
-
- typedef Notifier* Notifier_ptr;
-
- typedef Notifier* NotifierRef;
-
-#endif
-
-class Notifier: public virtual CORBA::Object {
-public:
- Notifier (char *IT_OR);
- Notifier (ObjectReference *IT_OR);
- Notifier () : CORBA::Object (1) {}
-protected:
- Notifier_ptr __duplicate(
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::Object::__duplicate (IT_env);
- return this;
- }
-public:
- static Notifier_ptr _duplicate(
- Notifier_ptr obj,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::EnvExcRaiser IT_raise (&IT_env);
- if (CORBA::is_nil(obj, IT_env)) {
- IT_raise.maybeRaise ();
- return (obj);
- }
- Notifier_ptr IT_obj = obj->__duplicate (IT_env);
- IT_raise.maybeRaise();
- return IT_obj;
- }
-public:
- static Notifier* _bind (const char* IT_markerServer, const char* host,
- const CORBA::Context &IT_c,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notifier* _bind (CORBA::Environment &IT_env);
- static Notifier* _bind (const char* IT_markerServer=NULL, const char* host=NULL,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notifier* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notifier_ptr _nil (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::EnvExcRaiser IT_raise (&IT_env);
- IT_raise.maybeRaise();
- return (Notifier_ptr) CORBA::OBJECT_NIL;}
- virtual void send_disconnect (const char * reason, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
- virtual void send_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
- virtual void subscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
- virtual void unsubscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
-};
-
- static const CORBA::TypeCode_ptr _tc_Notifier;
-
- static const CORBA::TypeCode_ptr _tc_NotifierRef;
-
-#ifndef Event_Comm_NotifierVarH
-#define Event_Comm_NotifierVarH
-
-#ifndef Event_Comm_NotifiervPtr
-#define Event_Comm_NotifiervPtr
-typedef Notifier* Notifier_vPtr;
-#endif
-
-class Notifier_var : public CORBA::_var
-{
- public:
-
- Notifier_var () {
- _ptr = Notifier_nil ();
- }
-
- Notifier_var (Notifier *IT_p) {
- _ptr = IT_p;
- }
-
- Notifier_var (const Notifier_var &IT_s) {
- _ptr = Notifier_duplicate (IT_s._ptr);
- }
-
- Notifier_var &operator= (Notifier *IT_p) {
- Notifier_release (_ptr);
- _ptr = IT_p;
- return (*this);
- }
-
- Notifier_var &operator= (const Notifier_var &IT_s) {
- Notifier_release (_ptr);
- _ptr = Notifier_duplicate (IT_s._ptr);
- return (*this);
- }
-
- ~Notifier_var () {
- Notifier_release (_ptr);
- }
-
- Notifier* operator-> () {
- return _ptr;
- }
-
- operator const Notifier_vPtr () const { return _ptr;}
- operator Notifier_vPtr& () { return _ptr;}
-
- protected:
- Notifier *_ptr;
- private:
- Notifier_var &operator= (const CORBA::_var &IT_s);
- Notifier_var (const CORBA::_var &IT_s);
- Notifier_var &operator= (const CORBA::_mgr &IT_s);
- Notifier_var &operator= (const CORBA::_SeqElem &IT_s);
- Notifier_var (const CORBA::_mgr &IT_s);
- Notifier_var (const CORBA::_SeqElem &IT_s);
-};
-
-#endif
-
-
-#ifndef Event_Comm_NotifierMgrH
-#define Event_Comm_NotifierMgrH
-
-class Notifier_mgr : public CORBA::_mgr
-{
- public:
-
- Notifier_mgr () {
- _ptr = Notifier_nil ();
- _release = 1;
- }
-
- Notifier_mgr (const Notifier_mgr &IT_s) {
- _ptr = Notifier_duplicate (IT_s._ptr);
- _release = 1;
- }
-
- Notifier_mgr &operator= (Notifier *IT_p) {
- if (_ptr && _release)
- Notifier_release (_ptr);
- _ptr = IT_p;
- _release = 1;
- return (*this);
- }
-
- Notifier_mgr &operator= (const Notifier_mgr &IT_s) {
- if (_ptr && _release)
- Notifier_release (_ptr);
- _ptr = Notifier_duplicate(IT_s._ptr);
- _release = 1;
- return (*this);
- }
-
- Notifier_mgr &operator= (const Notifier_var &IT_s) {
- if (_ptr && _release)
- Notifier_release (_ptr);
- _ptr = Notifier_duplicate(IT_s);
- _release = 1;
- return (*this);
- }
-
- ~Notifier_mgr () {
- if (_release)
- Notifier_release (_ptr);
- }
-
- unsigned char release () {
- return _release;
- }
-
- void release (unsigned char rel) {
- _release = rel;
- }
-
- operator int () const {
- CORBA::Environment env;
- CORBA::EnvExcRaiser IT_raise (&env);
- return (!(CORBA::is_nil((CORBA::Object*) _ptr, env)));
- }
-
- operator void* () const {
- return _ptr;
- }
-
- operator CORBA::Object * () const {
- return (CORBA::Object *) _ptr;
- }
-
- operator Notifier* () const {
- return (Notifier*) _ptr;
- }
-
- Notifier *_ptr;
-
- protected:
-
- unsigned char _release;
-};
-
-#endif
-
-#ifndef Event_Comm_NotifierSeqElemH
-#define Event_Comm_NotifierSeqElemH
-
-class Notifier_SeqElem : public CORBA::_SeqElem
-{
- public:
-
- Notifier_SeqElem (Event_Comm::Notifier_ptr* IT_p, unsigned char rel) {
- _ptr = IT_p;
- _release = rel;
- }
-
- Notifier_SeqElem &operator= (Event_Comm::Notifier_ptr IT_p) {
- if (!_ptr)
- return (*this);
- if (*(_ptr) && _release)
- Notifier_release (*(_ptr));
- *(_ptr) = IT_p;
- return (*this);
- }
-
- Notifier_SeqElem &operator= (const Notifier_SeqElem &IT_s) {
- if (!_ptr|| !IT_s._ptr)
- return (*this);
- if (*(_ptr) && _release)
- Notifier_release (*(_ptr));
- *(_ptr) = Notifier_duplicate(*(IT_s._ptr));
- return (*this);
- }
-
- operator Event_Comm::Notifier_ptr () const
-{
- if (!_ptr)
- return (Notifier_nil());
- return (Event_Comm::Notifier_ptr) (*_ptr);
- }
-
- Notifier_ptr operator->() const { return *_ptr;}
-
- protected:
- Event_Comm::Notifier_ptr *_ptr;
- unsigned char _release;
-};
-
-#endif
-
-
-#define TIE_Event_Comm_Notifier(X) Event_Comm_Notifier##X
-
-#define DEF_TIE_Event_Comm_Notifier(X) \
- class Event_Comm_Notifier##X : public virtual Event_Comm::Notifier { \
- X* m_obj; \
- public: \
- \
- Event_Comm_Notifier##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\
- : Event_Comm::Notifier(), CORBA::Object (), m_obj(objp) { \
- m_pptr = new Event_Comm::Notifier_dispatch \
- (( Event_Comm::Notifier*)this,(CORBA::Object*)this,m,l,Event_Comm_Notifier_IR,m_obj); \
- } \
- Event_Comm_Notifier##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\
- : Event_Comm::Notifier(), CORBA::Object () { \
- m_pptr = new Event_Comm::Notifier_dispatch \
- (( Event_Comm::Notifier*)this,(CORBA::Object*)this,IT_m,Event_Comm_Notifier_IR,IT_p,IT_q); \
- m_obj = (X*)(m_pptr->getImplObj ()); \
- } \
- \
- virtual ~Event_Comm_Notifier##X () { \
- if (_okToDeleteImpl ()) delete m_obj; } \
- \
- virtual void* _deref () { \
- return m_obj; } \
- \
- virtual void send_disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->send_disconnect ( reason,IT_env);\
-}\
- \
- virtual void send_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->send_notification ( notification,IT_env);\
-}\
- \
- virtual void subscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->subscribe ( notification_receiver, filtering_criteria,IT_env);\
-}\
- \
- virtual void unsubscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->unsubscribe ( notification_receiver, filtering_criteria,IT_env);\
-}\
- \
- };
-
-
-#define QUALS_Event_Comm_Notifier \
- virtual void send_disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->send_disconnect ( reason,IT_env);\
-}\
- \
- virtual void send_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->send_notification ( notification,IT_env);\
-}\
- \
- virtual void subscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->subscribe ( notification_receiver, filtering_criteria,IT_env);\
-}\
- \
- virtual void unsubscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->unsubscribe ( notification_receiver, filtering_criteria,IT_env);\
-}\
-
-
-
-
-class NotifierProxyFactoryClass : public virtual CORBA::ObjectFactoryClass {
-public:
- NotifierProxyFactoryClass (unsigned char IT_p=0)
- : CORBA::ProxyFactory (Event_Comm_Notifier_IR, IT_p) {}
-
- virtual void* New (char *IT_OR, CORBA::Environment&);
-
- virtual void* New (ObjectReference *IT_OR, CORBA::Environment&);
-
- virtual void* New2 ();
-
- virtual void* IT_castUp (void *IT_p, char* IT_s);
-
- virtual CORBA::PPTR* pptr (void *IT_p);
-
- virtual void baseInterfaces (_IDL_SEQUENCE_string&);
-
-
-};
-
-static NotifierProxyFactoryClass NotifierProxyFactory;
-
-
-
-#endif
-
-};
-
-
-void operator<<= (CORBA::any &IT_a, Event_Comm::Notification_Receiver_ptr IT_t);
-CORBA::Boolean operator>>= (const CORBA::any &IT_a, Event_Comm::Notification_Receiver_ptr& IT_t);
-
-
-void operator<<= (CORBA::any &IT_a, Event_Comm::Notifier_ptr IT_t);
-CORBA::Boolean operator>>= (const CORBA::any &IT_a, Event_Comm::Notifier_ptr& IT_t);
-
-
-void operator<<= (CORBA::any &IT_a, const Event_Comm::Notification& IT_t);
-CORBA::Boolean operator>>= (const CORBA::any &IT_a, Event_Comm::Notification*& IT_t);
-
-
-#endif
diff --git a/apps/Orbix-Examples/Event_Comm/include/Event_Comm_i.h b/apps/Orbix-Examples/Event_Comm/include/Event_Comm_i.h
deleted file mode 100644
index 3775d071683..00000000000
--- a/apps/Orbix-Examples/Event_Comm/include/Event_Comm_i.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Event_Comm_i.h
-//
-// = DESCRIPTION
-// Class interface for the implementation of the distributed
-// event notification mechanism.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#ifndef _EVENT_COMM_I_H
-#define _EVENT_COMM_I_H
-
-#include "Notification_Receiver_i.h"
-#include "Notifier_i.h"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-// Tie the Notification_Receiver and Notifier implementation classes
-// together with the IDL interface.
-
-DEF_TIE_Event_Comm_Notification_Receiver (Notification_Receiver_i)
-DEF_TIE_Event_Comm_Notifier (Notifier_i)
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _EVENT_COMM_I_H */
diff --git a/apps/Orbix-Examples/Event_Comm/include/Notification_Receiver_i.h b/apps/Orbix-Examples/Event_Comm/include/Notification_Receiver_i.h
deleted file mode 100644
index dbcd6671d8f..00000000000
--- a/apps/Orbix-Examples/Event_Comm/include/Notification_Receiver_i.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Notification_Receiver__i.h
-//
-// = DESCRIPTION
-// Class interface for the implementation of the <Notification_Receiver>
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#ifndef _Notification_Receiver_i_H
-#define _Notification_Receiver_i_H
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-#include "Event_Comm.hh"
-
-class Notification_Receiver_i
- // = TITLE
- // Defines the implementation class for event <Notification_Receivers>.
- //
- // = DESCRIPTION
-{
-public:
- Notification_Receiver_i (void);
- ~Notification_Receiver_i (void);
-
- virtual void receive_notification (const Event_Comm::Notification &notification,
- CORBA::Environment &IT_env);
- // Pass the <Notification> to the <Notification_Receiver>.
-
- virtual void disconnect (const char *reason,
- CORBA::Environment &IT_env);
- // Disconnect the <Notification_Receiver> from the <Notifier>,
- // giving it the <reason>.
-};
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _Notification_Receiver_i_H */
diff --git a/apps/Orbix-Examples/Event_Comm/include/Notifier_i.h b/apps/Orbix-Examples/Event_Comm/include/Notifier_i.h
deleted file mode 100644
index 61249d68386..00000000000
--- a/apps/Orbix-Examples/Event_Comm/include/Notifier_i.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Notifier_i.h
-//
-// = DESCRIPTION
-// Class interface for the implementation of the <Notifier>
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#ifndef _Notifier_i_H
-#define _Notifier_i_H
-
-#include "ace/Map_Manager.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-#include "ace/SString.h"
-#include "Event_Comm.hh"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-// Forward reference.
-class Notification_Receiver_Entry;
-
-class Notifier_i
- // = TITLE
- // Defines the implementation class for event <Notifiers>.
- //
- // = DESCRIPTION
-{
-public:
- enum
- {
- DEFAULT_SIZE = 1024 // Default max number of Event_Comm::Notification_Receivers.
- };
-
- Notifier_i (size_t size_hint = Notifier_i::DEFAULT_SIZE);
- // Initialize a Notifier_i object with the specified size hint.
-
- void send_disconnect (const char *reason,
- CORBA::Environment &IT_env);
- // Disconnect all the receivers, giving them the <reason>.
-
- void send_notification (const Event_Comm::Notification &notification,
- CORBA::Environment &IT_env);
- // Send the <Notification> to all the consumers who
- // have subscribed and who match the filtering criteria.
-
- void subscribe (Event_Comm::Notification_Receiver *notification_receiver,
- const char *filtering_criteria,
- CORBA::Environment &IT_env);
- // Subscribe the <Notification_Receiver> to receive events that
- // match <filtering_criteria> applied by the <Notifier>.
-
- void unsubscribe (Event_Comm::Notification_Receiver *notification_receiver,
- const char *filtering_criteria,
- CORBA::Environment &IT_env);
- // Unsubscribe the <Notification_Receiver>.
-
-private:
- // The following implementation should be replaced
- // by a standard container class from STL...
-
- typedef ACE_Map_Manager <ACE_SString, Notification_Receiver_Entry *, ACE_Null_Mutex> MAP_MANAGER;
- typedef ACE_Map_Iterator <ACE_SString, Notification_Receiver_Entry *, ACE_Null_Mutex> MAP_ITERATOR;
- typedef ACE_Map_Entry <ACE_SString, Notification_Receiver_Entry *> MAP_ENTRY;
-
- MAP_MANAGER map_;
- // Table that maps a <Event_Comm::Notification_Receiver *> to a <Notification_Receiver_Entry *>.
-};
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _Notifier_i_H */
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh b/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh
deleted file mode 100644
index 85ad256da2a..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh
+++ /dev/null
@@ -1,887 +0,0 @@
-
-#ifndef Event_Comm_hh
-#define Event_Comm_hh
-
-#include <CORBA.h>
-
-#include <string.h>
-
-class Event_Comm {
-public:
-
-#ifndef Event_Comm_Notification_defined
-#define Event_Comm_Notification_defined
-
- struct Notification {
- CORBA::String_mgr tag_;
-
- void encodeOp (CORBA::Request &IT_r) const;
- void decodeOp (CORBA::Request &IT_r);
- void decodeInOutOp (CORBA::Request &IT_r);
- static void* IT_anySupport (CORBA::Request &IT_r,
- void *&, void*, const CORBA::Flags&);
- static const void *IT_fn;
- };
-
- static const CORBA::TypeCode_ptr _tc_Notification;
-
-#ifndef Event_Comm_NotificationVarH
-#define Event_Comm_NotificationVarH
-
-#ifndef Event_Comm_NotificationvPtr
-#define Event_Comm_NotificationvPtr
-typedef Notification* Notification_vPtr;
-#endif
-
-class Notification_var : public CORBA::_var
-{
- public:
-
- Notification_var () {
- _ptr = NULL;
- }
-
- Notification_var (Notification *IT_p) {
- _ptr = IT_p;
- }
-
- Notification_var (const Notification_var &IT_s) {
- if (!IT_s._ptr) {
- _ptr = IT_s._ptr;
- return;
- }
- _ptr = new Notification (*(IT_s._ptr));
- }
-
- Notification_var &operator= (Notification *IT_p) {
- if (_ptr != IT_p) {
- delete _ptr;
- }
- _ptr = IT_p;
- return (*this);
- }
-
- Notification_var &operator= (const Notification_var &IT_s) {
- if (_ptr != IT_s._ptr) {
- delete _ptr;
- }
- _ptr = new Notification (*(IT_s._ptr));
- return (*this);
- }
-
- ~Notification_var () {
- delete _ptr;
- }
-
- Notification* operator-> () {
- return _ptr;
- }
-
- operator const Notification_vPtr () const { return _ptr;}
- operator Notification_vPtr& () { return _ptr;}
- operator Notification& () const { return * _ptr;}
-
- protected:
- Notification *_ptr;
- private:
- Notification_var &operator= (const CORBA::_var &IT_s);
- Notification_var (const CORBA::_var &IT_s);
-};
-
-#endif
-
-
-#endif
-
-
-#ifndef _Event_Comm_Notification_Receiver_defined
-#define _Event_Comm_Notification_Receiver_defined
-class Notification_Receiver_dispatch : public virtual CORBA::PPTR {
-public:
-
- Notification_Receiver_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m,
- CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {}
-
-
- Notification_Receiver_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- Notification_Receiver_dispatch () {}
-
- Notification_Receiver_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- Notification_Receiver_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m,
- char *IT_i, CORBA::Object* IT_ob, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {}
-
-
- virtual unsigned char dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void* IT_pp=NULL);
-
-
-};
-
-class Notification_Receiver;
-
-#ifndef Event_Comm_Notification_ReceiverPtr
-#define Event_Comm_Notification_ReceiverPtr
-
- typedef Notification_Receiver* Notification_Receiver_ptr;
-
- typedef Notification_Receiver* Notification_ReceiverRef;
-
-#endif
-
-
-#ifndef Event_Comm_Notification_ReceiverForwH
-#define Event_Comm_Notification_ReceiverForwH
-static CORBA::ObjectRef Notification_Receiver_getBase (void *);
-static void Notification_Receiver_release (Notification_Receiver *, CORBA::Environment &IT_env);
-static void Notification_Receiver_release (Notification_Receiver_ptr);
-static Notification_Receiver* Notification_Receiver_duplicate (Notification_Receiver_ptr, CORBA::Environment &IT_env);
-static Notification_Receiver* Notification_Receiver_duplicate (Notification_Receiver_ptr );
-static Notification_Receiver_ptr Notification_Receiver_nil (CORBA::Environment &IT_env);
-static Notification_Receiver_ptr Notification_Receiver_nil ();
-#endif
-#define Event_Comm_Notification_Receiver_IMPL "Event_Comm_Notification_Receiver"
-
-
-class Notification_Receiver;
-
- typedef Notification_Receiver Notification_ReceiverProxy;
-#define Event_Comm_Notification_Receiver_IR "Event_Comm_Notification_Receiver"
-#define Event_Comm_Notification_Receiver_IMPL "Event_Comm_Notification_Receiver"
-
-#ifndef Event_Comm_Notification_ReceiverPtr
-#define Event_Comm_Notification_ReceiverPtr
-
- typedef Notification_Receiver* Notification_Receiver_ptr;
-
- typedef Notification_Receiver* Notification_ReceiverRef;
-
-#endif
-
-class Notification_Receiver: public virtual CORBA::Object {
-public:
- Notification_Receiver (char *IT_OR);
- Notification_Receiver (ObjectReference *IT_OR);
- Notification_Receiver () : CORBA::Object (1) {}
-protected:
- Notification_Receiver_ptr __duplicate(
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::Object::__duplicate (IT_env);
- return this;
- }
-public:
- static Notification_Receiver_ptr _duplicate(
- Notification_Receiver_ptr obj,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::EnvExcRaiser IT_raise (&IT_env);
- if (CORBA::is_nil(obj, IT_env)) {
- IT_raise.maybeRaise ();
- return (obj);
- }
- Notification_Receiver_ptr IT_obj = obj->__duplicate (IT_env);
- IT_raise.maybeRaise();
- return IT_obj;
- }
-public:
- static Notification_Receiver* _bind (const char* IT_markerServer, const char* host,
- const CORBA::Context &IT_c,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notification_Receiver* _bind (CORBA::Environment &IT_env);
- static Notification_Receiver* _bind (const char* IT_markerServer=NULL, const char* host=NULL,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notification_Receiver* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notification_Receiver_ptr _nil (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::EnvExcRaiser IT_raise (&IT_env);
- IT_raise.maybeRaise();
- return (Notification_Receiver_ptr) CORBA::OBJECT_NIL;}
- virtual void receive_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
- virtual void disconnect (const char * reason, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
-};
-
- static const CORBA::TypeCode_ptr _tc_Notification_Receiver;
-
- static const CORBA::TypeCode_ptr _tc_Notification_ReceiverRef;
-
-#ifndef Event_Comm_Notification_ReceiverVarH
-#define Event_Comm_Notification_ReceiverVarH
-
-#ifndef Event_Comm_Notification_ReceivervPtr
-#define Event_Comm_Notification_ReceivervPtr
-typedef Notification_Receiver* Notification_Receiver_vPtr;
-#endif
-
-class Notification_Receiver_var : public CORBA::_var
-{
- public:
-
- Notification_Receiver_var () {
- _ptr = Notification_Receiver_nil ();
- }
-
- Notification_Receiver_var (Notification_Receiver *IT_p) {
- _ptr = IT_p;
- }
-
- Notification_Receiver_var (const Notification_Receiver_var &IT_s) {
- _ptr = Notification_Receiver_duplicate (IT_s._ptr);
- }
-
- Notification_Receiver_var &operator= (Notification_Receiver *IT_p) {
- Notification_Receiver_release (_ptr);
- _ptr = IT_p;
- return (*this);
- }
-
- Notification_Receiver_var &operator= (const Notification_Receiver_var &IT_s) {
- Notification_Receiver_release (_ptr);
- _ptr = Notification_Receiver_duplicate (IT_s._ptr);
- return (*this);
- }
-
- ~Notification_Receiver_var () {
- Notification_Receiver_release (_ptr);
- }
-
- Notification_Receiver* operator-> () {
- return _ptr;
- }
-
- operator const Notification_Receiver_vPtr () const { return _ptr;}
- operator Notification_Receiver_vPtr& () { return _ptr;}
-
- protected:
- Notification_Receiver *_ptr;
- private:
- Notification_Receiver_var &operator= (const CORBA::_var &IT_s);
- Notification_Receiver_var (const CORBA::_var &IT_s);
- Notification_Receiver_var &operator= (const CORBA::_mgr &IT_s);
- Notification_Receiver_var &operator= (const CORBA::_SeqElem &IT_s);
- Notification_Receiver_var (const CORBA::_mgr &IT_s);
- Notification_Receiver_var (const CORBA::_SeqElem &IT_s);
-};
-
-#endif
-
-
-#ifndef Event_Comm_Notification_ReceiverMgrH
-#define Event_Comm_Notification_ReceiverMgrH
-
-class Notification_Receiver_mgr : public CORBA::_mgr
-{
- public:
-
- Notification_Receiver_mgr () {
- _ptr = Notification_Receiver_nil ();
- _release = 1;
- }
-
- Notification_Receiver_mgr (const Notification_Receiver_mgr &IT_s) {
- _ptr = Notification_Receiver_duplicate (IT_s._ptr);
- _release = 1;
- }
-
- Notification_Receiver_mgr &operator= (Notification_Receiver *IT_p) {
- if (_ptr && _release)
- Notification_Receiver_release (_ptr);
- _ptr = IT_p;
- _release = 1;
- return (*this);
- }
-
- Notification_Receiver_mgr &operator= (const Notification_Receiver_mgr &IT_s) {
- if (_ptr && _release)
- Notification_Receiver_release (_ptr);
- _ptr = Notification_Receiver_duplicate(IT_s._ptr);
- _release = 1;
- return (*this);
- }
-
- Notification_Receiver_mgr &operator= (const Notification_Receiver_var &IT_s) {
- if (_ptr && _release)
- Notification_Receiver_release (_ptr);
- _ptr = Notification_Receiver_duplicate(IT_s);
- _release = 1;
- return (*this);
- }
-
- ~Notification_Receiver_mgr () {
- if (_release)
- Notification_Receiver_release (_ptr);
- }
-
- unsigned char release () {
- return _release;
- }
-
- void release (unsigned char rel) {
- _release = rel;
- }
-
- operator int () const {
- CORBA::Environment env;
- CORBA::EnvExcRaiser IT_raise (&env);
- return (!(CORBA::is_nil((CORBA::Object*) _ptr, env)));
- }
-
- operator void* () const {
- return _ptr;
- }
-
- operator CORBA::Object * () const {
- return (CORBA::Object *) _ptr;
- }
-
- operator Notification_Receiver* () const {
- return (Notification_Receiver*) _ptr;
- }
-
- Notification_Receiver *_ptr;
-
- protected:
-
- unsigned char _release;
-};
-
-#endif
-
-#ifndef Event_Comm_Notification_ReceiverSeqElemH
-#define Event_Comm_Notification_ReceiverSeqElemH
-
-class Notification_Receiver_SeqElem : public CORBA::_SeqElem
-{
- public:
-
- Notification_Receiver_SeqElem (Event_Comm::Notification_Receiver_ptr* IT_p, unsigned char rel) {
- _ptr = IT_p;
- _release = rel;
- }
-
- Notification_Receiver_SeqElem &operator= (Event_Comm::Notification_Receiver_ptr IT_p) {
- if (!_ptr)
- return (*this);
- if (*(_ptr) && _release)
- Notification_Receiver_release (*(_ptr));
- *(_ptr) = IT_p;
- return (*this);
- }
-
- Notification_Receiver_SeqElem &operator= (const Notification_Receiver_SeqElem &IT_s) {
- if (!_ptr|| !IT_s._ptr)
- return (*this);
- if (*(_ptr) && _release)
- Notification_Receiver_release (*(_ptr));
- *(_ptr) = Notification_Receiver_duplicate(*(IT_s._ptr));
- return (*this);
- }
-
- operator Event_Comm::Notification_Receiver_ptr () const
-{
- if (!_ptr)
- return (Notification_Receiver_nil());
- return (Event_Comm::Notification_Receiver_ptr) (*_ptr);
- }
-
- Notification_Receiver_ptr operator->() const { return *_ptr;}
-
- protected:
- Event_Comm::Notification_Receiver_ptr *_ptr;
- unsigned char _release;
-};
-
-#endif
-
-
-#define TIE_Event_Comm_Notification_Receiver(X) Event_Comm_Notification_Receiver##X
-
-#define DEF_TIE_Event_Comm_Notification_Receiver(X) \
- class Event_Comm_Notification_Receiver##X : public virtual Event_Comm::Notification_Receiver { \
- X* m_obj; \
- public: \
- \
- Event_Comm_Notification_Receiver##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\
- : Event_Comm::Notification_Receiver(), CORBA::Object (), m_obj(objp) { \
- m_pptr = new Event_Comm::Notification_Receiver_dispatch \
- (( Event_Comm::Notification_Receiver*)this,(CORBA::Object*)this,m,l,Event_Comm_Notification_Receiver_IR,m_obj); \
- } \
- Event_Comm_Notification_Receiver##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\
- : Event_Comm::Notification_Receiver(), CORBA::Object () { \
- m_pptr = new Event_Comm::Notification_Receiver_dispatch \
- (( Event_Comm::Notification_Receiver*)this,(CORBA::Object*)this,IT_m,Event_Comm_Notification_Receiver_IR,IT_p,IT_q); \
- m_obj = (X*)(m_pptr->getImplObj ()); \
- } \
- \
- virtual ~Event_Comm_Notification_Receiver##X () { \
- if (_okToDeleteImpl ()) delete m_obj; } \
- \
- virtual void* _deref () { \
- return m_obj; } \
- \
- virtual void receive_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->receive_notification ( notification,IT_env);\
-}\
- \
- virtual void disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->disconnect ( reason,IT_env);\
-}\
- \
- };
-
-
-#define QUALS_Event_Comm_Notification_Receiver \
- virtual void receive_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->receive_notification ( notification,IT_env);\
-}\
- \
- virtual void disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->disconnect ( reason,IT_env);\
-}\
-
-
-
-
-class Notification_ReceiverProxyFactoryClass : public virtual CORBA::ObjectFactoryClass {
-public:
- Notification_ReceiverProxyFactoryClass (unsigned char IT_p=0)
- : CORBA::ProxyFactory (Event_Comm_Notification_Receiver_IR, IT_p) {}
-
- virtual void* New (char *IT_OR, CORBA::Environment&);
-
- virtual void* New (ObjectReference *IT_OR, CORBA::Environment&);
-
- virtual void* New2 ();
-
- virtual void* IT_castUp (void *IT_p, char* IT_s);
-
- virtual CORBA::PPTR* pptr (void *IT_p);
-
- virtual void baseInterfaces (_IDL_SEQUENCE_string&);
-
-
-};
-
-static Notification_ReceiverProxyFactoryClass Notification_ReceiverProxyFactory;
-
-
-
-#endif
-
-
-#ifndef _Event_Comm_Notifier_defined
-#define _Event_Comm_Notifier_defined
-class Notifier_dispatch : public virtual CORBA::PPTR {
-public:
-
- Notifier_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m,
- CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {}
-
-
- Notifier_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- Notifier_dispatch () {}
-
- Notifier_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- Notifier_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m,
- char *IT_i, CORBA::Object* IT_ob, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {}
-
-
- virtual unsigned char dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void* IT_pp=NULL);
-
-
-};
-
-class Notifier;
-
-#ifndef Event_Comm_NotifierPtr
-#define Event_Comm_NotifierPtr
-
- typedef Notifier* Notifier_ptr;
-
- typedef Notifier* NotifierRef;
-
-#endif
-
-
-#ifndef Event_Comm_NotifierForwH
-#define Event_Comm_NotifierForwH
-static CORBA::ObjectRef Notifier_getBase (void *);
-static void Notifier_release (Notifier *, CORBA::Environment &IT_env);
-static void Notifier_release (Notifier_ptr);
-static Notifier* Notifier_duplicate (Notifier_ptr, CORBA::Environment &IT_env);
-static Notifier* Notifier_duplicate (Notifier_ptr );
-static Notifier_ptr Notifier_nil (CORBA::Environment &IT_env);
-static Notifier_ptr Notifier_nil ();
-#endif
-#define Event_Comm_Notifier_IMPL "Event_Comm_Notifier"
-
-
-class Notifier;
-
- typedef Notifier NotifierProxy;
-#define Event_Comm_Notifier_IR "Event_Comm_Notifier"
-#define Event_Comm_Notifier_IMPL "Event_Comm_Notifier"
-
-#ifndef Event_Comm_NotifierPtr
-#define Event_Comm_NotifierPtr
-
- typedef Notifier* Notifier_ptr;
-
- typedef Notifier* NotifierRef;
-
-#endif
-
-class Notifier: public virtual CORBA::Object {
-public:
- Notifier (char *IT_OR);
- Notifier (ObjectReference *IT_OR);
- Notifier () : CORBA::Object (1) {}
-protected:
- Notifier_ptr __duplicate(
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::Object::__duplicate (IT_env);
- return this;
- }
-public:
- static Notifier_ptr _duplicate(
- Notifier_ptr obj,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::EnvExcRaiser IT_raise (&IT_env);
- if (CORBA::is_nil(obj, IT_env)) {
- IT_raise.maybeRaise ();
- return (obj);
- }
- Notifier_ptr IT_obj = obj->__duplicate (IT_env);
- IT_raise.maybeRaise();
- return IT_obj;
- }
-public:
- static Notifier* _bind (const char* IT_markerServer, const char* host,
- const CORBA::Context &IT_c,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notifier* _bind (CORBA::Environment &IT_env);
- static Notifier* _bind (const char* IT_markerServer=NULL, const char* host=NULL,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notifier* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notifier_ptr _nil (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::EnvExcRaiser IT_raise (&IT_env);
- IT_raise.maybeRaise();
- return (Notifier_ptr) CORBA::OBJECT_NIL;}
- virtual void send_disconnect (const char * reason, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
- virtual void send_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
- virtual void subscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
- virtual void unsubscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
-};
-
- static const CORBA::TypeCode_ptr _tc_Notifier;
-
- static const CORBA::TypeCode_ptr _tc_NotifierRef;
-
-#ifndef Event_Comm_NotifierVarH
-#define Event_Comm_NotifierVarH
-
-#ifndef Event_Comm_NotifiervPtr
-#define Event_Comm_NotifiervPtr
-typedef Notifier* Notifier_vPtr;
-#endif
-
-class Notifier_var : public CORBA::_var
-{
- public:
-
- Notifier_var () {
- _ptr = Notifier_nil ();
- }
-
- Notifier_var (Notifier *IT_p) {
- _ptr = IT_p;
- }
-
- Notifier_var (const Notifier_var &IT_s) {
- _ptr = Notifier_duplicate (IT_s._ptr);
- }
-
- Notifier_var &operator= (Notifier *IT_p) {
- Notifier_release (_ptr);
- _ptr = IT_p;
- return (*this);
- }
-
- Notifier_var &operator= (const Notifier_var &IT_s) {
- Notifier_release (_ptr);
- _ptr = Notifier_duplicate (IT_s._ptr);
- return (*this);
- }
-
- ~Notifier_var () {
- Notifier_release (_ptr);
- }
-
- Notifier* operator-> () {
- return _ptr;
- }
-
- operator const Notifier_vPtr () const { return _ptr;}
- operator Notifier_vPtr& () { return _ptr;}
-
- protected:
- Notifier *_ptr;
- private:
- Notifier_var &operator= (const CORBA::_var &IT_s);
- Notifier_var (const CORBA::_var &IT_s);
- Notifier_var &operator= (const CORBA::_mgr &IT_s);
- Notifier_var &operator= (const CORBA::_SeqElem &IT_s);
- Notifier_var (const CORBA::_mgr &IT_s);
- Notifier_var (const CORBA::_SeqElem &IT_s);
-};
-
-#endif
-
-
-#ifndef Event_Comm_NotifierMgrH
-#define Event_Comm_NotifierMgrH
-
-class Notifier_mgr : public CORBA::_mgr
-{
- public:
-
- Notifier_mgr () {
- _ptr = Notifier_nil ();
- _release = 1;
- }
-
- Notifier_mgr (const Notifier_mgr &IT_s) {
- _ptr = Notifier_duplicate (IT_s._ptr);
- _release = 1;
- }
-
- Notifier_mgr &operator= (Notifier *IT_p) {
- if (_ptr && _release)
- Notifier_release (_ptr);
- _ptr = IT_p;
- _release = 1;
- return (*this);
- }
-
- Notifier_mgr &operator= (const Notifier_mgr &IT_s) {
- if (_ptr && _release)
- Notifier_release (_ptr);
- _ptr = Notifier_duplicate(IT_s._ptr);
- _release = 1;
- return (*this);
- }
-
- Notifier_mgr &operator= (const Notifier_var &IT_s) {
- if (_ptr && _release)
- Notifier_release (_ptr);
- _ptr = Notifier_duplicate(IT_s);
- _release = 1;
- return (*this);
- }
-
- ~Notifier_mgr () {
- if (_release)
- Notifier_release (_ptr);
- }
-
- unsigned char release () {
- return _release;
- }
-
- void release (unsigned char rel) {
- _release = rel;
- }
-
- operator int () const {
- CORBA::Environment env;
- CORBA::EnvExcRaiser IT_raise (&env);
- return (!(CORBA::is_nil((CORBA::Object*) _ptr, env)));
- }
-
- operator void* () const {
- return _ptr;
- }
-
- operator CORBA::Object * () const {
- return (CORBA::Object *) _ptr;
- }
-
- operator Notifier* () const {
- return (Notifier*) _ptr;
- }
-
- Notifier *_ptr;
-
- protected:
-
- unsigned char _release;
-};
-
-#endif
-
-#ifndef Event_Comm_NotifierSeqElemH
-#define Event_Comm_NotifierSeqElemH
-
-class Notifier_SeqElem : public CORBA::_SeqElem
-{
- public:
-
- Notifier_SeqElem (Event_Comm::Notifier_ptr* IT_p, unsigned char rel) {
- _ptr = IT_p;
- _release = rel;
- }
-
- Notifier_SeqElem &operator= (Event_Comm::Notifier_ptr IT_p) {
- if (!_ptr)
- return (*this);
- if (*(_ptr) && _release)
- Notifier_release (*(_ptr));
- *(_ptr) = IT_p;
- return (*this);
- }
-
- Notifier_SeqElem &operator= (const Notifier_SeqElem &IT_s) {
- if (!_ptr|| !IT_s._ptr)
- return (*this);
- if (*(_ptr) && _release)
- Notifier_release (*(_ptr));
- *(_ptr) = Notifier_duplicate(*(IT_s._ptr));
- return (*this);
- }
-
- operator Event_Comm::Notifier_ptr () const
-{
- if (!_ptr)
- return (Notifier_nil());
- return (Event_Comm::Notifier_ptr) (*_ptr);
- }
-
- Notifier_ptr operator->() const { return *_ptr;}
-
- protected:
- Event_Comm::Notifier_ptr *_ptr;
- unsigned char _release;
-};
-
-#endif
-
-
-#define TIE_Event_Comm_Notifier(X) Event_Comm_Notifier##X
-
-#define DEF_TIE_Event_Comm_Notifier(X) \
- class Event_Comm_Notifier##X : public virtual Event_Comm::Notifier { \
- X* m_obj; \
- public: \
- \
- Event_Comm_Notifier##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\
- : Event_Comm::Notifier(), CORBA::Object (), m_obj(objp) { \
- m_pptr = new Event_Comm::Notifier_dispatch \
- (( Event_Comm::Notifier*)this,(CORBA::Object*)this,m,l,Event_Comm_Notifier_IR,m_obj); \
- } \
- Event_Comm_Notifier##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\
- : Event_Comm::Notifier(), CORBA::Object () { \
- m_pptr = new Event_Comm::Notifier_dispatch \
- (( Event_Comm::Notifier*)this,(CORBA::Object*)this,IT_m,Event_Comm_Notifier_IR,IT_p,IT_q); \
- m_obj = (X*)(m_pptr->getImplObj ()); \
- } \
- \
- virtual ~Event_Comm_Notifier##X () { \
- if (_okToDeleteImpl ()) delete m_obj; } \
- \
- virtual void* _deref () { \
- return m_obj; } \
- \
- virtual void send_disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->send_disconnect ( reason,IT_env);\
-}\
- \
- virtual void send_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->send_notification ( notification,IT_env);\
-}\
- \
- virtual void subscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->subscribe ( notification_receiver, filtering_criteria,IT_env);\
-}\
- \
- virtual void unsubscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->unsubscribe ( notification_receiver, filtering_criteria,IT_env);\
-}\
- \
- };
-
-
-#define QUALS_Event_Comm_Notifier \
- virtual void send_disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->send_disconnect ( reason,IT_env);\
-}\
- \
- virtual void send_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->send_notification ( notification,IT_env);\
-}\
- \
- virtual void subscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->subscribe ( notification_receiver, filtering_criteria,IT_env);\
-}\
- \
- virtual void unsubscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->unsubscribe ( notification_receiver, filtering_criteria,IT_env);\
-}\
-
-
-
-
-class NotifierProxyFactoryClass : public virtual CORBA::ObjectFactoryClass {
-public:
- NotifierProxyFactoryClass (unsigned char IT_p=0)
- : CORBA::ProxyFactory (Event_Comm_Notifier_IR, IT_p) {}
-
- virtual void* New (char *IT_OR, CORBA::Environment&);
-
- virtual void* New (ObjectReference *IT_OR, CORBA::Environment&);
-
- virtual void* New2 ();
-
- virtual void* IT_castUp (void *IT_p, char* IT_s);
-
- virtual CORBA::PPTR* pptr (void *IT_p);
-
- virtual void baseInterfaces (_IDL_SEQUENCE_string&);
-
-
-};
-
-static NotifierProxyFactoryClass NotifierProxyFactory;
-
-
-
-#endif
-
-};
-
-
-void operator<<= (CORBA::any &IT_a, Event_Comm::Notification_Receiver_ptr IT_t);
-CORBA::Boolean operator>>= (const CORBA::any &IT_a, Event_Comm::Notification_Receiver_ptr& IT_t);
-
-
-void operator<<= (CORBA::any &IT_a, Event_Comm::Notifier_ptr IT_t);
-CORBA::Boolean operator>>= (const CORBA::any &IT_a, Event_Comm::Notifier_ptr& IT_t);
-
-
-void operator<<= (CORBA::any &IT_a, const Event_Comm::Notification& IT_t);
-CORBA::Boolean operator>>= (const CORBA::any &IT_a, Event_Comm::Notification*& IT_t);
-
-
-#endif
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.idl b/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.idl
deleted file mode 100644
index de8fa2cada2..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.idl
+++ /dev/null
@@ -1,88 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Event_Comm.idl
-//
-// = DESCRIPTION
-// The CORBA IDL module for distributed event notification.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#if !defined (_EVENT_COMM_IDL)
-#define _EVENT_COMM_IDL
-
-module Event_Comm
-{
- // = TITLE
- // The CORBA IDL module for distributed event notification.
-
- struct Notification
- {
- // = TITLE
- // Defines the interface for an event <Notification>.
- //
- // = This is the type passed by the Notifier to the Notification_Receiver.
- // Since it contains an <any>, it can hold any values. Naturally,
- // the consumer must understand how to interpret this!
-
- string tag_;
- // Tag for the notification.
-
- any value_;
- // A notification can contain anything.
-
- Object object_ref_;
- // Object reference for callbacks.
- };
-
- interface Notification_Receiver
- // = TITLE
- // Defines the interface for a <Notification_Receiver> of events.
- // Note that all operations are <oneway> to avoid blocking.
- {
- void receive_notification (in Notification notification);
- // Inform the <Notification_Receiver> that <event> has occurred.
-
- void disconnect (in string reason);
- // Disconnect the <Notification_Receiver> from the <Notifier>,
- // giving it the <reason>.
- };
-
- interface Notifier
- {
- // = TITLE
- // Defines the interface for a <Notifier> of events.
-
- void send_disconnect (in string reason);
- // Disconnect all the receivers, giving them the <reason>.
-
- void send_notification (in Notification notification);
- // Send the <Notification> to all the consumers who
- // have subscribed and who match the filtering criteria.
-
- void subscribe (in Notification_Receiver notification_receiver,
- in string filtering_criteria);
- // Subscribe the <Notification_Receiver> to receive events that
- // match the regular expresssion <filtering_criteria> applied by
- // the <Notifier>. If <filtering_criteria> is "" then all events
- // are matched.
-
- void unsubscribe (in Notification_Receiver notification_receiver,
- in string filtering_criteria);
- // Unsubscribe the <Notification_Receiver> that matches the
- // filtering criteria. If <filtering_criteria> is "" then all
- // <Notification_Receivers> with the matching object reference are
- // removed.
- };
-};
-
-#endif /* _EVENT_COMM_IDL */
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp b/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp
deleted file mode 100644
index 973c508fb19..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp
+++ /dev/null
@@ -1,351 +0,0 @@
-// $Id$
-
-#include "Event_Comm.hh"
-
-ACE_RCSID(libsrc, Event_CommC, "$Id$")
-
-#ifndef Event_Comm_Notification_Ops
-#define Event_Comm_Notification_Ops
-
-void Event_Comm::Notification:: encodeOp (CORBA::Request &IT_r) const {
- IT_r.encodeStringOp (tag_);
-}
-
-void Event_Comm::Notification:: decodeOp (CORBA::Request &IT_r) {
- IT_r.decodeStringOp(tag_);
-}
-
-void Event_Comm::Notification:: decodeInOutOp (CORBA::Request &IT_r) {
- IT_r.decodeInOutStrOp(tag_, 0);
-}
-
-void* Event_Comm::Notification:: IT_anySupport (CORBA::Request &IT_r,
- void *& IT_v, void *IT_to, const CORBA::Flags& IT_f) {
- Event_Comm::Notification* IT_l = (Event_Comm::Notification*)IT_v;
-
- if (IT_f.isSetAll (CORBA::ARG_INOUT)) {
- if (!IT_l)
- IT_l = new Event_Comm::Notification();
- IT_l -> decodeInOutOp (IT_r);
- IT_v = IT_l;
- }
- else if (IT_f.isSet (CORBA::ARG_IN)) {
- IT_l -> encodeOp (IT_r);
- }
- else if (IT_f.isSet (CORBA::ARG_OUT)) {
- if (!IT_l)
- IT_l = new Event_Comm::Notification();
- IT_l -> decodeOp (IT_r);
- IT_v = IT_l;
- }
- else if (IT_f.isSet (CORBA::_ANY_ASSIGN)) {
- Event_Comm::Notification*IT_s = IT_to ? (Event_Comm::Notification*)IT_to : new Event_Comm::Notification;
- *IT_s = *IT_l; return IT_s;
- }
- else if (IT_f.isSet (CORBA::_ANY_DELETE)) {
- if (IT_to) IT_l->Event_Comm::Notification::~Notification();
- else delete IT_l;
- return NULL;
- }
- else if (IT_f.isSet (CORBA::_ANY_SIZEOF)) {
- return (void*) (sizeof (Event_Comm::Notification));
- }
- else if (IT_f.isNil ()) {
- if (!IT_l)
- IT_l = new Event_Comm::Notification();
- IT_l -> decodeOp (IT_r);
- IT_v = IT_l;
- }
- return NULL;
-}
-
-const void *Event_Comm::Notification:: IT_fn =
-CORBA::anyTable.record ("Event_Comm::Notification", &Event_Comm::Notification:: IT_anySupport);
-
-Event_Comm::Notification &Event_Comm::Notification:: operator= (const Event_Comm::IONANC_Notification& IT_p) {
- this->operator= (*(Event_Comm::Notification*) &IT_p);
- return (*this);
-}
-
-Event_Comm::Notification:: operator Event_Comm::IONANC_Notification () {
- Event_Comm::IONANC_Notification tmp;
- memset (&tmp, 0, sizeof(tmp));
- ((Event_Comm::Notification *) &tmp)->operator= (*this);
- return tmp;
-}
-
-Event_Comm::Notification:: operator const Event_Comm::IONANC_Notification () const {
- Event_Comm::IONANC_Notification tmp;
- memset (&tmp, 0, sizeof(tmp));
- ((Event_Comm::Notification *) &tmp)->operator= (*this);
- return tmp;
-}
-
-Event_Comm::Notification::~Notification () {
- if (tag_) delete [] tag_;
-}
-
-Event_Comm::Notification:: Notification (const Event_Comm::Notification &IT_s)
- {
- if (IT_s.tag_) {
- tag_=new char [strlen(IT_s.tag_)+1];
- strcpy (tag_, IT_s.tag_);
- }
- else {
- tag_ = NULL;
- }
-}
-
-Event_Comm::Notification:: Notification () {
- tag_ = NULL;
-}
-
-Event_Comm::Notification &Event_Comm::Notification:: operator= (const Event_Comm::Notification& IT_s) {
- if (this == &IT_s) return *this;
- if (tag_) delete [] tag_;
- if (IT_s.tag_) {
- tag_=new char [strlen(IT_s.tag_)+1];
- strcpy (tag_, IT_s.tag_);
- }
- else {
- tag_ = NULL;
- }
- return *this;
-}
-
-Event_Comm::IONANC_Notification:: operator Event_Comm::Notification () {
- return (*((Event_Comm::Notification *) this));
-}
-
-Event_Comm::IONANC_Notification:: operator const Event_Comm::Notification () const {
- return (*((const Event_Comm::Notification *) this));
-}
-
-
-#endif
-Event_Comm::Notification_Receiver::Notification_Receiver (char *IT_OR) {
- m_pptr = new Notification_Receiver_dispatch (IT_OR, this,(CORBA::Object*)this);
-}
-
-#ifndef Event_Comm_Notification_ReceiverForwC
-#define Event_Comm_Notification_ReceiverForwC
-CORBA::ObjectRef Event_Comm::Notification_Receiver_getBase(void *IT_p){
- return (Event_Comm::Notification_Receiver*)IT_p;}
-
-void Event_Comm::Notification_Receiver_release (void *IT_p, CORBA::Environment &IT_env) {
- ((Event_Comm::Notification_Receiver*)IT_p)->_release(IT_env);}
-
-Event_Comm::Notification_Receiver* Event_Comm::Notification_Receiver_duplicate (void *IT_p, CORBA::Environment &IT_env) {
- return ((Event_Comm::Notification_Receiver*)IT_p)->_duplicate(IT_env); }
-#endif
-
-
-
-Event_Comm::Notification_Receiver* Event_Comm::Notification_Receiver:: _bind (const char* IT_markerServer, const char* host,
- const CORBA::Context &IT_c,
- CORBA::Environment &IT_env) {
- Notification_Receiver*IT_p =
- (Notification_Receiver*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host,
- Event_Comm_Notification_Receiver_IMPL, Event_Comm_Notification_Receiver_IR);
- return IT_p ? IT_p->_duplicate () : NULL; }
-
-
-
-Event_Comm::Notification_Receiver* Event_Comm::Notification_Receiver:: _bind (CORBA::Environment &IT_env) {
- return _bind (NULL,NULL,CORBA::Context(), IT_env); }
-
-
-Event_Comm::Notification_Receiver* Event_Comm::Notification_Receiver:: _bind (const char* IT_markerServer, const char* host,
- CORBA::Environment &IT_env) {
- return _bind (IT_markerServer, host, CORBA::Context (), IT_env); }
-Event_Comm::Notification_Receiver* Event_Comm::Notification_Receiver::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_env) {
- Event_Comm::Notification_Receiver* IT_p = (Event_Comm::Notification_Receiver*)CORBA::Object::_castDown (IT_obj, Event_Comm_Notification_Receiver_IR, IT_env);
- return IT_p ? IT_p->_duplicate(IT_env) : NULL;
- }
-
-void* Event_Comm::Notification_ReceiverProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) {
- return new Notification_Receiver(IT_OR);}
-
-void* Event_Comm::Notification_ReceiverProxyFactoryClass::New2 () {
- return new Notification_Receiver();}
-
-void* Event_Comm::Notification_ReceiverProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s) {
- void *IT_l;
- if (!CORBA::_interfaceCmp (IT_s,Event_Comm_Notification_Receiver_IR))
- return IT_p;
- else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((Event_Comm::Notification_Receiver*)IT_p),IT_s))
- return IT_l;
- else return NULL;
- }
-
-
-CORBA::PPTR* Event_Comm::Notification_ReceiverProxyFactoryClass::pptr (void *IT_p) {
- return ((Event_Comm::Notification_Receiver*)IT_p)->_pptr ();}
-
-void Event_Comm::Notification_ReceiverProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) {
- add (seq, Event_Comm_Notification_Receiver_IR);
- CORBA::ObjectFactoryClass::baseInterfaces (seq);
-}
-
- void Event_Comm::Notification_Receiver:: receive_notification(const Event_Comm::Notification& notification, CORBA::Environment &IT_env) {
-
- if (IT_env || m_isNull) return ;
- CORBA::Request IT_r (this, "receive_notification",IT_env,1,1);
- if (!IT_r.isException (IT_env)) {
- notification.encodeOp (IT_r);
- }
-
- IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env);
- }
-
- void Event_Comm::Notification_Receiver:: disconnect(const char * reason, CORBA::Environment &IT_env) {
-
- if (IT_env || m_isNull) return ;
- CORBA::Request IT_r (this, "disconnect",IT_env,1,1);
- if (!IT_r.isException (IT_env)) {
- IT_r.encodeStringOp (reason);
- }
-
- IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env);
- }
-
-
-Event_Comm::Notification_ReceiverProxyFactoryClass Event_Comm::Notification_ReceiverProxyFactory(1);
-
-
-#ifndef Event_Comm_Notification_Receiver_dispatch_impl
-
-unsigned char Event_Comm::Notification_Receiver_dispatch::dispatch (CORBA::Request &IT_r,
- unsigned char, void *) {
- IT_r.makeRuntimeException1 ("Event_Comm::Notification_Receiver");
- return 0;
-}
-
-#endif
-
-Event_Comm::Notifier::Notifier (char *IT_OR) {
- m_pptr = new Notifier_dispatch (IT_OR, this,(CORBA::Object*)this);
-}
-
-#ifndef Event_Comm_NotifierForwC
-#define Event_Comm_NotifierForwC
-CORBA::ObjectRef Event_Comm::Notifier_getBase(void *IT_p){
- return (Event_Comm::Notifier*)IT_p;}
-
-void Event_Comm::Notifier_release (void *IT_p, CORBA::Environment &IT_env) {
- ((Event_Comm::Notifier*)IT_p)->_release(IT_env);}
-
-Event_Comm::Notifier* Event_Comm::Notifier_duplicate (void *IT_p, CORBA::Environment &IT_env) {
- return ((Event_Comm::Notifier*)IT_p)->_duplicate(IT_env); }
-#endif
-
-
-
-Event_Comm::Notifier* Event_Comm::Notifier:: _bind (const char* IT_markerServer, const char* host,
- const CORBA::Context &IT_c,
- CORBA::Environment &IT_env) {
- Notifier*IT_p =
- (Notifier*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host,
- Event_Comm_Notifier_IMPL, Event_Comm_Notifier_IR);
- return IT_p ? IT_p->_duplicate () : NULL; }
-
-
-
-Event_Comm::Notifier* Event_Comm::Notifier:: _bind (CORBA::Environment &IT_env) {
- return _bind (NULL,NULL,CORBA::Context(), IT_env); }
-
-
-Event_Comm::Notifier* Event_Comm::Notifier:: _bind (const char* IT_markerServer, const char* host,
- CORBA::Environment &IT_env) {
- return _bind (IT_markerServer, host, CORBA::Context (), IT_env); }
-Event_Comm::Notifier* Event_Comm::Notifier::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_env) {
- Event_Comm::Notifier* IT_p = (Event_Comm::Notifier*)CORBA::Object::_castDown (IT_obj, Event_Comm_Notifier_IR, IT_env);
- return IT_p ? IT_p->_duplicate(IT_env) : NULL;
- }
-
-void* Event_Comm::NotifierProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) {
- return new Notifier(IT_OR);}
-
-void* Event_Comm::NotifierProxyFactoryClass::New2 () {
- return new Notifier();}
-
-void* Event_Comm::NotifierProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s) {
- void *IT_l;
- if (!CORBA::_interfaceCmp (IT_s,Event_Comm_Notifier_IR))
- return IT_p;
- else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((Event_Comm::Notifier*)IT_p),IT_s))
- return IT_l;
- else return NULL;
- }
-
-
-CORBA::PPTR* Event_Comm::NotifierProxyFactoryClass::pptr (void *IT_p) {
- return ((Event_Comm::Notifier*)IT_p)->_pptr ();}
-
-void Event_Comm::NotifierProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) {
- add (seq, Event_Comm_Notifier_IR);
- CORBA::ObjectFactoryClass::baseInterfaces (seq);
-}
-
- void Event_Comm::Notifier:: send_disconnect(const char * reason, CORBA::Environment &IT_env) {
-
- if (IT_env || m_isNull) return ;
- CORBA::Request IT_r (this, "send_disconnect",IT_env,1,1);
- if (!IT_r.isException (IT_env)) {
- IT_r.encodeStringOp (reason);
- }
-
- IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env);
- }
-
- void Event_Comm::Notifier:: send_notification(const Event_Comm::Notification& notification, CORBA::Environment &IT_env) {
-
- if (IT_env || m_isNull) return ;
- CORBA::Request IT_r (this, "send_notification",IT_env,1,1);
- if (!IT_r.isException (IT_env)) {
- notification.encodeOp (IT_r);
- }
-
- IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env);
- }
-
- void Event_Comm::Notifier:: subscribe(Event_Comm::Notification_Receiver* notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) {
-
- if (IT_env || m_isNull) return ;
- CORBA::Request IT_r (this, "subscribe",IT_env,1,1);
- if (!IT_r.isException (IT_env)) {
- IT_r << (CORBA::Object*)notification_receiver;
-
- IT_r.encodeStringOp (filtering_criteria);
- }
-
- IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env);
- }
-
- void Event_Comm::Notifier:: unsubscribe(Event_Comm::Notification_Receiver* notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) {
-
- if (IT_env || m_isNull) return ;
- CORBA::Request IT_r (this, "unsubscribe",IT_env,1,1);
- if (!IT_r.isException (IT_env)) {
- IT_r << (CORBA::Object*)notification_receiver;
-
- IT_r.encodeStringOp (filtering_criteria);
- }
-
- IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env);
- }
-
-
-Event_Comm::NotifierProxyFactoryClass Event_Comm::NotifierProxyFactory(1);
-
-
-#ifndef Event_Comm_Notifier_dispatch_impl
-
-unsigned char Event_Comm::Notifier_dispatch::dispatch (CORBA::Request &IT_r,
- unsigned char, void *) {
- IT_r.makeRuntimeException1 ("Event_Comm::Notifier");
- return 0;
-}
-
-#endif
-
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp b/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp
deleted file mode 100644
index 724ecc28c63..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp
+++ /dev/null
@@ -1,166 +0,0 @@
-// $Id$
-
-#include "Event_Comm.hh"
-
-ACE_RCSID(libsrc, Event_CommS, "$Id$")
-
-#define Event_Comm_Notification_Receiver_dispatch_impl
-
-unsigned char Event_Comm::Notification_Receiver_dispatch::dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void *IT_pp) {
- if (!IT_pp)
- IT_pp = m_obj;
- const char *IT_s = IT_r.getOperation ();
- if (!strcmp(IT_s,"receive_notification")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~receive_notification~+notification{R~Event_Comm::Notification~tag_{0}},>{v},O{}\
-"))
- return 1;
- Event_Comm::Notification notification;
- notification.decodeOp (IT_r);
-
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((Event_Comm::Notification_Receiver*)IT_pp)->receive_notification ( notification, IT_env);
-
- IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env);
- return 1;
- }
-
- else if (!strcmp(IT_s,"disconnect")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~disconnect~+reason{0},>{v},O{}\
-"))
- return 1;
- char * reason;
- IT_r.decodeStringOp(reason);
-
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((Event_Comm::Notification_Receiver*)IT_pp)->disconnect ( reason, IT_env);
-
- delete [] reason;
- IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env);
- return 1;
- }
-
- else if (IT_isTarget)
- IT_r.makeRuntimeException2 ();
-
- return 0;
-}
-
-#define Event_Comm_Notifier_dispatch_impl
-
-unsigned char Event_Comm::Notifier_dispatch::dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void *IT_pp) {
- if (!IT_pp)
- IT_pp = m_obj;
- const char *IT_s = IT_r.getOperation ();
- if (!strcmp(IT_s,"send_disconnect")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~send_disconnect~+reason{0},>{v},O{}\
-"))
- return 1;
- char * reason;
- IT_r.decodeStringOp(reason);
-
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((Event_Comm::Notifier*)IT_pp)->send_disconnect ( reason, IT_env);
-
- delete [] reason;
- IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env);
- return 1;
- }
-
- else if (!strcmp(IT_s,"send_notification")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~send_notification~+notification{R~Event_Comm::Notification~tag_{0}},>{v},O{}\
-"))
- return 1;
- Event_Comm::Notification notification;
- notification.decodeOp (IT_r);
-
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((Event_Comm::Notifier*)IT_pp)->send_notification ( notification, IT_env);
-
- IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env);
- return 1;
- }
-
- else if (!strcmp(IT_s,"subscribe")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~subscribe~+notification_receiver{O~Event_Comm::Notification_Receiver},+filtering_criteria{0},>{v},O{}\
-"))
- return 1;
- Event_Comm::Notification_Receiver* notification_receiver;
- notification_receiver = (Event_Comm::Notification_Receiver*) IT_r.decodeObjRef (Event_Comm_Notification_Receiver_IR);
- if (notification_receiver) notification_receiver->_duplicate ();
-
- char * filtering_criteria;
- IT_r.decodeStringOp(filtering_criteria);
-
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((Event_Comm::Notifier*)IT_pp)->subscribe ( notification_receiver, filtering_criteria, IT_env);
-
- if (notification_receiver) notification_receiver->_release ();
-
- delete [] filtering_criteria;
- IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env);
-
- return 1;
- }
-
- else if (!strcmp(IT_s,"unsubscribe")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~unsubscribe~+notification_receiver{O~Event_Comm::Notification_Receiver},+filtering_criteria{0},>{v},O{}\
-"))
- return 1;
- Event_Comm::Notification_Receiver* notification_receiver;
- notification_receiver = (Event_Comm::Notification_Receiver*) IT_r.decodeObjRef (Event_Comm_Notification_Receiver_IR);
- if (notification_receiver) notification_receiver->_duplicate ();
-
- char * filtering_criteria;
- IT_r.decodeStringOp(filtering_criteria);
-
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((Event_Comm::Notifier*)IT_pp)->unsubscribe ( notification_receiver, filtering_criteria, IT_env);
-
- if (notification_receiver) notification_receiver->_release ();
-
- delete [] filtering_criteria;
- IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env);
-
- return 1;
- }
-
- else if (IT_isTarget)
- IT_r.makeRuntimeException2 ();
-
- return 0;
-}
-
-#include "Event_CommC.cpp"
-
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm_i.h b/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm_i.h
deleted file mode 100644
index 8142ac91632..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm_i.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Event_Comm_i.h
-//
-// = DESCRIPTION
-// Class interface for the implementation of the distributed
-// event notification mechanism.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#ifndef _EVENT_COMM_I_H
-#define _EVENT_COMM_I_H
-
-#include "Notification_Receiver_i.h"
-#include "Notifier_i.h"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-// Tie the <Notification_Receiver> and <Notifier> implementation
-// classes together with the IDL interface.
-
-DEF_TIE_Event_Comm_Notification_Receiver (Notification_Receiver_i)
-DEF_TIE_Event_Comm_Notifier (Notifier_i)
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _EVENT_COMM_I_H */
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Makefile b/apps/Orbix-Examples/Event_Comm/libsrc/Makefile
deleted file mode 100644
index 42c32b7c81b..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Makefile
+++ /dev/null
@@ -1,113 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the Event Communications library
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-LIB = libEvent_Comm.a
-SHLIB = libEvent_Comm.so
-
-FILES = Event_CommS \
- Event_CommC \
- Notifier_i \
- Notification_Receiver_i
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LOBJ = $(addsuffix .o,$(FILES))
-SHOBJ = $(addsuffix .so,$(FILES))
-
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-BUILD = $(VLIB)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Orbix related macros and target settings.
-#----------------------------------------------------------------------------
-
-ORBIX_BINDIR = $(ORBIX_ROOT)/bin
-ORBIX_LIBDIR = $(ORBIX_ROOT)/lib
-ORBIX_INCDIR = $(ORBIX_ROOT)/include
-
-CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS
-LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR)
-
-IDLFLAGS = -A -s S.cpp -c C.cpp
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-Event_CommS.o: Event_CommS.cpp Event_Comm.hh Event_CommC.cpp
-Event_CommC.o: Event_CommC.cpp Event_Comm.hh
-Notifier_i.o: Notifier_i.cpp \
- ${ACE_ROOT}ace/Log_Msg.h \
- ${ACE_ROOT}ace/Log_Record.h \
- ${ACE_ROOT}ace/sysincludes.h \
- ${ACE_ROOT}ace/config.h \
- ${ACE_ROOT}ace/Log_Priority.h \
- ${ACE_ROOT}ace/Log_Record.i \
- ${ACE_ROOT}ace/Log_Msg.i \
- ${ACE_ROOT}ace/Thread_Specific.h \
- ${ACE_ROOT}ace/Synch.h \
- ${ACE_ROOT}ace/Time_Value.h \
- ${ACE_ROOT}ace/Synch_T.h \
- ${ACE_ROOT}ace/Thread_Specific.i \
- Notification_Receiver_i.h Notifier_i.h \
- ${ACE_ROOT}ace/Map_Manager.h \
- ${ACE_ROOT}ace/SString.h \
- ${ACE_ROOT}ace/SString.i \
- Event_Comm.hh
-Notification_Receiver_i.o: Notification_Receiver_i.cpp \
- ${ACE_ROOT}ace/Log_Msg.h \
- ${ACE_ROOT}ace/Log_Record.h \
- ${ACE_ROOT}ace/sysincludes.h \
- ${ACE_ROOT}ace/config.h \
- ${ACE_ROOT}ace/Log_Priority.h \
- ${ACE_ROOT}ace/Log_Record.i \
- ${ACE_ROOT}ace/Log_Msg.i \
- ${ACE_ROOT}ace/Thread_Specific.h \
- ${ACE_ROOT}ace/Synch.h \
- ${ACE_ROOT}ace/Time_Value.h \
- ${ACE_ROOT}ace/Synch_T.h \
- ${ACE_ROOT}ace/Thread_Specific.i \
- ${ACE_ROOT}ace/Service_Config.h \
- ${ACE_ROOT}ace/Reactor.h \
- ${ACE_ROOT}ace/Handle_Set.h \
- ${ACE_ROOT}ace/Handle_Set.i \
- ${ACE_ROOT}ace/Timer_Queue.h \
- ${ACE_ROOT}ace/Event_Handler.h \
- ${ACE_ROOT}ace/Timer_Queue.i \
- ${ACE_ROOT}ace/Signal.h \
- ${ACE_ROOT}ace/Set.h \
- ${ACE_ROOT}ace/Thread.h \
- ${ACE_ROOT}ace/Token.h \
- ${ACE_ROOT}ace/Reactor.i \
- ${ACE_ROOT}ace/Service_Object.h \
- ${ACE_ROOT}ace/Shared_Object.h \
- ${ACE_ROOT}ace/Service_Types.h \
- ${ACE_ROOT}ace/Thread_Manager.h \
- Notification_Receiver_i.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notification.idl b/apps/Orbix-Examples/Event_Comm/libsrc/Notification.idl
deleted file mode 100644
index c35b48eb457..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notification.idl
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Notification.idl
-//
-// = DESCRIPTION
-// This is the CORBA IDL interface for the Event Communication <Notification>.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#if !defined (_NOTIFICATION_IDL)
-#define _NOTIFICATION_IDL
-
-struct Notification
-{
- // = TITLE
- // Defines the interface for an event <Notification>.
- //
- // = This is the type passed by the Notifier to the Notification_Receiver.
- // Since it contains an <any>, it can hold any values. Naturally,
- // the consumer must understand how to interpret this!
- string tag_;
- // Tag for the notification.
-
- any value_;
- // A notification can contain anything.
-
- Object object_ref_;
- // Object reference for callbacks.
-};
-
-#endif /* _NOTIFICATION_IDL */
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver.idl b/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver.idl
deleted file mode 100644
index d182cbd1531..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver.idl
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Notification_Receiver.idl
-//
-// = DESCRIPTION
-// The CORBA IDL interface for the Event Communication
-// <Notification_Receiver> component.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#include "Notification.idl"
-
-#ifndef _Notification_Receiver_iDL
-#define _Notification_Receiver_iDL
-
-interface Notification_Receiver
-{
- // = TITLE
- // Defines the interface for a <Notification_Receiver> of events.
- // Note that all operations are <oneway> to avoid blocking.
-
- void receive_notification (in Notification notification);
- // Inform the <Notification_Receiver> that <event> has occurred.
-
- void disconnect (in string reason);
- // Disconnect the <Notification_Receiver> from the <Notifier>,
- // giving it the <reason>.
-};
-
-#endif /* _Notification_Receiver_iDL */
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp b/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp
deleted file mode 100644
index c8f4f82a126..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// $Id$
-
-#include "ace/Service_Config.h"
-#include "Notification_Receiver_i.h"
-
-ACE_RCSID(libsrc, Notification_Receiver_i, "$Id$")
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-Notification_Receiver_i::Notification_Receiver_i (void)
-{
-}
-
-Notification_Receiver_i::~Notification_Receiver_i (void)
-{
-}
-
-// Inform the <Event_Comm::Notification_Receiver> that <event> has occurred.
-
-void
-Notification_Receiver_i::receive_notification
- (const Event_Comm::Notification &notification,
- CORBA::Environment &IT_env)
-{
- const char *tmpstr = notification.tag_;
-
- ACE_DEBUG ((LM_DEBUG,
- "**** got notification = %s\n",
- tmpstr));
-}
-
-// Disconnect the <Event_Comm::Notification_Receiver> from the <Event_Comm::Notifier>.
-
-void
-Notification_Receiver_i::disconnect (const char *reason,
- CORBA::Environment &IT_env)
-{
- ACE_DEBUG ((LM_DEBUG,
- "**** got disconnected due to %s\n",
- reason));
- ACE_Reactor::end_event_loop ();
-}
-
-#endif /* ACE_HAS_ORBIX */
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.h b/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.h
deleted file mode 100644
index 4466db11c21..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Notification_Receiver__i.h
-//
-// = DESCRIPTION
-// Class interface for the implementation of the <Notification_Receiver>
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#ifndef _Notification_Receiver_i_H
-#define _Notification_Receiver_i_H
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-#include "Event_Comm.hh"
-
-class Notification_Receiver_i
-{
- // = TITLE
- // Defines the implementation class for event <Notification_Receivers>.
-public:
- // = Initialization and termination methods.
- Notification_Receiver_i (void);
- // Constructor.
-
- ~Notification_Receiver_i (void);
- // Destructor.
-
- virtual void receive_notification (const Event_Comm::Notification &notification,
- CORBA::Environment &IT_env);
- // Pass the <Notification> to the <Notification_Receiver>.
-
- virtual void disconnect (const char *reason,
- CORBA::Environment &IT_env);
- // Disconnect the <Notification_Receiver> from the <Notifier>,
- // giving it the <reason>.
-};
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _Notification_Receiver_i_H */
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl b/apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl
deleted file mode 100644
index a03cf45451f..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl
+++ /dev/null
@@ -1,47 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Notifier.idl
-//
-// = DESCRIPTION
-// This is the CORBA IDL interface for the Event Communication <Notifier>.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#if !defined (_Notifier_iDL)
-#define _Notifier_iDL
-
-#include "Notification.idl"
-#include "Notification_Receiver.idl"
-
-interface Notifier
-{
- // = TITLE
- // Defines the interface for a <Notifier> of events.
-
- void send_disconnect (in string reason);
- // Disconnect all the receivers, giving them the <reason>.
-
- void send_notification (in Notification notification);
- // Send the <Notification> to all the consumers who
- // have subscribed and who match the filtering criteria.
-
- void subscribe (in Notification_Receiver notification_receiver,
- in string filtering_criteria);
- // Subscribe the <Notification_Receiver> to receive events that
- // match <filtering_criteria> applied by the <Notifier>.
-
- void unsubscribe (in Notification_Receiver notification_receiver);
- // Unsubscribe the <Notification_Receiver>.
-};
-
-#endif /* _Notifier_iDL */
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp b/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp
deleted file mode 100644
index f7c7206fc77..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp
+++ /dev/null
@@ -1,344 +0,0 @@
-// $Id$
-
-#include "Notification_Receiver_i.h"
-#include "Notifier_i.h"
-
-ACE_RCSID(libsrc, Notifier_i, "$Id$")
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-class Notification_Receiver_Entry
-{
- // = TITLE
- // Keeps track of context information associated with
- // a <Event_Comm::Notification_Receiver> entry.
-public:
- Notification_Receiver_Entry (Event_Comm::Notification_Receiver *notification_receiver,
- const char *filtering_criteria);
- ~Notification_Receiver_Entry (void);
-
- // = Set/get filtering criteria.
- void criteria (const char *criteria);
- const char *criteria (void);
-
- // = Set/get Event_Comm::Notification_Receiver object reference.
- Event_Comm::Notification_Receiver *receiver (void);
- void receiver (Event_Comm::Notification_Receiver *);
-
- // = Set/get the compiled regular expression buffer.
- const char *regexp (void);
- void regexp (char *);
-
-private:
- const char *filtering_criteria_;
- // String containing the filtering criteria.
-
- char *compiled_regexp_;
- // Compiled representation of the regular expression (see
- // regexpr(3g)).
-
- Event_Comm::Notification_Receiver *receiver_;
- // Object reference for the Event_Comm::Notification_Receiver.
-};
-
-// = Set/get filtering criteria.
-
-void
-Notification_Receiver_Entry::criteria (const char *criteria)
-{
- ACE_OS::free (ACE_MALLOC_T (this->filtering_criteria_));
- this->filtering_criteria_ = ACE_OS::strdup (criteria);
-}
-
-const char *
-Notification_Receiver_Entry::criteria (void)
-{
- return this->filtering_criteria_;
-}
-
-// = Set/get Event_Comm::Notification_Receiver object reference.
-
-Event_Comm::Notification_Receiver *
-Notification_Receiver_Entry::receiver (void)
-{
- return this->receiver_;
-}
-
-void
-Notification_Receiver_Entry::receiver (Event_Comm::Notification_Receiver *receiver)
-{
- this->receiver_ = receiver;
-}
-
-const char *
-Notification_Receiver_Entry::regexp (void)
-{
- return this->compiled_regexp_;
-}
-
-void
-Notification_Receiver_Entry::regexp (char *regexp)
-{
- ACE_OS::free (ACE_MALLOC_T (this->compiled_regexp_));
- this->compiled_regexp_ = regexp;
-}
-
-Notification_Receiver_Entry::Notification_Receiver_Entry (Event_Comm::Notification_Receiver *receiver,
- const char *filtering_criteria)
- : receiver_ (receiver),
- filtering_criteria_ (0),
- compiled_regexp_ (0)
-{
- char *compile_buffer = 0;
-
- this->criteria (filtering_criteria);
- ACE_ASSERT (this->criteria ());
-
- // Check for wildcard case first.
- if (ACE_OS::strcmp (filtering_criteria, "") == 0)
- compile_buffer = ACE_OS::strdup ("");
- else
- // Compile the regular expression (the 0's cause ACE_OS::compile
- // to allocate space).
- compile_buffer = ACE_OS::compile (filtering_criteria, 0, 0);
-
- // Should throw an exception here!
- ACE_ASSERT (compile_buffer != 0);
-
- this->regexp (compile_buffer);
- ACE_ASSERT (this->regexp ());
-
- // Increment the reference count since we are keeping a copy of
- // this...
- this->receiver_->_duplicate (this->receiver_);
-}
-
-Notification_Receiver_Entry::~Notification_Receiver_Entry (void)
-{
- ACE_OS::free (this->filtering_criteria_);
- ACE_OS::free (this->compiled_regexp_);
- // Decrement the object reference count.
- CORBA::release (this->receiver_);
-}
-
-Notifier_i::Notifier_i (size_t size)
- : map_ (size)
-{
-}
-
-// Add a new receiver to the table, being careful to check for
-// duplicate entries. A receiver is considered a duplicate under
-// the following circumstances:
-// 1. It has the same marker name and the same filtering criteria
-// 2. It has the same marker name and its filtering criteria is "" (the wild card).
-
-void
-Notifier_i::subscribe (Event_Comm::Notification_Receiver *receiver_ref,
- const char *filtering_criteria,
- CORBA::Environment &IT_env)
-{
- ACE_DEBUG ((LM_DEBUG,
- "in Notifier_i::subscribe for %s with filtering criteria \"%s\"\n",
- receiver_ref->_marker (),
- filtering_criteria));
- ACE_SString key (receiver_ref->_marker ());
- MAP_ITERATOR mi (this->map_);
-
- // Try to locate an entry using its marker name (which should be
- // unique across the system). If we don't find the entry, or if the
- // filtering criteria is different that is good news since we
- // currently don't allow duplicates... In particular, if @@ Should
- // duplicates be allowed?
-
- for (MAP_ENTRY *me = 0; mi.next (me) != 0; mi.advance ())
- {
- Notification_Receiver_Entry *nr_entry = me->int_id_;
-
- // Check for a duplicate entry.
- if (key == me->ext_id_
- && (ACE_OS::strcmp (filtering_criteria, "") == 0
- || ACE_OS::strcmp (filtering_criteria, nr_entry->criteria ()) == 0))
- {
- // Inform the caller that the
- // Event_Comm::Notification_Receiver * is already being
- // used.
-
- errno = EADDRINUSE;
- ACE_ERROR ((LM_ERROR,
- "duplicate entry for receiver %s with criteria \"%s\"",
- receiver_ref->_marker (),
- filtering_criteria));
- // Raise exception here???
- return;
- }
- }
-
- // If we get this far then we didn't find a duplicate, so add the
- // new entry!
- Notification_Receiver_Entry *nr_entry;
- ACE_NEW (nr_entry,
- Notification_Receiver_Entry (receiver_ref,
- filtering_criteria));
- // Try to add new <Notification_Receiver_Entry> to the map.
- else if (this->map_.bind (key, nr_entry) == -1)
- {
- // Prevent memory leaks.
- delete nr_entry;
- // Raise exception here...
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "bind failed"));
- }
-}
-
-// Remove a receiver from the table.
-
-void
-Notifier_i::unsubscribe (Event_Comm::Notification_Receiver *receiver_ref,
- const char *filtering_criteria,
- CORBA::Environment &IT_env)
-{
- ACE_DEBUG ((LM_DEBUG,
- "in Notifier_i::unsubscribe for %s\n",
- receiver_ref->_marker ()));
- Notification_Receiver_Entry *nr_entry = 0;
- ACE_SString key;
- MAP_ITERATOR mi (this->map_);
- int found = 0;
-
- // Don't make a copy since we are deleting...
- key.rep ((char *) receiver_ref->_marker ());
-
- // Locate <Notification_Receiver_Entry> and free up resources. @@
- // Note, we don't properly handle deallocation of KEYS!
-
- for (MAP_ENTRY *me = 0; mi.next (me) != 0; mi.advance ())
- {
- if (key == me->ext_id_
- && (ACE_OS::strcmp (filtering_criteria, "") == 0
- || ACE_OS::strcmp (filtering_criteria, nr_entry->criteria ()) == 0))
- {
- ACE_DEBUG ((LM_DEBUG,
- "removed entry %s with criteria \"%s\"\n",
- receiver_ref->_marker (),
- filtering_criteria));
- found = 1;
- // @@ This is a hack, we need a better approach!
- if (this->map_.unbind (key, nr_entry) == -1)
- ACE_ERROR ((LM_ERROR,
- "unbind failed for %s\n",
- receiver_ref->_marker ()));
- else
- delete nr_entry;
- }
- }
-
- if (found == 0)
- ACE_ERROR ((LM_ERROR,
- "entry %s with criteria \"%s\" not found\n",
- receiver_ref->_marker (),
- filtering_criteria));
-}
-
-// Disconnect all the receivers, giving them the <reason>.
-
-void
-Notifier_i::send_disconnect (const char *reason,
- CORBA::Environment &IT_env)
-{
- ACE_DEBUG ((LM_DEBUG,
- "in Notifier_i::send_disconnect = %s\n",
- reason));
- MAP_ITERATOR mi (this->map_);
- int count = 0;
-
- // Notify all the receivers, taking into account the filtering criteria.
-
- for (MAP_ENTRY *me = 0; mi.next (me) != 0; mi.advance ())
- {
- Event_Comm::Notification_Receiver *receiver_ref = me->int_id_->receiver ();
- ACE_ASSERT (receiver_ref->_marker () != 0);
- ACE_DEBUG ((LM_DEBUG,
- "disconnecting client %s\n",
- receiver_ref->_marker ()));
- TRY
- {
- receiver_ref->disconnect (reason, IT_X);
- }
- CATCHANY
- {
- cerr << "Unexpected exception " << IT_X << endl;
- }
- ENDTRY;
- delete me->int_id_;
- delete me->ext_id_.rep ();
- count++;
- }
-
- this->map_.close ();
- if (count == 1)
- ACE_DEBUG ((LM_DEBUG,
- "there was 1 receiver\n"));
- else
- ACE_DEBUG ((LM_DEBUG,
- "there were %d receivers\n",
- count));
-}
-
-// Notify all receivers whose filtering criteria match the event.
-
-void
-Notifier_i::send_notification (const Event_Comm::Notification &notification,
- CORBA::Environment &IT_env)
-{
- ACE_DEBUG ((LM_DEBUG,
- "in Notifier_i::send_notification = %s\n",
- notification.tag_));
- MAP_ITERATOR mi (this->map_);
- int count = 0;
-
- // Notify all the receivers.
- // @@ Later on we need to consider the filtering_criteria!
-
- for (MAP_ENTRY *me = 0; mi.next (me) != 0; mi.advance ())
- {
- Event_Comm::Notification_Receiver *receiver_ref = me->int_id_->receiver ();
- ACE_ASSERT (receiver_ref->_marker () != 0);
- const char *regexp = me->int_id_->regexp ();
- const char *criteria = me->int_id_->criteria ();
- ACE_ASSERT (regexp);
- ACE_ASSERT (criteria);
-
- // Do a regular expression comparison to determine matching.
- if (ACE_OS::strcmp ("", criteria) == 0 // Everything matches the wildcard.
-// || ACE_OS::strcmp (notification.tag_, regexp) == 0)
- || ACE_OS::step (notification.tag_, regexp) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "string %s matched regexp \"%s\" for client %s\n",
- notification.tag_, me->int_id_->criteria (),
- receiver_ref->_marker ()));
- TRY
- {
- receiver_ref->receive_notification (notification, IT_X);
- }
- CATCHANY
- {
- cerr << "Unexpected exception " << IT_X << endl;
- continue;
- }
- ENDTRY;
- count++;
- }
- }
-
- if (count == 1)
- ACE_DEBUG ((LM_DEBUG,
- "there was 1 receiver\n"));
- else
- ACE_DEBUG ((LM_DEBUG,
- "there were %d receivers\n",
- count));
-}
-
-#endif /* ACE_HAS_ORBIX */
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h b/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h
deleted file mode 100644
index dd1d17ef16c..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Notifier_i.h
-//
-// = DESCRIPTION
-// Class interface for the implementation of the <Notifier>
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#ifndef _Notifier_i_H
-#define _Notifier_i_H
-
-#include "ace/Map_Manager.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-#include "ace/SString.h"
-#include "Event_Comm.hh"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-// Forward reference.
-class Notification_Receiver_Entry;
-
-class Notifier_i
-{
- // = TITLE
- // Defines the implementation class for event <Notifiers>.
-public:
- enum
- {
- DEFAULT_SIZE = 1024 // Default max number of Event_Comm::Notification_Receivers.
- };
-
- Notifier_i (size_t size_hint = Notifier_i::DEFAULT_SIZE);
- // Initialize a Notifier_i object with the specified size hint.
-
- void send_disconnect (const char *reason,
- CORBA::Environment &IT_env);
- // Disconnect all the receivers, giving them the <reason>.
-
- void send_notification (const Event_Comm::Notification &notification,
- CORBA::Environment &IT_env);
- // Send the <Notification> to all the consumers who have subscribed
- // and who match the filtering criteria.
-
- void subscribe (Event_Comm::Notification_Receiver *notification_receiver,
- const char *filtering_criteria,
- CORBA::Environment &IT_env);
- // Subscribe the <Notification_Receiver> to receive events that
- // match <filtering_criteria> applied by the <Notifier>.
-
- void unsubscribe (Event_Comm::Notification_Receiver *notification_receiver,
- const char *filtering_criteria,
- CORBA::Environment &IT_env);
- // Unsubscribe the <Notification_Receiver>.
-
-private:
- // The following implementation should be replaced
- // by a standard container class from STL...
-
- typedef ACE_Map_Manager <ACE_SString, Notification_Receiver_Entry *, ACE_Null_Mutex>
- MAP_MANAGER;
- typedef ACE_Map_Iterator <ACE_SString, Notification_Receiver_Entry *, ACE_Null_Mutex>
- MAP_ITERATOR;
- typedef ACE_Map_Entry <ACE_SString, Notification_Receiver_Entry *>
- MAP_ENTRY;
-
- MAP_MANAGER map_;
- // Table that maps a <Event_Comm::Notification_Receiver *> to a
- // <Notification_Receiver_Entry *>.
-};
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _Notifier_i_H */
diff --git a/apps/Orbix-Examples/Logger/Logger.cpp b/apps/Orbix-Examples/Logger/Logger.cpp
deleted file mode 100644
index 429f9abf5c5..00000000000
--- a/apps/Orbix-Examples/Logger/Logger.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-// $Id$
-
-#include <iostream.h>
-
-#include "Logger.h"
-
-ACE_RCSID(Logger, Logger, "$Id$")
-
-Logger::~Logger (void)
-{
- // Release and free up the object reference.
- this->logref_->_release ();
-
- // Must use free since we used strdup(3C).
- ACE_OS::free (ACE_MALLOC_T (this->server_));
-}
-
-// Constructor takes the name of the host where the server
-// is located. If server == 0, then use the locator service.
-
-Logger::Logger (char *server, size_t max_message_size)
- : server_ (server == 0 ? 0 : ACE_OS::strdup (server)),
- ip_ (0),
- pid_ (ACE_OS::getpid ())
-{
- struct utsname name;
-
-#if 0
- // Could also use sysinfo(2)...
-
- ACE_OS::sysinfo (SI_HOSTNAME, clienthost, MAXHOSTNAMELEN);
-#endif
-
- ACE_OS::uname (&name);
- hostent *hp = ACE_OS::gethostbyname (name.nodename);
-
- if (hp != 0)
- memcpy ((void *) &this->ip_, (void *) hp->h_addr, hp->h_length);
-
- TRY {
- // First bind to the logger object.
- // argv[1] has the hostname (if any) of the target logger object;
- // The default is the local host:
- this->logref_ = profile_logger::_bind ("", this->server_, IT_X);
- } CATCHANY {
- // an error occurred while trying to bind to the logger object.
- cerr << "Bind to object failed" << endl;
- cerr << "Unexpected exception " << IT_X << endl;
- } ENDTRY;
- // Pre-assign certain values that don't change.
- this->log_msg_.app_id = this->pid_;
- this->log_msg_.host_addr = this->ip_;
- this->log_msg_.msg_data._maximum = max_message_size;
-}
-
-// Transmit the message to the logging server.
-
-int
-Logger::log (logger::Log_Priority priority, char message[], int length)
-{
- // The following values change with every logging operation.
- this->log_msg_.type = priority;
- this->log_msg_.time = ACE_OS::time (0);
- this->log_msg_.msg_data._length = length;
- this->log_msg_.msg_data._buffer = message;
-
- TRY {
- // Try to log a message.
- this->logref_->log (this->log_msg_, IT_X);
- } CATCHANY {
- // an error occurred while trying to read the height and width:
- cerr << "call to log failed" << endl;
- cerr << "Unexpected exception " << IT_X << endl;
- return -1;
- } ENDTRY;
- // success.
- return 0;
-}
-
-// Get the value of verbose.
-
-int
-Logger::verbose (void)
-{
- int verbosity = 0;
-
- TRY {
- verbosity = this->logref_->verbose ();
- } CATCHANY {
- return -1;
- } ENDTRY;
- return verbosity;
-}
-
-// Set the value of verbose.
-
-int
-Logger::verbose (int value)
-{
- int verbosity = 0;
-
- TRY {
- this->logref_->verbose (value);
- } CATCHANY {
- return -1;
- } ENDTRY;
- return 0;
-}
-
-// Activate the timer.
-
-int
-Logger::start_timer (void)
-{
- TRY {
- this->logref_->start_timer ();
- } CATCHANY {
- return -1;
- } ENDTRY;
- return 0;
-}
-
-// Deactivate the timer and return the elapsed time.
-
-int
-Logger::stop_timer (profile_logger::Elapsed_Time &et)
-{
- TRY {
- this->logref_->stop_timer (et);
- } CATCHANY {
- return -1;
- } ENDTRY;
- return 0;
-}
diff --git a/apps/Orbix-Examples/Logger/Logger.h b/apps/Orbix-Examples/Logger/Logger.h
deleted file mode 100644
index a233204f362..00000000000
--- a/apps/Orbix-Examples/Logger/Logger.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-#ifndef _LOGGER_H
-#define _LOGGER_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "logger.hh"
-
-class Logger
- // = TITLE
- // Wrapper class that uses CORBA object reference
- // as the transport mechanism to simplify implementation.
-{
-public:
- Logger (char *server, size_t max_message_size);
- // Constructor takes the name of the host where the server
- // is located. If server == 0, then use the locator service.
-
- ~Logger (void);
- // Destructor releases the object reference.
-
- int log (logger::Log_Priority prio, char msg[], int len);
- // Log a <msg> of length <len> with priority <prio>.
-
- int verbose (void);
- // Report current level of verbosity.
-
- int verbose (int verbosity);
- // Set the level of verbosity (0 == no verbose, > 0 == verbose).
-
- int start_timer (void);
- // Activate the timer.
-
- int stop_timer (profile_logger::Elapsed_Time &et);
- // Deactivate the timer and return the elapsed time.
-
-private:
- profile_logger *logref_;
- // CORBA object reference proxy.
-
- int pid_;
- // Process ID.
-
- u_long ip_;
- // IP address of self.
-
- logger::Log_Record log_msg_;
- // Cache certain non-changing values to avoid recomputing them.
-
- char *server_;
- // Name of server that we are bound to.
-};
-
-#endif /* _LOGGER_H */
diff --git a/apps/Orbix-Examples/Logger/Makefile b/apps/Orbix-Examples/Logger/Makefile
deleted file mode 100644
index 2feca6307a6..00000000000
--- a/apps/Orbix-Examples/Logger/Makefile
+++ /dev/null
@@ -1,63 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the Logger.
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-SVR_OBJS = loggerS.o logger_i.o server.o
-CLT_OBJS = loggerC.o client.o Logger.o
-
-LDLIBS =
-
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Orbix related macros and target settings.
-#----------------------------------------------------------------------------
-
-ORBIX_BINDIR = $(ORBIX_ROOT)/bin
-ORBIX_LIBDIR = $(ORBIX_ROOT)/lib
-ORBIX_INCDIR = $(ORBIX_ROOT)/include
-
-CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS
-LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR)
-
-IDLFLAGS = -s S.cpp -c C.cpp -B
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-all: client server
-
-client: $(addprefix $(VDIR),$(CLT_OBJS))
- $(LINK.cc) -o client $(addprefix $(VDIR),$(CLT_OBJS)) $(LDFLAGS) -lITsrvmt $(VLDLIBS)
-
-server: $(addprefix $(VDIR),$(SVR_OBJS))
- $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) -lITsrvmt $(VLDLIBS)
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/Orbix-Examples/Logger/Orbix.hostgroups b/apps/Orbix-Examples/Logger/Orbix.hostgroups
deleted file mode 100644
index 013636e79c4..00000000000
--- a/apps/Orbix-Examples/Logger/Orbix.hostgroups
+++ /dev/null
@@ -1 +0,0 @@
-all:tango
diff --git a/apps/Orbix-Examples/Logger/Orbix.hosts b/apps/Orbix-Examples/Logger/Orbix.hosts
deleted file mode 100644
index 2e11d889bed..00000000000
--- a/apps/Orbix-Examples/Logger/Orbix.hosts
+++ /dev/null
@@ -1,3 +0,0 @@
-profile_logger:tango:
-logger:tango:
-IT_daemon:tango:
diff --git a/apps/Orbix-Examples/Logger/README b/apps/Orbix-Examples/Logger/README
deleted file mode 100644
index 19b1db681f2..00000000000
--- a/apps/Orbix-Examples/Logger/README
+++ /dev/null
@@ -1,35 +0,0 @@
-The directory contains the source code that implements an Orbix
-version of the distributed Logger. Other ACE versions of this code
-appear in the ./apps/Logger directory. It is interesting to compare
-and contrast the alternative implementations.
-
-RUNNING:
-
-The client is run as follows:
-
-client -h host -m max_message_size
-
-The -h host is optional if the locator service is properly configured.
-The -m specifies the maximum number of kilobytes to be sent per log. This
-is useful when redirecting messages to stdin.
-
-TIMING:
-
-I recommend timing the log's by specifying a max_message_size and
-redirecting /usr/dict/words. This will give you several trials from
-which to take an average.
-
-CLIENT:
-
-While using the client and typing in messages manually, capital Q and V
-must be used to quit and toggle verbose respectively. This allows you
-to redirect /usr/dict/words without quiting at the q's!!
-
-SERVER:
-
-To turn off message reporting on the server side, do a
-
-setenv NO_MESSAGES
-
-in the enviroment where the server will be run. If this is done, the server
-will only report that a message was received, but not display the messages.
diff --git a/apps/Orbix-Examples/Logger/a1.tex b/apps/Orbix-Examples/Logger/a1.tex
deleted file mode 100644
index 5d10042e26e..00000000000
--- a/apps/Orbix-Examples/Logger/a1.tex
+++ /dev/null
@@ -1,232 +0,0 @@
-\documentstyle[times,11pt,moretext] {article}
-\input macros
-\input widen
-\input psfig
-
-\begin{document}
-\centerline{\Large Washington University}
-\centerline{\Large Department of Computer Science}
-\bigskip
-\centerline{\large CS523: Distributed Operating Systems}
-%\smallskip
-%\centerline{\large Spring 1995}
-\bigskip
-\centerline{\large Programming Project}
-% \centerline{\large Due Tuesday, January $31^{st}$, 1995}
-
-\section{Overview}
-
-In this assignment, you will implement a distributed logging service
-shown in Figure~\ref{logenv}. Applications use this service to log
-information (such as error notifications, debugging traces, and status
-updates) in a distributed environment. In this service, CORBA remote
-operations are used to send logging records to a central logging
-server. The logging server outputs the logging records to a console,
-a printer, a file, or a network management database, etc.
-
-\section{Design and Implementation Issues}
-
-The distributed logging service will be designed as a client/server
-pair, containing the objects shown in Figure~\ref{simplog}.
-
-\subsection{CORBA IDL Specification}
-The following CORBA IDL specification defines the logging interface:
-
-{
-\small
-\ls{0.9}
-\begin{verbatim}
-// IDL schema definition
-interface Logger
-{
- // Types of logging messages.
- enum Log_Priority {
- LM_DEBUG, // Debugging messages
- LM_WARNING, // Warning messages
- LM_ERROR, // Errors
- LM_EMERG // A panic condition
- };
-
- // Format of the logging record.
- struct Log_Record {
- Log_Priority type; // Type of logging message.
- long time; // Time stamp at sender.
- long app_id; // Process ID of sender.
- long host_addr; // IP address of the sender.
- sequence<char> msg_data; // Sender-specific logging message.
- };
-
- // Transmit a Log_Record to the logging server.
- oneway void log (in Log_Record log_rec);
-
- // Toggle verbose formatting
- attribute char verbose;
-};
-\end{verbatim}}
-
-\begin{figure}
-\center{\ \psfig{figure=graphics/logsimp.eps,width=13cm}\ }
-\vspace{-0.12in}
-\caption{Distributed Logging Service}
-\label{logenv}
-\end{figure}
-
-You will use a CORBA IDL compiler to translate this specification into
-client-side {\em stubs} and server-side {\em skeletons}. The client
-application (which you must write) will use the stubs as a {\em proxy}
-to access the logging services provided by the server. You must also
-write the implementation of the server, which provides the logging
-service.
-
-\subsection{Client and Server Functionality}
-For the purposes of the assignment, you can make the client driver
-program very simple. The client can read a line from its standard
-input and send it to the logging server. The server can then format
-and print the line on its standard output. For example, if you type
-this line to the client:
-
-\begin{verbatim}
-To boldly go where no one has gone before
-\end{verbatim}
-
-\noindent Then the server should output something like this:
-
-\begin{verbatim}
-Jan 24 14:50:28 1995@tango.cs.wustl.edu@18352@LM_DEBUG
-::To boldly go where no one has gone before
-\end{verbatim}
-
-\noindent Note that the server has printed out the logging message
-timestamp, sender's hostname and process id, and the message priority,
-followed by the logging message data.
-
-\begin{figure}
-\center{\ \psfig{figure=graphics/simplog.eps,width=13cm}\ }
-\vspace{-0.12in}
-\caption{CORBA-based Logger Design}
-\label{simplog}
-\end{figure}
-
-Note that in order to pass the client's IP address (which is
-represented as a 4-byte {\tt long}) in the logging message, you'll
-need to learn about several other UNIX routines. On the client-side
-you'll need to use {\tt uname(2)} and {\tt gethostbyname(2)} to
-determine the IP address of the client host. On the server-side,
-you'll need to use the {\tt gethostbyaddr(2)} function to convert the
-4-byte IP host address into an ASCII version of the host name. I
-recommend that you check the manual pages and read Richard Steven's
-book ``UNIX Network Programming'' for more details on using these
-functions.
-
-\subsection{Invoking the Client and Server}
-Once the client and server components are written, compiled, and
-linked together you will use the {\tt putit} command to register the
-server with the Orbix daemon. You'll then need to start up a copy of
-{\tt orbixd} (if there isn't already one running). {\tt orbixd}
-serves as the Object Request Broker for the local endpoint.
-
-A client will bind to the {\tt Logger} interface via the generated
-{\tt Logger::\_bind} method. There are two general ways to use this
-method. The first is to explicitly pass in the name of the server
-where {\tt orbixd} is running (your client should accept a
-command-line argument that is the name of the server, {\em e.g.,}
-``tango.cs.wustl.edu'').
-
-The second method is to use the CORBA locator service to get an object
-reference for the logging service. You'll need to read the Orbix
-documentation to learn how to set up a location file. This file will
-enable you to omit the name of the server in the call to {\tt
-Logger::\_bind}. By using the locator server, your clients can bind
-to object's implicitly. Make sure that your solution will work for
-either implicit or explicit service location.
-
-Once the client application has bound (either explicitly or
-implicitly) to an object reference for the {\tt Logger}, it can log
-messages by calling the {\tt log} method via the object reference
-proxy.
-
-\subsection{Performance Measurement}
-
-An important part of developing distributed systems is understanding
-the performance implications of different design approaches. In order
-to measure the performance overhead of using CORBA to build the
-Logger, you will write a simple extension to the original {\tt Logger}
-interface, as follows:
-
-{
-\small
-\ls{0.9}
-\begin{verbatim}
-// IDL schema definition
-interface Profile_Logger
- : Logger // Profile_Logger IS-A Logger
-{
- // Stores the amount of time that has elapsed.
- struct Elapsed_Time
- {
- double real_time;
- double user_time;
- double system_time;
- };
-
- // Activate the timer.
- void start_timer (void);
-
- // Deactivate the timer and return the elapsed time.
- void stop_timer (out Elapsed_Time et);
-};
-\end{verbatim}}
-
-\noindent You will need to modify your client program so that it can
-time a series of {\tt Logger::log} operations for various sizes of
-logging messages. This will help us understand the performance
-overhead of CORBA.
-
-The main benchmarking should take place within a loop in your client
-program. Basically, your client call {\tt
-Profile\_Logger::start\_timer} just before sending the first of the
-logging messages. After a suitable number of iterations (defined on
-the command-line), you client will call {\tt
-Profile\_Logger::stop\_timer} to determine and report the elapsed time
-to the user. You should print out the ``real'' time, as well as the
-``system $+$ user'' times. Make sure that you print out the
-throughput in terms of megabits/sec (rather than bytes/sec or
-kbytes/sec). Be sure to include the fixed-sized {\tt Log\_Record}
-object, as well as the variable-sized {\tt msg\_data} portion in your
-computations.
-
-The number of iterations and the size of the messages sent by the
-client should be parameterizable on the command-line. Make sure that
-your timing tests are run between processes on two different machines
-(rather than processes on the same machine). If possible, try to run
-the client and server processes on two machines on the same subnet.
-
-When you are finished with your timing test, you should explain the
-timing results and indicate trends that you observed.
-
-\section{Learning and Using CORBA}
-
-To help you learn how CORBA works, I will be making copies of the
-Orbix programmer's manual available for a small reproduction fee.
-This manual explains how to program in CORBA. I will announce in
-class where this will be available.
-
-We will be using IONA's Orbix CORBA Object Request Broker (ORB)
-implementation. The libraries, executables, CORBA IDL compiler, and
-example demo applications are located in {\tt
-/project/adaptive/Orbix}. Please note that this is an automounted
-directory, so you will need to {\tt cd} directly to it in order to see
-the contents. To configure Orbix for your environment, copy the {\tt
-/project/adaptive/Orbix/Orbix.cfg} file to your account. You'll need
-to set the environment variable {\tt IT\_CONFIG\_PATH} to the complete
-path where this file is located.
-
-\section{Concluding Remarks}
-In office hours and in class, we will discuss how to use C++ and CORBA
-in order to develop your solutions. Note that this assignment will
-teach you many skills required to become adept at network programming.
-However, it also will require a great deal of thought and planning.
-Please make sure you start early, come to office hours, and ask lots
-of questions.
-
-\end{document}
diff --git a/apps/Orbix-Examples/Logger/client.cpp b/apps/Orbix-Examples/Logger/client.cpp
deleted file mode 100644
index 28708b9e2c4..00000000000
--- a/apps/Orbix-Examples/Logger/client.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-// $Id$
-
-// A client for the distributed logger example. This program reads
-// from either stdin or from a redirected file and sends all the
-// contents to the logging server. It also computes how long it takes
-// to send this stuff.
-
-#include "Logger.h"
-
-ACE_RCSID(Logger, client, "$Id$")
-
-// maximum message size
-static size_t max_message_size = BUFSIZ;
-
-// Default behavior is to use the locator service.
-static char *hostname = 0;
-
-// Should we prompt the user?
-static int user_prompt;
-
-static void
-parse_args (int argc, char *argv[])
-{
- extern char *optarg;
- extern int optind;
- int c;
-
- ACE_LOG_MSG->open (argv[0]);
-
- // If a file has been redirected, don't activate user prompts
- if (ACE_OS::isatty (0))
- user_prompt = 1;
- else
- user_prompt = 0;
-
- while ((c = ACE_OS::getopt (argc, argv, "m:h:")) != -1)
- switch (c)
- {
- case 'm':
- max_message_size = ACE_OS::atoi (optarg) * BUFSIZ;
- break;
- case 'h':
- hostname = optarg;
- break;
- default:
- ACE_ERROR ((LM_ERROR, "%n: -h host -m max_message_size (in kbytes)\n%a", 1));
- /* NOTREACHED */
- }
-}
-
-// Enable/disable verbose logging.
-
-static int
-toggle_verbose (Logger &logger)
-{
- int verbose_value;
-
- verbose_value = logger.verbose ();
- logger.verbose (!verbose_value);
- return 0;
-}
-
-// Transmit messages to the server.
-
-int
-transmit (Logger &logger, char buf[], ACE_HANDLE handle = 0)
-{
- if (user_prompt)
- cout << "\nEnter message ('Q':quit,'V':toggle verbose):\n" << flush;
-
- ssize_t nbytes = ACE_OS::read (handle, buf, max_message_size);
-
- if (nbytes <= 0)
- return nbytes; // End of file or error.
- buf[nbytes] = '\0';
-
- if (user_prompt)
- {
- if (buf[0] == 'Q' || buf[0] == 'q')
- return 0;
- // toggle verbose?
- else if (buf[0] == 'V' || buf[0] == 'v')
- toggle_verbose (logger);
- }
-
- // send the message to the logger
- if (logger.log (logger::LM_DEBUG, buf, nbytes) == -1)
- return -1;
- else
- return nbytes;
-}
-
-// Print the results of the tests.
-
-void
-report_results (profile_logger::Elapsed_Time &et, size_t total_bytes)
-{
- ACE_DEBUG ((LM_DEBUG,
- "real time = %8.2f\n"
- "user time = %8.2f\n"
- "sys time = %8.2f\n"
- "mbits sec = %8.2f\n",
- et.real_time, et.user_time, et.system_time,
- (total_bytes / et.real_time) * 8.0 / 1024.0 / 1024.0));
-}
-
-int
-main (int argc, char **argv)
-{
- parse_args (argc,argv);
-
- // Pointer to the logger object that will be used.
- Logger logger (hostname, max_message_size);
- char *buf = new char [max_message_size];
- size_t total_bytes = 0;
- size_t nbytes = 0;
-
- logger.start_timer ();
-
- // Transmit logging records until user quits.
-
- for (int done = 0; done == 0;)
- switch (nbytes = transmit (logger, buf))
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "transmit"), -1);
- /* NOTREACHED */
- case 0:
- done = 1;
- break;
- default:
- total_bytes += nbytes;
- break;
- }
-
- profile_logger::Elapsed_Time et;
-
- if (logger.stop_timer (et) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "stop timer"), -1);
-
- report_results (et, total_bytes);
- return 0;
-}
diff --git a/apps/Orbix-Examples/Logger/logger.hh b/apps/Orbix-Examples/Logger/logger.hh
deleted file mode 100644
index 0d0eeeca2f0..00000000000
--- a/apps/Orbix-Examples/Logger/logger.hh
+++ /dev/null
@@ -1,434 +0,0 @@
-
-#ifndef logger_hh
-#define logger_hh
-
-#include <CORBA.h>
-
-#include <string.h>
-
-
-#ifndef _IDL_SEQUENCE_char_defined
-#define _IDL_SEQUENCE_char_defined
-
-struct IONANC__IDL_SEQUENCE_char;
-struct _IDL_SEQUENCE_char {
- unsigned long _maximum;
- unsigned long _length;
- char *_buffer;
-
- operator IONANC__IDL_SEQUENCE_char();
- operator const IONANC__IDL_SEQUENCE_char() const;
- _IDL_SEQUENCE_char& operator= (const IONANC__IDL_SEQUENCE_char&);
-
- _IDL_SEQUENCE_char& operator= (const _IDL_SEQUENCE_char&);
- _IDL_SEQUENCE_char (const _IDL_SEQUENCE_char&);
-
- _IDL_SEQUENCE_char (unsigned long IT_size = 0);
-
- ~_IDL_SEQUENCE_char () { if (_buffer) delete [] _buffer; }
-
- char& operator [] (unsigned long IT_i) const {return _buffer[IT_i]; }
-
- void encodeOp (CORBA::Request &IT_r) const;
- void decodeOp (CORBA::Request &IT_r);
- void decodeInOutOp (CORBA::Request &IT_r);
-};
-
-struct IONANC__IDL_SEQUENCE_char {
- unsigned long _maximum;
- unsigned long _length;
- char *_buffer;
-
- char& operator [] (unsigned long IT_i) const;
-
- operator _IDL_SEQUENCE_char ();
-
- operator const _IDL_SEQUENCE_char () const;
-
-};
-
-
-
-#endif
-
-
-#ifndef _logger_defined
-#define _logger_defined
-class logger_dispatch : public virtual CORBA::PPTR {
-public:
-
- logger_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m,
- CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {}
-
-
- logger_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- logger_dispatch () {}
-
- logger_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m,
- char *IT_i, CORBA::Object* IT_ob, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {}
-
-
- virtual unsigned char dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void* IT_pp=NULL);
-
-
-};
-
-class logger;
-
-
-#ifndef loggerForwH
-#define loggerForwH
-CORBA::ObjectRef logger_getBase (void *);
-void logger_release (void *, CORBA::Environment &IT_env=CORBA::default_environment);
-logger* logger_duplicate (void *, CORBA::Environment &IT_env=CORBA::default_environment);
-#endif
-#define logger_IMPL "logger"
-
-
-class logger;
-#define logger_IR "logger"
-#define logger_IMPL "logger"
-
-typedef logger* loggerRef;
-typedef logger* logger_ptr;
-class logger: public virtual CORBA::Object {
-public:
- logger (char *IT_OR);
- logger () : CORBA::Object (1) {}
- logger* _duplicate(
- CORBA::Environment &IT_env=CORBA::default_environment) {
- CORBA::Object::_duplicate (IT_env); return this; }
- static logger* _bind (const char* IT_markerServer, const char* host,
- const CORBA::Context &IT_c,
- CORBA::Environment &IT_env=CORBA::default_environment);
- static logger* _bind (CORBA::Environment &IT_env);
- static logger* _bind (const char* IT_markerServer=NULL, const char* host=NULL,
- CORBA::Environment &IT_env=CORBA::default_environment);
- static logger* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::default_environment);
-enum Log_Priority {LM_MESSAGE,LM_DEBUG,LM_WARNING,LM_ERROR,LM_EMERG};
-
-#ifndef logger_Log_Record_defined
-#define logger_Log_Record_defined
-
-struct IONANC_Log_Record;
-struct Log_Record {
- logger::Log_Priority type;
- long time;
- long app_id;
- long host_addr;
- _IDL_SEQUENCE_char msg_data;
-
- void encodeOp (CORBA::Request &IT_r) const;
- void decodeOp (CORBA::Request &IT_r);
- void decodeInOutOp (CORBA::Request &IT_r);
- Log_Record(const Log_Record &);
- Log_Record();
- operator logger::IONANC_Log_Record();
- operator const logger::IONANC_Log_Record() const;
- Log_Record& operator= (const IONANC_Log_Record&);
- ~Log_Record();
- Log_Record& operator= (const Log_Record&);
-};
-
-struct IONANC_Log_Record {
- logger::Log_Priority type;
- long time;
- long app_id;
- long host_addr;
- IONANC__IDL_SEQUENCE_char msg_data;
- operator logger::Log_Record ();
- operator const logger::Log_Record () const;
- };
-
-
-#endif
-
- virtual void log (const logger::Log_Record& log_rec, CORBA::Environment &IT_env=CORBA::default_environment);
- virtual void verbose (char verbose, CORBA::Environment &IT_env=CORBA::default_environment);
- virtual char verbose (CORBA::Environment &IT_env=CORBA::default_environment);
-};
-
-
-#define TIE_logger(X) logger##X
-
-#define DEF_TIE_logger(X) \
- class logger##X : public virtual logger { \
- X* m_obj; \
- public: \
- \
- logger##X (X *objp, const char* m="", CORBA::LoaderClass *l=nil)\
- : logger(), CORBA::Object (), m_obj(objp) { \
- m_pptr = new logger_dispatch \
- (( logger*)this,(CORBA::Object*)this,m,l,logger_IR,m_obj); \
- } \
- logger##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=nil)\
- : logger(), CORBA::Object () { \
- m_pptr = new logger_dispatch \
- (( logger*)this,(CORBA::Object*)this,IT_m,logger_IR,IT_p,IT_q); \
- m_obj = (X*)(m_pptr->getImplObj ()); \
- } \
- \
- virtual ~logger##X () { \
- if (_okToDeleteImpl ()) delete m_obj; } \
- \
- virtual void* _deref () { \
- return m_obj; } \
- \
- virtual void log (const logger::Log_Record& log_rec, CORBA::Environment &IT_env) {\
-m_obj->log ( log_rec,IT_env);\
-}\
- \
-virtual void verbose (char verbose, CORBA::Environment &IT_env) {\
- m_obj->verbose(verbose,IT_env); }\
- \
-virtual char verbose (CORBA::Environment &IT_env) {\
-return m_obj->verbose(IT_env); }\
- \
- };
-
-
-#define QUALS_logger \
- virtual void log (const logger::Log_Record& log_rec, CORBA::Environment &IT_env) {\
-m_obj->log ( log_rec,IT_env);\
-}\
- \
-virtual void verbose (char verbose, CORBA::Environment &IT_env) {\
- m_obj->verbose(verbose,IT_env); }\
- \
-virtual char verbose (CORBA::Environment &IT_env) {\
-return m_obj->verbose(IT_env); }\
-
-
-
-
-class loggerProxyFactoryClass : public virtual CORBA::ObjectFactoryClass {
-public:
- loggerProxyFactoryClass (unsigned char IT_p=0)
- : CORBA::ProxyFactory (logger_IR, IT_p) {}
-
- virtual void* New (char *IT_OR, CORBA::Environment&);
-
- virtual void* New2 ();
-
- virtual void* IT_castUp (void *IT_p, char* IT_s);
-
- virtual CORBA::PPTR* pptr (void *IT_p);
-
- virtual void baseInterfaces (_IDL_SEQUENCE_string&);
-
-
-};
-
-extern loggerProxyFactoryClass loggerProxyFactory;
-
-
-
-class loggerBOAImpl : public virtual logger {
-public:
- loggerBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) {
- if (CORBA::PPTR::isOK (m_pptr, logger_IR))
- m_pptr = new logger_dispatch ( (logger*)this,
- (CORBA::Object*)this, m, l, logger_IR, this);
-}
-
- virtual void log (const logger::Log_Record& log_rec, CORBA::Environment &IT_env=CORBA::default_environment) =0;
- virtual void verbose (char verbose, CORBA::Environment &IT_env=CORBA::default_environment)=0;
- virtual char verbose (CORBA::Environment &IT_env=CORBA::default_environment)=0;
-};
-
-
-#endif
-
-
-#ifndef _profile_logger_defined
-#define _profile_logger_defined
-class profile_logger_dispatch : public virtual logger_dispatch {
-public:
-
- profile_logger_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m,
- CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {}
-
-
- profile_logger_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- profile_logger_dispatch () {}
-
- profile_logger_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m,
- char *IT_i, CORBA::Object* IT_ob, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {}
-
-
- virtual unsigned char dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void* IT_pp=NULL);
-
-
-};
-
-class profile_logger;
-
-
-#ifndef profile_loggerForwH
-#define profile_loggerForwH
-CORBA::ObjectRef profile_logger_getBase (void *);
-void profile_logger_release (void *, CORBA::Environment &IT_env=CORBA::default_environment);
-profile_logger* profile_logger_duplicate (void *, CORBA::Environment &IT_env=CORBA::default_environment);
-#endif
-#define profile_logger_IMPL "profile_logger"
-
-
-class profile_logger;
-#define profile_logger_IR "profile_logger"
-#define profile_logger_IMPL "profile_logger"
-
-typedef profile_logger* profile_loggerRef;
-typedef profile_logger* profile_logger_ptr;
-class profile_logger: public virtual logger {
-public:
- profile_logger (char *IT_OR);
- profile_logger () : CORBA::Object (1) {}
- profile_logger* _duplicate(
- CORBA::Environment &IT_env=CORBA::default_environment) {
- CORBA::Object::_duplicate (IT_env); return this; }
- static profile_logger* _bind (const char* IT_markerServer, const char* host,
- const CORBA::Context &IT_c,
- CORBA::Environment &IT_env=CORBA::default_environment);
- static profile_logger* _bind (CORBA::Environment &IT_env);
- static profile_logger* _bind (const char* IT_markerServer=NULL, const char* host=NULL,
- CORBA::Environment &IT_env=CORBA::default_environment);
- static profile_logger* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::default_environment);
-
-#ifndef profile_logger_Elapsed_Time_defined
-#define profile_logger_Elapsed_Time_defined
-
-struct Elapsed_Time {
- double real_time;
- double user_time;
- double system_time;
-
- void encodeOp (CORBA::Request &IT_r) const;
- void decodeOp (CORBA::Request &IT_r);
- void decodeInOutOp (CORBA::Request &IT_r);
-};
-
-
-#endif
-
- virtual void start_timer (CORBA::Environment &IT_env=CORBA::default_environment);
- virtual void stop_timer (profile_logger::Elapsed_Time& et, CORBA::Environment &IT_env=CORBA::default_environment);
-};
-
-
-#define TIE_profile_logger(X) profile_logger##X
-
-#define DEF_TIE_profile_logger(X) \
- class profile_logger##X : public virtual profile_logger { \
- X* m_obj; \
- public: \
- \
- profile_logger##X (X *objp, const char* m="", CORBA::LoaderClass *l=nil)\
- : profile_logger(), CORBA::Object (), m_obj(objp) { \
- m_pptr = new profile_logger_dispatch \
- (( profile_logger*)this,(CORBA::Object*)this,m,l,profile_logger_IR,m_obj); \
- } \
- profile_logger##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=nil)\
- : profile_logger(), CORBA::Object () { \
- m_pptr = new profile_logger_dispatch \
- (( profile_logger*)this,(CORBA::Object*)this,IT_m,profile_logger_IR,IT_p,IT_q); \
- m_obj = (X*)(m_pptr->getImplObj ()); \
- } \
- \
- virtual ~profile_logger##X () { \
- if (_okToDeleteImpl ()) delete m_obj; } \
- \
- virtual void* _deref () { \
- return m_obj; } \
- \
- virtual void log (const logger::Log_Record& log_rec, CORBA::Environment &IT_env) {\
-m_obj->log ( log_rec,IT_env);\
-}\
- \
-virtual void verbose (char verbose, CORBA::Environment &IT_env) {\
- m_obj->verbose(verbose,IT_env); }\
- \
-virtual char verbose (CORBA::Environment &IT_env) {\
-return m_obj->verbose(IT_env); }\
- virtual void start_timer (CORBA::Environment &IT_env) {\
-m_obj->start_timer (IT_env);\
-}\
- \
- virtual void stop_timer (profile_logger::Elapsed_Time& et, CORBA::Environment &IT_env) {\
-m_obj->stop_timer ( et,IT_env);\
-}\
- \
- };
-
-
-#define QUALS_profile_logger \
- virtual void log (const logger::Log_Record& log_rec, CORBA::Environment &IT_env) {\
-m_obj->log ( log_rec,IT_env);\
-}\
- \
-virtual void verbose (char verbose, CORBA::Environment &IT_env) {\
- m_obj->verbose(verbose,IT_env); }\
- \
-virtual char verbose (CORBA::Environment &IT_env) {\
-return m_obj->verbose(IT_env); }\
- virtual void start_timer (CORBA::Environment &IT_env) {\
-m_obj->start_timer (IT_env);\
-}\
- \
- virtual void stop_timer (profile_logger::Elapsed_Time& et, CORBA::Environment &IT_env) {\
-m_obj->stop_timer ( et,IT_env);\
-}\
-
-
-
-
-class profile_loggerProxyFactoryClass : public virtual loggerProxyFactoryClass {
-public:
- profile_loggerProxyFactoryClass (unsigned char IT_p=0)
- : CORBA::ProxyFactory (profile_logger_IR, IT_p) {}
-
- virtual void* New (char *IT_OR, CORBA::Environment&);
-
- virtual void* New2 ();
-
- virtual void* IT_castUp (void *IT_p, char* IT_s);
-
- virtual CORBA::PPTR* pptr (void *IT_p);
-
- virtual void baseInterfaces (_IDL_SEQUENCE_string&);
-
-
-};
-
-extern profile_loggerProxyFactoryClass profile_loggerProxyFactory;
-
-
-
-class profile_loggerBOAImpl : public virtual profile_logger {
-public:
- profile_loggerBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) {
- if (CORBA::PPTR::isOK (m_pptr, profile_logger_IR))
- m_pptr = new profile_logger_dispatch ( (profile_logger*)this,
- (CORBA::Object*)this, m, l, profile_logger_IR, this);
-}
-
- virtual void start_timer (CORBA::Environment &IT_env=CORBA::default_environment) =0;
- virtual void stop_timer (profile_logger::Elapsed_Time& et, CORBA::Environment &IT_env=CORBA::default_environment) =0;
-};
-
-
-#endif
-
-
-#endif
diff --git a/apps/Orbix-Examples/Logger/logger.idl b/apps/Orbix-Examples/Logger/logger.idl
deleted file mode 100644
index 1d8ee9babc7..00000000000
--- a/apps/Orbix-Examples/Logger/logger.idl
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// @(#)logger.idl 1.1 10/18/96
-
-// logger.idl
-
-interface logger
-// = TITLE
-// This is the CORBA interface for the logger class.
-{
- // = Types of logging messages.
- enum Log_Priority
- {
- LM_MESSAGE,
- LM_DEBUG,
- LM_WARNING,
- LM_ERROR,
- LM_EMERG
- };
-
- // = Format of the logging record.
- struct Log_Record
- {
- Log_Priority type; // Type of logging message.
- long time; // Time stamp at sender.
- long app_id; // Process ID of sender.
- long host_addr; // IP address of the sender.
- sequence<char> msg_data; // Sender-specific logging message.
- };
-
- oneway void log (in Log_Record log_rec);
- // Transmit a Log_Record to the logging server.
-
- attribute char verbose;
- // Toggle verbose formatting
-};
-
-interface profile_logger
- : logger // Profile_Logger IS-A Logger
-// = TITLE
-// IDL Profile Logger definition that is used
-// to compute statistics about the logging.
-{
- // = Stores the amount of time that has elapsed.
- struct Elapsed_Time
- {
- double real_time;
- double user_time;
- double system_time;
- };
-
- void start_timer ();
- // Activate the timer.
-
- void stop_timer (out Elapsed_Time et);
- // Deactivate the timer and return the elapsed time.
-};
diff --git a/apps/Orbix-Examples/Logger/loggerS.cpp b/apps/Orbix-Examples/Logger/loggerS.cpp
deleted file mode 100644
index ac469b1c760..00000000000
--- a/apps/Orbix-Examples/Logger/loggerS.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-// $Id$
-
-#include "logger.hh"
-
-ACE_RCSID(Logger, loggerS, "$Id$")
-
-#define logger_dispatch_impl
-
-unsigned char logger_dispatch::dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void *IT_pp) {
- if (!IT_pp)
- IT_pp = m_obj;
- const char *IT_s = IT_r.getOperation ();
- if (!strcmp(IT_s,"log")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~log~+log_rec{R~logger::Log_Record~type{E~logger::Log_Priority~LM_MESSAGE,LM_DEBUG,LM_WARNING,LM_ERROR,LM_EMERG},time{l},app_id{l},host_addr{l},msg_data{S{c},0}},>{v},O{}\
-"))
- return 1;
- logger::Log_Record log_rec;
- log_rec.decodeOp (IT_r);
-
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((logger*)IT_pp)->log ( log_rec, IT_env);
-
- IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env);
- return 1;
- }
-
- else if (!strcmp (IT_s,"_get_verbose")) {
- char verbose;
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~_get_verbose~>{c},N{}\
-"))
- return 1;
- if (IT_f)
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- verbose = ((logger*)IT_pp)->verbose(IT_env);
-
- if (!IT_r.isException (IT_env)) {
- if (!IT_r.convertToReply ("\
-c\
-", IT_env)) return 1;
- IT_r << verbose;
- }
- else IT_r.makeSystemException (IT_env);
-
- return 1;
- }
- else if (!strcmp (IT_s,"_set_verbose")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (IT_r.tcAssert ("\
-Ro~_set_verbose~+{c},>{v},N{}\
-")) {
- char verbose;
- IT_r >> verbose;
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((logger*)IT_pp)->verbose(verbose, IT_env);
- }
- IT_r.replyNoResults (IT_env);
- return 1;
- }
-
- else if (IT_isTarget)
- IT_r.makeRuntimeException2 ();
-
- return 0;
-}
-
-#define profile_logger_dispatch_impl
-
-unsigned char profile_logger_dispatch::dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void *IT_pp) {
- if (!IT_pp)
- IT_pp = m_obj;
- const char *IT_s = IT_r.getOperation ();
- if (!strcmp(IT_s,"start_timer")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~start_timer~>{v},N{}\
-"))
- return 1;
-
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((profile_logger*)IT_pp)->start_timer (IT_env);
-
- IT_r.replyNoResults (IT_env);
- return 1;
- }
-
- else if (!strcmp(IT_s,"stop_timer")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~stop_timer~-et{R~profile_logger::Elapsed_Time~real_time{d},user_time{d},system_time{d}},>{v},N{}\
-"))
- return 1;
- profile_logger::Elapsed_Time et;
-
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((profile_logger*)IT_pp)->stop_timer ( et, IT_env);
-
-
- if (!IT_r.isException (IT_env)) {
- if (!IT_r.convertToReply ("\
-v\
-", IT_env)) return 1;
- et.encodeOp (IT_r);
- }
-
- else IT_r.makeSystemException (IT_env);
- return 1;
- }
-
- else if (logger_dispatch::dispatch (IT_r, 0,
- (logger*)((profile_logger*)IT_pp))) {
- return 1;
- }
-
- else if (IT_isTarget)
- IT_r.makeRuntimeException2 ();
-
- return 0;
-}
-
-#include "loggerC.cpp"
-
diff --git a/apps/Orbix-Examples/Logger/logger_i.cpp b/apps/Orbix-Examples/Logger/logger_i.cpp
deleted file mode 100644
index c71e8d88a9f..00000000000
--- a/apps/Orbix-Examples/Logger/logger_i.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-// $Id$
-
-// Implementation of the logger object.
-
-#include <iostream.h>
-#include "ace/OS.h"
-#include "logger_i.h"
-
-ACE_RCSID(Logger, logger_i, "$Id$")
-
-// Select non-verbose logging by default.
-
-logger_i::logger_i (int verbose)
- : verbose_value_ (verbose)
-{
- if (ACE_OS::getenv ("NO_MESSAGES") == 0)
- this->verbose_message_ = 1;
- else
- this->verbose_message_ = 0;
-}
-
-// Implement the log method.
-
-void
-logger_i::log (const logger::Log_Record &log_rec, CORBA::Environment &IT_env)
-{
- if (this->verbose_value_) // If verbose mode is on
- {
- char *tm;
-
- // Convert time
- if ((tm = ACE_OS::ctime (&log_rec.time)) == 0)
- cerr << "ctime failed" << endl;
- else
- {
- hostent *hp;
-
- /* 01234567890123456789012345 */
- /* Wed Oct 18 14:25:36 1989n0 */
- tm[24] = '@';
- cout << tm;
-
- // Get host name of client
-
- if ((hp = gethostbyaddr((char *) &log_rec.host_addr,
- sizeof log_rec.host_addr, AF_INET)) == NULL)
- {
- cerr << "server: error in calling gethostbyaddr" << endl;
- cerr << "h_errno = " << h_errno << endl;
- return;
- }
- else // Output client hostname.
- cout << hp->h_name << "@";
-
- // Output PID of client
- cout << log_rec.app_id << "@";
-
- // Output priority
-
- switch (log_rec.type)
- {
- case logger::LM_DEBUG:
- cout << "LM_DEBUG";
- break;
- case logger::LM_WARNING:
- cout << "LM_WARNING";
- break;
- case logger::LM_ERROR:
- cout << "LM_ERROR";
- break;
- case logger::LM_EMERG:
- cout << "LM_EMERG";
- break;
- }
- }
- }
- if (this->verbose_message_)
- {
- cout << "::";
- // Output message
- cout.write (log_rec.msg_data._buffer, log_rec.msg_data._length) << flush;
- }
-}
-
-// Enable/disable verbosity.
-
-void
-logger_i::verbose (char verbose, CORBA::Environment &IT_env)
-{
- this->verbose_value_ = verbose;
-}
-
-// Report current verbosity level.
-
-char
-logger_i::verbose (CORBA::Environment &IT_env)
-{
- return this->verbose_value_;
-}
-
-// Profile_Logger_i
-
-void
-profile_logger_i::start_timer (CORBA::Environment &IT_env)
-{
- this->pt_.start ();
-}
-
-void
-profile_logger_i::stop_timer (profile_logger::Elapsed_Time& et,
- CORBA::Environment &IT_env)
-{
- this->pt_.stop ();
-
- ACE_Profile_Timer::ACE_Elapsed_Time e;
-
- this->pt_.elapsed_time (e);
-
- et.real_time = e.real_time;
- et.user_time = e.user_time;
- et.system_time = e.system_time;
-}
diff --git a/apps/Orbix-Examples/Logger/logger_i.h b/apps/Orbix-Examples/Logger/logger_i.h
deleted file mode 100644
index 407af302aba..00000000000
--- a/apps/Orbix-Examples/Logger/logger_i.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-#include "ace/Profile_Timer.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#define EXCEPTIONS
-#include "logger.hh"
-
-class logger_i
-#if defined (USE_BOA_IMPL)
- : virtual public loggerBOAImpl
-#endif /* USE_BOA_IMPL */
- // = TITLE
- // Implementation of the logger interface.
- //
- // = DESCRIPTION
- // Uses either the BOAImpl or the DEF_TIE approach,
- // depending on the #ifdef
-{
-public:
- logger_i (int verbose = 0);
- // Select non-verbose logging by default.
-
- virtual void log (const logger::Log_Record &log_rec, CORBA::Environment &IT_env);
- // Implement the log method.
-
- virtual void verbose (char verbose, CORBA::Environment &IT_env);
- // Enable/disable verbosity.
-
- virtual char verbose (CORBA::Environment &IT_env);
- // Report current verbosity level.
-
-private:
- unsigned char verbose_value_;
- // Indicate if we are using verbose logging or not.
-
- unsigned char verbose_message_;
- // Indicate if we outputting the messages (turn off if you
- // want to conduct timing tests that just measure throughput).
-};
-
-class profile_logger_i :
-#if defined (USE_BOA_IMPL)
- public virtual profile_loggerBOAImpl,
- public virtual Logger_i
-#else /* USE_TIE */
- public logger_i
-#endif /* USE_BOA_IMPL */
- // = TITLE
- // Implementation of the profiler logger interface.
- //
- // = DESCRIPTION
- // Uses the BOAImpl approach.
-{
-public:
- virtual void start_timer (CORBA::Environment &env);
- // Activate the timer.
-
- virtual void stop_timer (profile_logger::Elapsed_Time &et,
- CORBA::Environment &env);
- // Deactivate the timer and return the elapsed time.
-
-private:
- ACE_Profile_Timer pt_;
- // Object that keeps track of the user and system execution time.
-};
-
-#ifndef USE_BOA_IMPL
-// Indicate that the C++ classes logger_i and profile_logger_i implement
-// the IDL interface logger and profile_logger, respectively:
-
-DEF_TIE_logger (logger_i)
-DEF_TIE_profile_logger (profile_logger_i)
-
-#endif /* USE_BOA_IMPL */
diff --git a/apps/Orbix-Examples/Logger/server.cpp b/apps/Orbix-Examples/Logger/server.cpp
deleted file mode 100644
index 2366a40031f..00000000000
--- a/apps/Orbix-Examples/Logger/server.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-// $Id$
-
-// The server for the logger example.
-// This uses the TRY,CATCHANY,ENDTRY macros for error testing.
-
-// The executable file generated from this code should be registered
-// (under the name 'logger') using the 'putit' command.
-
-#include <iostream.h>
-#include "logger_i.h"
-
-ACE_RCSID(Logger, server, "$Id$")
-
-int
-main (int, char *[])
-{
- // Tell the server not to hang up while clients are connected.
- CORBA::Orbix.setNoHangup (1);
-
- // create a logger object - using the implementation class logger_i
-#if defined (USE_BOA_IMPL)
- profile_logger_i profile_logger;
-#else
- TIE_profile_logger (profile_logger_i) profile_logger (new profile_logger_i);
-#endif /* USE_BOA_IMPL */
-
- TRY {
- // tell Orbix that we have completed the server's initialisation:
- CORBA::Orbix.impl_is_ready (profile_logger_IMPL, IT_X);
- } CATCHANY {
- // an error occured calling impl_is_ready () - output the error.
- cout << IT_X << endl;
- } ENDTRY;
-
- // impl_is_ready() returns only when Orbix times-out an idle server
- // (or an error occurs).
- cerr << "server exiting" << endl;
-
- return 0;
-}
diff --git a/apps/Orbix-Examples/Makefile b/apps/Orbix-Examples/Makefile
deleted file mode 100644
index 8108f98713b..00000000000
--- a/apps/Orbix-Examples/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the Orbix applications
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README
-
-DIRS = Event_Comm \
- Logger
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU
-
diff --git a/apps/README b/apps/README
deleted file mode 100644
index 853c316f6c0..00000000000
--- a/apps/README
+++ /dev/null
@@ -1,27 +0,0 @@
-The subdirectories in this directory provide a number of complete
-applications that utilize the ACE features.
-
- . drwho - This provides a "Distributed RWHO (drwho) utility
- that gets around certain rwho limitations, adds
- functionality, and also prints a much prettier listing of
- who's logged in around a network.
-
- . Gateway -- Implements a connection-oriented application-level
- gateway that uses source-based and destination-based routing
- of messages between peers connected via TCP/IP networks.
-
- . gperf -- The GNU perfect hash function generator. This
- has now been integrated into the TAO IDL compiler, where
- it is used for generating the lookup function for operation
- names associated with IDL interfaces.
-
- . JAWS -- This is a high-performance HTTP Web server written
- with ACE. It illustrates a number of sophisticated ACE
- concurrency and event demultiplexing strategies.
-
- . Orbix-Examples -- Implements several applications that
- integrate ACE and Orbix (which is IONA's implementation of
- CORBA). By default, these aren't compiled since most
- platforms don't have Orbix. These examples are completely
- unsupported and may not work...
-
diff --git a/apps/build.bor b/apps/build.bor
deleted file mode 100644
index b11a02f2ca6..00000000000
--- a/apps/build.bor
+++ /dev/null
@@ -1,15 +0,0 @@
-
-!ifndef CFLAGS
-CFLAGS= $(ACE_CFLAGS)
-!endif
-
-!ifndef CPPDIR
-CPPDIR=.
-!endif
-
-!ifndef LIBFILES
-LIBFILES= $(ACE_LIB)
-!endif
-
-!include <$(ACE_ROOT)\include\makeinclude\build_exe.bor>
-
diff --git a/apps/drwho/BS_Client.cpp b/apps/drwho/BS_Client.cpp
deleted file mode 100644
index 97ea8f4a21f..00000000000
--- a/apps/drwho/BS_Client.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "File_Manager.h"
-#include "BS_Client.h"
-
-BS_Client::BS_Client (void)
-{
- this->count_ = FILE_MANAGER::instance ()->open_file (Options::friend_file);
-
- if (this->count_ < 0)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- Options::program_name));
- else
- {
- ACE_NEW (this->protocol_record_,
- Protocol_Record[this->count_]);
- ACE_NEW (this->sorted_record_,
- Protocol_Record *[this->count_]);
-
- for (int i = 0; i < this->count_; i++)
- {
- Protocol_Record *prp = &this->protocol_record_[i];
-
- this->sorted_record_[i] = prp;
-
- FILE_MANAGER::instance ()->get_login_and_real_name
- (prp->key_name1_, prp->key_name2_);
- }
-
- ACE_OS::qsort (this->sorted_record_,
- this->count_,
- sizeof *this->sorted_record_,
- Binary_Search::name_compare);
- }
-}
-
-// This function is used to merge the KEY_NAME from server HOST_NAME
-// into the sorted list of userids kept on the client's side. Since
-// we *know* we are going to find the name we use the traditional
-// binary search.
-
-Protocol_Record *
-BS_Client::insert (const char *key_name, int)
-{
-#if 0
- Protocol_Record *pr = (Protocol_Record *)
- ACE_OS::bsearch ((const void *) key_name,
- (const void *) this->sorted_record_,
- this->count_,
- sizeof ...,
- int (*compar)(const void *, const void *) ACE_OS::strcmp);
- return pr;
-#else
- int lo = 0;
- int hi = this->count_ - 1;
- Protocol_Record **sorted_buffer = this->sorted_record_;
-
- while (lo <= hi)
- {
- int mid = (lo + hi) / 2;
- Protocol_Record *prp = sorted_buffer[mid];
- int cmp = ACE_OS::strcmp (key_name,
- prp->get_login ());
- if (cmp == 0)
- return prp;
- else if (cmp < 0)
- hi = mid - 1;
- else
- lo = mid + 1;
- }
-
- return 0;
-#endif /* 0 */
-}
-
-Protocol_Record *
-BS_Client::get_each_entry (void)
-{
- for (Protocol_Record *prp = Binary_Search::get_each_entry ();
- prp != 0;
- prp = Binary_Search::get_each_entry ())
- if (prp->get_drwho_list () != 0)
- return prp;
-
- return 0;
-}
diff --git a/apps/drwho/BS_Client.h b/apps/drwho/BS_Client.h
deleted file mode 100644
index 9859768df82..00000000000
--- a/apps/drwho/BS_Client.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// BS_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _BS_CLIENT_H
-#define _BS_CLIENT_H
-
-#include "Binary_Search.h"
-
-class BS_Client : public Binary_Search
-{
- // = TITLE
- // Provides the client's binary search lookup table abstraction.
-public:
- // = Initialization.
- BS_Client (void);
- // Constructor.
-
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN);
- // This function is used to merge the <key_name> from server
- // <host_name> into the sorted list of userids kept on the client's
- // side. Since we *know* we are going to find the name we use the
- // traditional binary search.
-
- virtual Protocol_Record *get_each_entry (void);
- // An iterator, similar to Binary_Search::get_next_friend, though in
- // this case the friend records are returned in the order they
- // appeared in the friend file, rather than in sorted order. Also,
- // we skip over entries that don't have any hosts associated with
- // them.
-};
-
-#endif /* _BS_CLIENT_H */
diff --git a/apps/drwho/BS_Server.cpp b/apps/drwho/BS_Server.cpp
deleted file mode 100644
index 7c0dfdb7d51..00000000000
--- a/apps/drwho/BS_Server.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-// $Id$
-
-#include "BS_Server.h"
-
-// This constructor takes a message of sorted login names and loads up
-// the symbol table on the server's side. It assumes that the number
-// of friends is stored in the first MAXUSERIDNAMELEN bytes of the
-// packet. Note that we assume that the client sends the login names
-// in sorted order, so we don't bother sorting them!
-
-BS_Server::BS_Server (const char *packet)
-{
- const char *buf_ptr = packet + MAXUSERIDNAMELEN;
-
- this->count_ = atoi (packet);
- this->buffer_ = buf_ptr;
-
- ACE_NEW (this->protocol_record_,
- Protocol_Record[this->count_]);
- ACE_NEW (this->sorted_record_,
- Protocol_Record *[this->count_]);
-
- for (int i = 0; i < this->count_; i++)
- {
- Protocol_Record *rec_ptr = &this->protocol_record_[i];
-
- this->sorted_record_[i] = rec_ptr;
- rec_ptr->key_name1_ = buf_ptr;
-
- // Skip forward to the start of the next login name.
-
- while (*buf_ptr++ != '\0')
- continue;
- }
-
-}
-
-// Insert the HOST_NAME into the appropriate DRWHO_LIST slot if the
-// KEY_NAME happens to be one of our friends. Binary search is used
-// because the Protocol_Manager keeps a sorted representation of the
-// friend names.
-//
-// Note that this binary search is tuned for unsuccessful searches,
-// since most of the time we the KEY_NAME is *not* a friend (unless
-// you've got *lots* of friends)!
-//
-// Note finally that we keep a cache of the last KEY_NAME that is
-// looked up, as well as the result of the lookup. This speeds things
-// up because the whod files tend to cluster userids together. */
-
-Protocol_Record *
-BS_Server::insert (const char *key_name, int max_len)
-{
- static char last_lookup[MAXHOSTNAMELEN];
- static int mid = 0;
- static int result = 0;
- Protocol_Record **buffer = this->sorted_record_;
-
- // First check the cache...
- if (ACE_OS::strncmp (last_lookup, key_name, max_len) == 0)
- {
- if (result == 0)
- return 0;
- }
- else
- {
- // Store this away in the cache for the next iteration.
- ACE_OS::strncpy (last_lookup, key_name, max_len);
-
- int hi = this->count_ - 1;
- int lo = 0;
- int cmp;
-
- while (lo < hi)
- {
- mid = (hi + lo + 1) / 2;
-
- cmp = ACE_OS::strncmp (key_name,
- buffer[mid]->get_login (),
- max_len);
- if (cmp < 0)
- hi = mid - 1;
- else
- lo = mid;
- }
-
- // This line is very subtle... ;-)
- if (!(cmp == 0
- || ACE_OS::strncmp (key_name, buffer[--mid]->get_login (), max_len) == 0))
- {
- result = 0;
- return 0;
- }
- }
-
- // If we get here we've located a friend.
-
- result = 1;
- return buffer[mid];
-}
-
-// Returns the next friend in the sequence of sorted friends. Skips
-// over the entries that don't have any hosts associated with them
-// (because these entries weren't on the server machine. */
-
-Protocol_Record *
-BS_Server::get_next_entry (void)
-{
- for (Protocol_Record *prp = Binary_Search::get_next_entry ();
- prp != 0;
- prp = Binary_Search::get_next_entry ())
- if (prp->get_drwho_list () != 0)
- return prp;
-
- return 0;
-}
diff --git a/apps/drwho/BS_Server.h b/apps/drwho/BS_Server.h
deleted file mode 100644
index 3c7c1a82afc..00000000000
--- a/apps/drwho/BS_Server.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// BS_Server.h
-//
-// = DESCRIPTION
-// Provides the server's binary search lookup table abstraction.
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _BS_SERVER_H
-#define _BS_SERVER_H
-
-#include "Binary_Search.h"
-
-class BS_Server : public Binary_Search
-{
- // = TITLE
- // Provides the server's binary search lookup table abstraction.
-public:
- // = Initialization.
- BS_Server (const char *packet);
-
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN);
- // This function is used to merge the <key_name> from server
- // <host_name> into the sorted list of userids kept on the client's
- // side.
-
- virtual Protocol_Record *get_next_entry (void);
- // An iterator, similar to Binary_Search::get_next_friend, though in
- // this case the friend records are returned in the order they
- // appeared in the friend file, rather than in sorted order. Also,
- // we skip over entries that don't have any hosts associated with
- // them.
-};
-
-#endif /* _BS_SERVER_H */
diff --git a/apps/drwho/Binary_Search.cpp b/apps/drwho/Binary_Search.cpp
deleted file mode 100644
index 7739c398eb4..00000000000
--- a/apps/drwho/Binary_Search.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "Binary_Search.h"
-
-// This function is passed to qsort to perform the comparison between
-// login names for two friends.
-
-int
-Binary_Search::name_compare (const void *s1, const void *s2)
-{
- return ACE_OS::strcmp ((*(Protocol_Record **) s1)->key_name1_,
- (*(Protocol_Record **) s2)->key_name1_);
-}
-
-// Returns the next friend in the sequence of sorted friends. Note
-// that this function would be simplified if we expanded the iterator
-// interface to include an "initialize" and "next" function!
-
-Protocol_Record *
-Binary_Search::get_next_entry (void)
-{
- // Reset the iterator if we are starting from the beginning.
-
- if (this->current_ptr_ == 0)
- this->current_ptr_ = this->sorted_record_;
-
- // Now check to see if we've hit the end, in which case we set
- // things up for the next round!
-
- if (this->current_ptr_ < this->sorted_record_ + this->count_)
- return *this->current_ptr_++;
- else
- {
- this->current_ptr_ = 0;
- return 0;
- }
-}
-
-// An iterator, similar to Binary_Search::get_next_friend, though in
-// this case the friend records are returned in the order they
-// appeared in the friend file, rather than in sorted order. Also, we
-// skip over entries that don't have any hosts associated with them.
-
-Protocol_Record *
-Binary_Search::get_each_entry (void)
-{
- // Reset the iterator if we are starting from the beginning.
-
- if (this->current_index_ == -1)
- this->current_index_ = 0;
-
- // Now check to see if we've hit the end, in which case we set
- // things up for the next round!
-
- for (;
- this->current_index_ < this->count_;
- this->current_index_++)
- if (this->protocol_record_[this->current_index_].drwho_list_ != 0)
- return &this->protocol_record_[this->current_index_++];
-
- this->current_index_ = -1;
- return 0;
-}
-
-Binary_Search::~Binary_Search (void)
-{
- if (Options::get_opt (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "disposing Binary_Search\n"));
-}
-
-// Used to initialize the values for the iterators...
-
-Binary_Search::Binary_Search (void)
- : current_ptr_ (0),
- current_index_ (0)
-{
-}
diff --git a/apps/drwho/Binary_Search.h b/apps/drwho/Binary_Search.h
deleted file mode 100644
index ae8dc93cb29..00000000000
--- a/apps/drwho/Binary_Search.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Binary_Search.h
-//
-// = DESCRIPTION
-// Defines a binary search abstraction for friend records.
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _BINARY_SEARCH_H
-#define _BINARY_SEARCH_H
-
-#include "Search_Struct.h"
-
-class Binary_Search : public Search_Struct
-{
- // = TITLE
- // Defines a binary search abstraction for friend records.
-public:
- // = Initialization and termination method.
- Binary_Search (void);
- // Initialize the values for the iterators...
-
- virtual ~Binary_Search (void);
- // Destructor.
-
- virtual Protocol_Record *get_next_entry (void);
- // Returns the next friend in the sequence of sorted friends. Note
- // that this function would be simplified if we expanded the
- // iterator interface to include an "initialize" and "next"
- // function!
-
- virtual Protocol_Record *get_each_entry (void);
- // An iterator, similar to Binary_Search::get_next_friend, though in
- // this case the friend records are returned in the order they
- // appeared in the friend file, rather than in sorted order. Also,
- // we skip over entries that don't have any hosts associated with
- // them.
-
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN) = 0;
- // This function is used to merge the <key_name> from server
- // <host_name> into the sorted list of userids kept on the client's
- // side.
-
- static int name_compare (const void *, const void *);
- // This function is passed to qsort to perform the comparison
- // between login names for two friends.
-
-protected:
- Protocol_Record **current_ptr_;
- int current_index_;
-
- Protocol_Record *protocol_record_;
- Protocol_Record **sorted_record_;
-
- const char *buffer_;
- int buffer_size_;
-};
-
-#endif /* _BINARY_SEARCH_H */
diff --git a/apps/drwho/CM_Client.cpp b/apps/drwho/CM_Client.cpp
deleted file mode 100644
index 4c553b04dae..00000000000
--- a/apps/drwho/CM_Client.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "Multicast_Manager.h"
-#include "CM_Client.h"
-
-// Creates and binds a UDP socket...
-
-int
-CM_Client::open (short port_number)
-{
- int max_packet_size = UDP_PACKET_SIZE;
-
- Comm_Manager::sokfd_ = ACE_OS::socket (PF_INET, SOCK_DGRAM, 0);
-
- if (Comm_Manager::sokfd_ == ACE_INVALID_HANDLE)
- return -1;
-
- ACE_OS::memset ((char *) &this->sin_,
- 0,
- sizeof this->sin_);
- this->sin_.sin_family = AF_INET;
- this->sin_.sin_port = htons (port_number);
-
- return 1;
-}
-
-int
-CM_Client::receive (int timeout)
-{
- FD_ZERO (&this->read_fd_);
- FD_SET (Comm_Manager::sokfd_, &this->read_fd_);
-
- if (timeout > 0)
- {
- this->time_out_.sec (timeout);
- this->time_out_.usec (0);
- this->top_ = &time_out_;
- }
-
- while (Multicast_Manager::outstanding_hosts_remain ())
- {
- if (ACE_OS::select (Comm_Manager::sokfd_ + 1,
- &this->read_fd_,
- 0,
- 0,
- this->top_) <= 0)
- break;
- else
- {
- int sin_len = sizeof this->sin_;
- ssize_t n = ACE_OS::recvfrom (Comm_Manager::sokfd_,
- this->recv_packet_,
- UDP_PACKET_SIZE,
- 0,
- (sockaddr *) &this->sin_,
- &sin_len);
- if (n < 0)
- return -1;
- else
- {
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- hostent *np = ACE_OS::gethostbyaddr ((char *) &this->sin_.sin_addr,
- sizeof this->sin_.sin_addr,
- AF_INET);
-
- ACE_DEBUG ((LM_DEBUG,
- "receiving from server host %s (%s)\n",
- np->h_name,
- inet_ntoa (this->sin_.sin_addr)));
- }
-
- if (this->demux (this->recv_packet_, n) < 0)
- return -1;
-
- Multicast_Manager::checkoff_host (this->sin_.sin_addr);
- }
- }
- }
-
- for (const char *host_name;
- Multicast_Manager::get_next_non_responding_host (host_name);
- )
- ACE_DEBUG ((LM_DEBUG,
- "%s did not respond\n",
- host_name));
- return 1;
-}
-
-int
-CM_Client::send (void)
-{
- int packet_length = 0;
-
- if (this->mux (this->send_packet_, packet_length) < 0)
- return -1;
-
- // Ship off the info to all the hosts.
-
- while (Multicast_Manager::get_next_host_addr (this->sin_.sin_addr) != 0)
- {
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- hostent *np = ACE_OS::gethostbyaddr ((char *) &this->sin_.sin_addr,
- sizeof this->sin_.sin_addr,
- AF_INET);
-
- ACE_DEBUG ((LM_DEBUG,
- "sending to server host %s (%s)\n",
- np->h_name,
- inet_ntoa (this->sin_.sin_addr)));
- }
-
- if (sendto (Comm_Manager::sokfd_,
- this->send_packet_,
- packet_length,
- 0,
- (sockaddr *) &this->sin_,
- sizeof this->sin_) < 0)
- return -1;
- }
- return 1;
-}
-
-CM_Client::CM_Client (void)
- : top_ (0)
-{
-}
-
-CM_Client::~CM_Client (void)
-{
- if (Options::get_opt (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "disposing CM_Client\n"));
-
- ACE_OS::closesocket (Comm_Manager::sokfd_);
-}
-
diff --git a/apps/drwho/CM_Client.h b/apps/drwho/CM_Client.h
deleted file mode 100644
index 1e789633a5a..00000000000
--- a/apps/drwho/CM_Client.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// CM_Client.h
-//
-// = DESCRIPTION
-// Provides a virtual communcations layer for the client in the
-// drwho program.
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _CM_CLIENT_H
-#define _CM_CLIENT_H
-
-#include "Comm_Manager.h"
-
-class CM_Client : public Comm_Manager
-{
- // = TITLE
- // Provides a virtual communcations layer for the client in the
- // drwho program.
-public:
- // = Initialization and termination.
- CM_Client (void);
- // Constructor.
-
- virtual ~CM_Client (void);
- // Destructor.
-
- virtual int mux (char *packet, int &packet_length) = 0;
- virtual int demux (char *packet, int &packet_length) = 0;
- virtual int open (short port_number);
- virtual int receive (int timeout = 0);
- virtual int send (void);
-
-private:
- fd_set read_fd_;
- ACE_Time_Value time_out_;
- ACE_Time_Value *top_;
-};
-
-#endif /* _CM_CLIENT_H */
diff --git a/apps/drwho/CM_Server.cpp b/apps/drwho/CM_Server.cpp
deleted file mode 100644
index 5f9fc643045..00000000000
--- a/apps/drwho/CM_Server.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-// $Id$
-
-#include "global.h"
-#include "Options.h"
-#include "CM_Server.h"
-
-// Creates and binds a UDP socket...
-
-int
-CM_Server::open (short port_number)
-{
- int max_packet_size = UDP_PACKET_SIZE;
-
- this->sokfd_ = socket (PF_INET, SOCK_DGRAM, 0);
-
- if (this->sokfd_ < 0)
- return -1;
-
- ACE_OS::memset (&this->sin_, sizeof this->sin_, 0);
- this->sin_.sin_family = AF_INET;
- this->sin_.sin_port = htons (port_number);
- this->sin_.sin_addr.s_addr = INADDR_ANY;
-
- // This call fails if an rflo daemon is already running.
- if (ACE_OS::bind (this->sokfd_,
- (sockaddr *) &this->sin_,
- sizeof this->sin_) < 0)
- return -1;
-
- if (ACE_OS::setsockopt (this->sokfd_,
- SOL_SOCKET,
- SO_SNDBUF,
- (char *) &max_packet_size,
- sizeof max_packet_size) < 0)
- return -1;
-
- return 1;
-}
-
-int
-CM_Server::receive (int)
-{
- int sin_len = sizeof this->sin_;
-
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG, "waiting for client to send...\n"));
-
- ssize_t n = recvfrom (this->sokfd_,
- this->recv_packet_,
- UDP_PACKET_SIZE,
- 0,
- (sockaddr *) &this->sin_,
- &sin_len);
- if (n == -1)
- return -1;
-
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "receiving from client host %s\n",
- ACE_OS::inet_ntoa (this->sin_.sin_addr)));
-
- if (this->demux (this->recv_packet_, n) < 0)
- return -1;
-
- return 1;
-}
-
-int
-CM_Server::send (void)
-{
- int packet_length = 0;
-
- if (this->mux (this->send_packet_,
- packet_length) < 0)
- return -1;
-
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "sending to client host %s\n",
- ACE_OS::inet_ntoa (this->sin_.sin_addr)));
-
- if (sendto (this->sokfd_,
- this->send_packet_,
- packet_length,
- 0,
- (sockaddr *) &this->sin_,
- sizeof this->sin_) < 0)
- return -1;
-
- return 1;
-}
-
-CM_Server::CM_Server (void)
-{
-}
-
-CM_Server::~CM_Server (void)
-{
- if (Options::get_opt (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "CM_Server\n"));
-
- ACE_OS::closesocket (this->sokfd_);
-}
diff --git a/apps/drwho/CM_Server.h b/apps/drwho/CM_Server.h
deleted file mode 100644
index a91402a5e48..00000000000
--- a/apps/drwho/CM_Server.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// CM_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _CM_SERVER_H
-#define _CM_SERVER_H
-
-#include "Options.h"
-#include "global.h"
-#include "Comm_Manager.h"
-
-class CM_Server : public Comm_Manager
-{
- // = TITLE
- // Provides a virtual communcations layer for the server in drwho.
-public:
- CM_Server (void);
- virtual ~CM_Server (void);
-
- virtual int open (short port_number);
- virtual int receive (int timeout = 0);
- virtual int send (void);
- virtual int mux (char *packet, int &packet_length) = 0;
- virtual int demux (char *packet, int &packet_length) = 0;
-};
-
-#endif /* _CM_SERVER_H */
diff --git a/apps/drwho/ChangeLog b/apps/drwho/ChangeLog
deleted file mode 100644
index 114661947ba..00000000000
--- a/apps/drwho/ChangeLog
+++ /dev/null
@@ -1,250 +0,0 @@
-Wed Sep 30 13:00:52 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Fixed a bunch of warnings related to char * and const char *.
- Thanks to Sandro Doro <doros@aureus.sublink.org> for reporting
- this.
-
-Sat Sep 12 21:21:01 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Made zillions of changes to "ACE"ify all of the code. Drwho is
- now officially working again!
-
-Sun Sep 6 22:48:52 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Replaced all Str::*() methods with the new ACE::*() methods,
- which are more "standard".
-
- * Began to work on drwho after a 5 year absence...
-
-Sun Feb 14 16:13:10 1993 Douglas C. Schmidt (schmidt at net1.ics.uci.edu)
-
- * Yow. Once again back at work... This time I fixed things up so
- that the release compiles properly with Solaris 2.1 C++, g++
- 2.3.3, and the Sun C++ compiler on Sun OS 4.1.x. To do this I
- had to change the user-defined memory allocator somewhat, since
- the Sun C++ compiler was using the global NEW operator to
- allocate pools of memory behind my back... Naturally, this
- reaked havoc with the existing version in the server, which
- returns all the allocated memory to the free list once a request
- is satisfied. In addition, g++ had a weird multiple
- inheritance/pure virtual function bug that I fixed by reordering
- certain pure virtual functions. Oh what fun... ;-) Anyhow,
- everything is now back in running order!
-
-Sun Dec 6 16:13:21 1992 Douglas C. Schmidt (schmidt at net1.ics.uci.edu)
-
- * Yow, well, after about 8 months of total neglect I'm finally
- back at work on this program! The current changes I did today
- involved getting drwho to compile with g++ 2.3.2. This required
- a couple of small work arounds in the source code due to bugs,
- but hey, I guess it is better than nothing right?!
-
- Also, I had to fix a couple of places where I didn't correctly
- initialize static variables (the compiler implementations have
- changed since last year obviously). Also, I've changed a couple
- of the default server hosts to reflect the fascist policies of
- our support group ;-) (I've no longer got access to certain
- servers...)
-
- Anyhow, I think drwho is once again running with g++, so now I
- can hand the release over to Ericka... ;-)
-
-Wed May 6 23:12:02 1992 Douglas C. Schmidt (schmidt at net4.ics.uci.edu)
-
- * There is something horribly wrong with g++ 2.1. Therefore, I
- had to make a couple of changes in the pmc-rusers.C and
- pm-client.C files in order to make the blasted thing compile
- when I had pointers to member functions... Make sure to change
- this back when g++ is fixed...
-
-Tue Feb 4 11:23:12 1992 Douglas C. Schmidt (schmidt at net6.ics.uci.edu)
-
- * The blasted program was crashing when there were consecutive
- newlines in the input file. I fixed
- File_Manager::get_login_and_real_name and
- File_Manager::open_friends_file so that they detect and skip
- over these consecutive newlines.
-
-Thu Nov 21 21:55:00 1991 Douglas C. Schmidt (schmidt at net6.ics.uci.edu)
-
- * Make the time that drwho uses to consider a host idle be a
- command-line parameter.
-
-Wed Nov 13 14:24:40 1991 Douglas C. Schmidt (schmidt at bastille.ics.uci.edu)
-
- * Something else that ought to be done:
-
- Add a flag to the -R option that allows the hostname to be
- printed using the internet address and/or the hostname...
-
-Sat Nov 9 13:45:30 1991 Douglas C. Schmidt (schmidt at bastille.ics.uci.edu)
-
- * Added zillions more changes yet again. We now have an rusers
- compatibility mode (-R), to go along with the -a, -w, and
- default (flo) options.
-
- * Changed the -w option so that it only returns the name of the
- host machine where the user is logged in. This way, I can say:
-
- % talk schmidt@`drwho -w schmidt`
- % rsh `drwho -w schmidt` w
-
- etc... ;-)
-
- * Added support for the -L option (print using login name rather
- than real name). Also added support for the -l option (print
- out verbosely, a la ls -l!).
-
-Sun Oct 27 21:32:15 1991 Douglas C. Schmidt (schmidt at bastille.ics.uci.edu)
-
- * Need to complete the -s and -S options to support sorting the
- output by login name and real name, respectively... In order to
- support the '*' indication with this scheme we probably need to
- lists, one for active and one for inactive users!
-
-Tue Oct 22 00:13:21 1991 Douglas C. Schmidt (schmidt at net6.ics.uci.edu)
-
- * Make another zillion changes...
-
-Sun Oct 20 21:35:24 1991 Douglas C. Schmidt (schmidt at net6.ics.uci.edu)
-
- * Added support for the -p option to allow setting the client and
- server port number from the command-line.
-
- * Things done so far:
-
- * Owen also wants an new rflo feature (done)
-
- I also want a version that given a command like:
-
- whereis omalley
-
- would return the login where that login is active if there is
- one (ie. omalley@zola). Then you could have commands like:
-
- talk `whereis omalley`
-
- that would find where I am and try to talk to me there.
-
- * Another neat addition would be: have an option (e.g., `-a') so
- that rflo would return *all* the users logged in and then look
- up their names using the yp passwd stuff! (partially done, but
- not very elegantly yet...). (done)
-
- * Make the port number a command-line option... (done)
-
- * we also need think about how to incorporate inheritance and
- dynamic binding into this thang (probably it can be used for
- the local/remote split, and also perhaps for the
- friends/everyone split (see below)). (done)
-
- * Fix up the options stuff wrt the -F option etc... (done)
-
- * Have I fixed the is_active shit? (done)
-
- * we need a "message abstraction" that abstracts away from the
- details of packets protocols and remote operations protocols.
- (done).
-
- * Note, should make an option so we could read the names of the
- hosts to query from a file... (done)
-
-Fri Oct 18 16:17:39 1991 Douglas C. Schmidt (schmidt at net6.ics.uci.edu)
-
- * I've made countless changes...
-
-Wed Oct 16 17:42:40 1991 Douglas C. Schmidt (schmidt at net6.ics.uci.edu)
-
- * Undid the message manager abstraction and merged it in with the
- Friend_Manager client and server. This really cleans up the
- interface!
-
- * Yow, make zillions of important changes to make the
- client/server split more explicit... Now the Friend_Manager is
- split into client and server, the message manager is split, and
- the communications manager is also split. Each file is much
- smaller and easier to understand!
-
-Mon Oct 14 18:36:55 1991 Douglas C. Schmidt (schmidt at net1.ics.uci.edu)
-
- * Added support for the -h and -? options, that print out a long
- and short usage message, respectively.
-
-Tue Oct 1 09:28:29 1991 Douglas C. Schmidt (schmidt at net4.ics.uci.edu)
-
- * The -a option works a great deal better too... I added a check
- in the File_Manager::open_passwd_file routine to strip off the
- extra subfields in the pw_gecos field, since this info isn't
- really very useful and makes the "real name" field too long!
-
- * Added some extra stuff to the Comm_Manager so that I could
- change the max size of the UDP datagrams that are passed around.
- As it turns out, I don't really need to do this, but it is more
- robust this way...
-
-Thu Sep 26 14:00:45 1991 Douglas C. Schmidt (schmidt at net4.ics.uci.edu)
-
- * Make sun3 and sun4 subdirectories to help the build process!
-
- * Changed the UDP port number from 12346 to 12344 so I wouldn't
- collide with Owen!
-
- * There is a weird bus error problem on the sun 4s... Hum...
-
- * Yow, got everything working again...
-
- * Still to do:
-
- * Think about fixing the -f option to work correctly for
- *relative* filenames...
-
- * Make UDP_BUFFER_SIZE a command-line option...
-
- * Modify server.C to be started by inetd.
-
- * For -a option... if they are a friend, use the name from
- .friend.dta otherwise use the name from the passwd file.
-
- * Don't forget about:
-
- delete Friend_Manager::friend_record;
- delete Friend_Manager::sorted_record;
-
- Need to figure out a good way to deal with this!
-
-Mon Sep 23 16:09:46 1991 Douglas C. Schmidt (schmidt at net4.ics.uci.edu)
-
- * Added a neat feature that now allows the user to specify which
- hosts to examine by specifying an option ('-F') on the
- command-line that reads the contents of that file and inserts it
- into the list of files.
-
-Wed Sep 18 10:46:41 1991 Douglas C. Schmidt (schmidt at bastille.ics.uci.edu)
-
- * We need to make all the interfaces throughout rflo much more
- object-oriented, e.g.:
-
- * Made a host-manager abstraction to handle all the host
- machine related operations. This makes the options stuff
- *much* cleaner!
-
- * Make rflo compile with g++ 1.37.2! Now it compiles with cfront
- 2.0, Saber C++ 1.0.1 and g++-1.39.0 and g++-1.37.2.
-
-Tue Sep 17 19:02:47 1991 Douglas C. Schmidt (schmidt at net4.ics.uci.edu)
-
- * Started merging in the stuff Owen did. I'm trying to maintain a
- consistent programming style... The Owen stuff adds support for
- timeouts and fixes problems with returning a count of the number
- of friends!
-
-Wed Sep 4 10:14:51 1991 Douglas C. Schmidt (schmidt at net4.ics.uci.edu)
-
- * Things to do:
-
- * Add comprehensive daemon support for server.C.
- * Add timeout stuff in case hosts are down!
- * Talk to support about making a standard daemon.
- * Fix the problem with returning the number of friends.
-
-
diff --git a/apps/drwho/Comm_Manager.h b/apps/drwho/Comm_Manager.h
deleted file mode 100644
index ec3caf93e74..00000000000
--- a/apps/drwho/Comm_Manager.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Comm_Manager.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _COMM_MANAGER_H
-#define _COMM_MANAGER_H
-
-#include "global.h"
-
-class Comm_Manager
-{
- // = TITLE
- // Provides a virtual communcations layer for the drwho program.
-protected:
- char recv_packet_[UDP_PACKET_SIZE];
- char send_packet_[UDP_PACKET_SIZE];
- sockaddr_in sin_;
- int sokfd_;
-
- virtual int mux (char *packet, int &packet_length) = 0;
- virtual int demux (char *packet, int &packet_length) = 0;
- virtual int open (short port_number) = 0;
- virtual int receive (int timeout = 0) = 0;
- virtual int send (void) = 0;
-};
-
-#endif /* _COMM_MANAGER_H */
diff --git a/apps/drwho/Drwho_Node.cpp b/apps/drwho/Drwho_Node.cpp
deleted file mode 100644
index 4570eb43877..00000000000
--- a/apps/drwho/Drwho_Node.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-// $Id$
-
-#include "Drwho_Node.h"
-
-Drwho_Node::Drwho_Node (const char *h_name, Drwho_Node *n)
- : next_ (n),
- inactive_count_ (0),
- active_count_ (0),
- key_name1_ (h_name),
- key_name2_ (0)
-{}
-
-Drwho_Node::Drwho_Node (void)
- : next_ (0),
- inactive_count_ (0),
- active_count_ (0),
- key_name1_ (0),
- tty_name_ (0),
- idle_time_ (0),
- key_name2_ (0)
-{}
-
-const char *
-Drwho_Node::get_login_name (void)
-{
- return this->key_name1_;
-}
-
-const char *
-Drwho_Node::set_login_name (const char *str)
-{
- this->key_name1_ = str;
- return str;
-}
-
-const char *
-Drwho_Node::get_real_name (void)
-{
- return this->key_name2_;
-}
-
-const char *
-Drwho_Node::set_real_name (const char *str)
-{
- this->key_name2_ = str;
- return str;
-}
-
-const char *
-Drwho_Node::get_host_name (void)
-{
- return this->key_name1_;
-}
-
-const char *
-Drwho_Node::set_host_name (const char *str)
-{
- this->key_name1_ = str;
- return str;
-}
-
-int
-Drwho_Node::get_active_count (void)
-{
- return this->active_count_;
-}
-
-int
-Drwho_Node::get_inactive_count (void)
-{
- return this->inactive_count_;
-}
-
-int
-Drwho_Node::set_active_count (int count)
-{
- this->active_count_ = count;
- return count;
-}
-
-int
-Drwho_Node::set_inactive_count (int count)
-{
- this->inactive_count_ = count;
- return count;
-}
-
-int
-Drwho_Node::set_idle_time (int idle_time)
-{
- this->idle_time_ = idle_time;
- return idle_time;
-}
-
-int
-Drwho_Node::get_idle_time (void)
-{
- return this->idle_time_;
-}
diff --git a/apps/drwho/Drwho_Node.h b/apps/drwho/Drwho_Node.h
deleted file mode 100644
index 02251b669df..00000000000
--- a/apps/drwho/Drwho_Node.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Drwho_Node.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _DRWHO_NODE_H
-#define _DRWHO_NODE_H
-
-#include "global.h"
-
-class Drwho_Node
-{
- // = TITLE
- // Stores information about a host for a specific friend.
-public:
- Drwho_Node (const char *host, Drwho_Node *next);
- Drwho_Node (void);
-
- int get_active_count (void);
- int get_inactive_count (void);
- int set_active_count (int count);
- int set_inactive_count (int count);
- int set_idle_time (int idle_time);
- int get_idle_time (void);
- const char *get_host_name (void);
- const char *set_host_name (const char *str);
- const char *get_login_name (void);
- const char *set_login_name (const char *);
- const char *get_real_name (void);
- const char *set_real_name (const char *);
-
- const char *key_name1_;
- const char *key_name2_;
- const char *tty_name_;
- int idle_time_;
- int active_count_;
- int inactive_count_;
- Drwho_Node *next_;
-};
-
-#endif /* _DRWHO_NODE_H */
diff --git a/apps/drwho/File_Manager.cpp b/apps/drwho/File_Manager.cpp
deleted file mode 100644
index 190b5321c46..00000000000
--- a/apps/drwho/File_Manager.cpp
+++ /dev/null
@@ -1,173 +0,0 @@
-// $Id$
-
-#include "File_Manager.h"
-
-File_Manager::File_Manager (void)
- : current_ptr (0),
- number_of_friends (0),
- max_key_length (0),
- buffer_ptr (0),
- buffer_size (0)
-{
-}
-
-// Either opens the friends file (if FILENAME is not a NULL pointer)
-// or opens up the password file. In either case, the number of
-// entries in the file are returned, i.e., number of friends...
-
-int
-File_Manager::open_file (const char *filename)
-{
- return filename == 0
- ? this->open_passwd_file ()
- : this->open_friends_file (filename);
-}
-
-// Returns the next LOGIN_NAME and REAL_NAME from the file.
-
-void
-File_Manager::get_login_and_real_name (const char *&login_name, const char *&real_name)
-{
- char *buf_ptr = this->current_ptr;
-
- login_name = buf_ptr;
-
- // Skip to the end of the login name.
-
- while (isalnum (*buf_ptr))
- buf_ptr++;
-
- *buf_ptr++ = '\0';
-
- // Now skip over white space to *start* of real name!
-
- while (isspace (*buf_ptr) || *buf_ptr == '\0')
- buf_ptr++;
-
- real_name = buf_ptr;
-
- while (*buf_ptr++ != '\n')
- continue;
-
- // Clear the trailing blanks and junk.
-
- for (char *tmp_ptr = buf_ptr - 1;
- isspace (*tmp_ptr);
- tmp_ptr--)
- *tmp_ptr = '\0';
-
- // Skip over consecutive blank lines.
-
- while (*buf_ptr == '\n')
- buf_ptr++;
-
- this->current_ptr = buf_ptr;
-}
-
-// Open up the yp passwd file and slurp all the users in!
-
-int
-File_Manager::open_passwd_file (void)
-{
- const char *filename = ACE_OS::tempnam ();
- FILE *fp = ACE_OS::fopen (filename, "w");
-
- if (fp == 0)
- return -1;
-
- passwd *pwent;
-
- for (ACE_OS::setpwent ();
- (pwent = ACE_OS::getpwent ()) != 0; )
- if (*pwent->pw_gecos != '\0')
- {
- char *cp = strchr (pwent->pw_gecos, ',');
-
- if (cp != 0)
- *cp = '\0';
-
- ACE_OS::fprintf (fp,
- "%-8.8s %s\n",
- pwent->pw_name,
- pwent->pw_gecos);
- this->number_of_friends++;
- }
-
- ACE_OS::endpwent ();
-
- ACE_OS::fclose (fp);
-
- if (this->mmap_.map (filename) == -1)
- return -1;
-
- this->buffer_ptr = (char *) this->mmap_.addr ();
-
- if (this->buffer_ptr >= 0)
- {
- this->buffer_size = this->mmap_.size ();
- this->current_ptr = this->buffer_ptr;
- return this->number_of_friends;
- }
-
- return -1;
-}
-
-// This function opens up FILENAME and memory maps it in our address
-// space.
-
-int
-File_Manager::open_friends_file (const char *filename)
-{
- char directory[MAXPATHLEN];
- const char *pathname = directory;
-
- // See if we've got a filename or a pathname (i.e., directory/filename).
-
- if (ACE_OS::strrchr (filename, '/') != 0)
- // We've got a complete pathname.
- pathname = filename;
- else
- {
- directory[0] = '\0';
-
- const char *home = ACE_OS::getenv ("HOME");
- if (home != 0)
- {
- ACE_OS::strcat (directory, home);
- ACE_OS::strcat (directory, "/");
- }
- ACE_OS::strcat (directory, filename);
- }
-
- // Do the mmap'ing.
-
- if (this->mmap_.map (pathname) == -1)
- return -1;
-
- this->buffer_ptr = (char *) this->mmap_.addr ();
-
- if (this->buffer_ptr >= 0)
- {
- this->buffer_size = this->mmap_.size ();
- this->current_ptr = this->buffer_ptr;
-
- // Determine how many friends there are by counting the newlines.
-
- for (char *cp = this->buffer_ptr + this->buffer_size;
- cp > this->buffer_ptr
- ; )
- if (*--cp == '\n')
- {
- this->number_of_friends++;
-
- // Skip consecutive newlines.
- while (cp[-1] == '\n')
- --cp;
- }
-
- return this->number_of_friends;
- }
-
- return -1;
-}
-
diff --git a/apps/drwho/File_Manager.h b/apps/drwho/File_Manager.h
deleted file mode 100644
index 55482b2823d..00000000000
--- a/apps/drwho/File_Manager.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// File_Manager.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _FILE_MANAGER_H
-#define _FILE_MANAGER_H
-
-#include "global.h"
-#include "ace/Singleton.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Mem_Map.h"
-
-class File_Manager
-{
- // = TITLE
- // This class provides a file ADT for our friends info.
-public:
- File_Manager (void);
- // Constructor.
-
- int open_file (const char *filename);
- void get_login_and_real_name (const char *&login_name,
- const char *&real_name);
-private:
- int number_of_friends;
- int max_key_length;
-
- char *buffer_ptr;
- char *current_ptr;
- int buffer_size;
-
- int open_friends_file (const char *filename);
- int open_passwd_file (void);
-
- ACE_Mem_Map mmap_;
-};
-
-// Make a Singleton.
-typedef ACE_Singleton <File_Manager, ACE_Null_Mutex> FILE_MANAGER;
-
-#endif /* _FILE_MANAGER_H */
diff --git a/apps/drwho/HT_Client.cpp b/apps/drwho/HT_Client.cpp
deleted file mode 100644
index 2cd548c6506..00000000000
--- a/apps/drwho/HT_Client.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-// $Id$
-
-#include "HT_Client.h"
-
-// Insert a KEY_NAME into the hash table, if it doesn't already exist
-// there. What gets returned is a pointer to the node inserted. Note
-// that we do our own memory allocation here...
-
-Protocol_Record *
-HT_Client::insert (const char *key_name, int max_len)
-{
- Protocol_Record **prpp = 0;
-
- // This is tricky...
-
- for (prpp = &this->hash_table[ACE::hash_pjw (key_name) % this->hash_table_size];
- *prpp != 0
- && ACE_OS::strncmp ((*prpp)->get_login (),
- key_name, max_len) != 0;
- prpp = &(*prpp)->next_)
- continue;
-
- if (*prpp == 0)
- {
- ACE_NEW_RETURN (*prpp,
- Protocol_Record (ACE::strnew (key_name),
- *prpp),
- 0);
- this->count_++;
- }
-
- return *prpp;
-}
-
-
diff --git a/apps/drwho/HT_Client.h b/apps/drwho/HT_Client.h
deleted file mode 100644
index 274cc6e72e6..00000000000
--- a/apps/drwho/HT_Client.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// HT_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _HT_CLIENT_H
-#define _HT_CLIENT_H
-
-#include "Hash_Table.h"
-
-class HT_Client : public Hash_Table
-{
- // = TITLE
- // Provides the client's hash table abstraction.
-public:
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN);
-};
-
-#endif /* _HT_CLIENT_H */
diff --git a/apps/drwho/HT_Server.cpp b/apps/drwho/HT_Server.cpp
deleted file mode 100644
index c57297d7e0d..00000000000
--- a/apps/drwho/HT_Server.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-// $Id$
-
-#include "HT_Server.h"
-
-// Insert a KEY_NAME into the hash table, if it doesn't already exist
-// there. What gets returned is a pointer to the node inserted. Note
-// that we do our own memory allocation here...
-
-Protocol_Record *
-HT_Server::insert (const char *key_name, int max_len)
-{
- Protocol_Record **prpp = 0;
-
- // This is tricky...
-
- for (prpp = &this->hash_table[ACE::hash_pjw (key_name) % this->hash_table_size];
- *prpp != 0 && strncmp ((*prpp)->get_login (), key_name, max_len) != 0;
- prpp = &(*prpp)->next_)
- continue;
-
- if (*prpp == 0)
- {
- // Remember, the server must be very careful about stuff it
- // receives from the rwho manager, since it may not be
- // NUL-terminated. That's why we use ACE::strnnew ()...
-
- ACE_NEW_RETURN (*prpp,
- Protocol_Record (ACE::strnnew (key_name,
- max_len),
- *prpp),
- 0);
- this->count_++;
- }
-
- return *prpp;
-}
diff --git a/apps/drwho/HT_Server.h b/apps/drwho/HT_Server.h
deleted file mode 100644
index 3dbff633cfb..00000000000
--- a/apps/drwho/HT_Server.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// HT_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _HT_SERVER_H
-#define _HT_SERVER_H
-
-#include "Hash_Table.h"
-
-class HT_Server : public Hash_Table
-{
- // = TITLE
- // Provides the server's hash table abstraction.
-
-public:
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN);
-};
-
-#endif /* _HT_SERVER_H */
diff --git a/apps/drwho/Hash_Table.cpp b/apps/drwho/Hash_Table.cpp
deleted file mode 100644
index e98122b4bfb..00000000000
--- a/apps/drwho/Hash_Table.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "Hash_Table.h"
-
-Hash_Table::Hash_Table (void)
- : current_ptr (0),
- current_index (0),
- hash_table_size (HASH_TABLE_SIZE)
-{
- ACE_NEW (this->hash_table,
- Protocol_Record *[this->hash_table_size]);
- ACE_OS::memset (this->hash_table,
- 0,
- this->hash_table_size * sizeof *this->hash_table);
-}
-
-// Iterate through the hash table returning one node at a time...
-
-Protocol_Record *
-Hash_Table::get_next_entry (void)
-{
- // Reset the iterator if we are starting from the beginning.
-
- if (this->current_index == -1)
- this->current_index = 0;
-
- if (this->current_ptr == 0)
- {
-
- for (;
- this->current_index < this->hash_table_size;
- this->current_index++)
- if (this->hash_table[this->current_index] != 0)
- {
- Protocol_Record *prp = this->hash_table[this->current_index++];
- this->current_ptr = prp->next_;
- return prp;
- }
-
- this->current_index = -1;
- return 0;
- }
- else
- {
- Protocol_Record *prp = this->current_ptr;
- this->current_ptr = this->current_ptr->next_;
- return prp;
- }
-}
-
-Protocol_Record *
-Hash_Table::get_each_entry (void)
-{
- return this->get_next_entry ();
-}
-
-// Frees up all the dynamic memory in the hash table.
-
-Hash_Table::~Hash_Table (void)
-{
- if (Options::get_opt (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "disposing Hash_Table\n"));
-
- for (int i = 0; i < this->hash_table_size; i++)
- for (Protocol_Record *prp = this->hash_table[i];
- prp != 0; )
- {
- Protocol_Record *tmp = prp;
- prp = prp->next_;
- }
-}
diff --git a/apps/drwho/Hash_Table.h b/apps/drwho/Hash_Table.h
deleted file mode 100644
index 44f5ea769fc..00000000000
--- a/apps/drwho/Hash_Table.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// HT_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _HASH_TABLE_H
-#define _HASH_TABLE_H
-
-#include "Search_Struct.h"
-
-class Hash_Table : public Search_Struct
-{
- // = TITLE
- // Provides a hash function lookup abstraction for friend records.
-public:
- Hash_Table (void);
- virtual ~Hash_Table (void);
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN) = 0;
- virtual Protocol_Record *get_next_entry (void);
- virtual Protocol_Record *get_each_entry (void);
-
-protected:
- enum
- {
- HASH_TABLE_SIZE = 500
- };
-
- Protocol_Record **hash_table;
- Protocol_Record *current_ptr;
- int current_index;
- int hash_table_size;
-};
-#endif /* _HASH_TABLE_H */
diff --git a/apps/drwho/Makefile b/apps/drwho/Makefile
deleted file mode 100644
index e1f29761f24..00000000000
--- a/apps/drwho/Makefile
+++ /dev/null
@@ -1,750 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for drwho
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = drwho-client drwho-server
-
-SHARED-SRC = Protocol_Manager \
- Drwho_Node \
- Rwho_DB_Manager \
- Multicast_Manager \
- Protocol_Record \
- Options \
- File_Manager \
- Hash_Table \
- Binary_Search \
- Search_Struct \
- Single_Lookup \
- SML_Server \
- SM_Server \
- PMS_Usr \
- SL_Server \
- PMS_Flo \
- PM_Server \
- HT_Server \
- BS_Server \
- PMS_All \
- PMS_Ruser \
- SMR_Server \
- CM_Client \
- SM_Client \
- SMR_Client \
- PM_Client \
- HT_Client \
- BS_Client \
- PMC_All \
- PMC_Flo \
- PMC_Usr \
- SL_Client \
- PMC_Ruser \
- SMR_Client \
- SML_Client \
- CM_Server
-
-SHARED-OBJ = $(addsuffix .o,$(SHARED-SRC))
-
-CLIENT-SRC = client
-
-CLIENT-OBJ = $(addsuffix .o,$(CLIENT-SRC))
-
-SERVER-SRC = server
-
-SERVER-OBJ = $(addsuffix .o,$(SERVER-SRC))
-
-LSRC = client.cpp server.cpp \
- $(addsuffix .cpp,$(SHARED-SRC)) \
- $(addsuffix .cpp,$(CLIENT-SRC)) \
- $(addsuffix .cpp,$(SERVER-SRC))
-
-BUILD = $(BIN)
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-VBIN = $(BIN:%=%$(VAR))
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-drwho-client: $(addprefix $(VDIR),$(CLIENT-OBJ)) $(addprefix $(VDIR),$(SHARED-OBJ))
- $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS)
-
-drwho-server: $(addprefix $(VDIR),$(SERVER-OBJ)) $(addprefix $(VDIR),$(SHARED-OBJ))
- $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS)
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/client.o .obj/client.so .shobj/client.o .shobj/client.so: client.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- SML_Client.h SM_Client.h PM_Client.h Protocol_Manager.h \
- Search_Struct.h Protocol_Record.h Drwho_Node.h CM_Client.h \
- Select_Manager.h SML_Server.h SM_Server.h PM_Server.h CM_Server.h \
- Comm_Manager.h SMR_Client.h
-.obj/server.o .obj/server.so .shobj/server.o .shobj/server.so: server.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- SMR_Server.h SM_Server.h PM_Server.h Protocol_Manager.h \
- Search_Struct.h Protocol_Record.h Drwho_Node.h CM_Server.h \
- Comm_Manager.h Select_Manager.h
-.obj/Protocol_Manager.o .obj/Protocol_Manager.so .shobj/Protocol_Manager.o .shobj/Protocol_Manager.so: Protocol_Manager.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Protocol_Manager.h Search_Struct.h Protocol_Record.h Drwho_Node.h
-.obj/Drwho_Node.o .obj/Drwho_Node.so .shobj/Drwho_Node.o .shobj/Drwho_Node.so: Drwho_Node.cpp Drwho_Node.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i
-.obj/Rwho_DB_Manager.o .obj/Rwho_DB_Manager.so .shobj/Rwho_DB_Manager.o .shobj/Rwho_DB_Manager.so: Rwho_DB_Manager.cpp global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Options.h Rwho_DB_Manager.h \
- $(ACE_ROOT)/ace/Dirent.h \
- $(ACE_ROOT)/ace/Dirent.i \
- Protocol_Record.h Drwho_Node.h
-.obj/Multicast_Manager.o .obj/Multicast_Manager.so .shobj/Multicast_Manager.o .shobj/Multicast_Manager.so: Multicast_Manager.cpp Multicast_Manager.h \
- global.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i
-.obj/Protocol_Record.o .obj/Protocol_Record.so .shobj/Protocol_Record.o .shobj/Protocol_Record.so: Protocol_Record.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Protocol_Record.h Drwho_Node.h
-.obj/Options.o .obj/Options.so .shobj/Options.o .shobj/Options.so: Options.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Multicast_Manager.h \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/Get_Opt.i
-.obj/File_Manager.o .obj/File_Manager.so .shobj/File_Manager.o .shobj/File_Manager.so: File_Manager.cpp File_Manager.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i
-.obj/Hash_Table.o .obj/Hash_Table.so .shobj/Hash_Table.o .shobj/Hash_Table.so: Hash_Table.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Hash_Table.h Search_Struct.h Protocol_Record.h Drwho_Node.h
-.obj/Binary_Search.o .obj/Binary_Search.so .shobj/Binary_Search.o .shobj/Binary_Search.so: Binary_Search.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Binary_Search.h
-.obj/Search_Struct.o .obj/Search_Struct.so .shobj/Search_Struct.o .shobj/Search_Struct.so: Search_Struct.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Search_Struct.h Protocol_Record.h Drwho_Node.h
-.obj/Single_Lookup.o .obj/Single_Lookup.so .shobj/Single_Lookup.o .shobj/Single_Lookup.so: Single_Lookup.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Single_Lookup.h Search_Struct.h Protocol_Record.h Drwho_Node.h
-.obj/PM_Client.o .obj/PM_Client.so .shobj/PM_Client.o .shobj/PM_Client.so: PM_Client.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- PM_Server.h Protocol_Manager.h Search_Struct.h Protocol_Record.h \
- Drwho_Node.h PM_Client.h
-.obj/CM_Client.o .obj/CM_Client.so .shobj/CM_Client.o .shobj/CM_Client.so: CM_Client.cpp global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Options.h Multicast_Manager.h CM_Client.h
-.obj/HT_Client.o .obj/HT_Client.so .shobj/HT_Client.o .shobj/HT_Client.so: HT_Client.cpp HT_Client.h Hash_Table.h Search_Struct.h \
- Protocol_Record.h Drwho_Node.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i
-.obj/BS_Client.o .obj/BS_Client.so .shobj/BS_Client.o .shobj/BS_Client.so: BS_Client.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- File_Manager.h BS_Client.h Binary_Search.h
-.obj/PMC_All.o .obj/PMC_All.so .shobj/PMC_All.o .shobj/PMC_All.so: PMC_All.cpp global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Options.h HT_Client.h Hash_Table.h Search_Struct.h Protocol_Record.h \
- Drwho_Node.h PMC_All.h PM_Client.h Protocol_Manager.h
-.obj/PMC_Flo.o .obj/PMC_Flo.so .shobj/PMC_Flo.o .shobj/PMC_Flo.so: PMC_Flo.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- BS_Client.h Binary_Search.h PMC_Flo.h PM_Client.h Protocol_Manager.h \
- Search_Struct.h Protocol_Record.h Drwho_Node.h
-.obj/PMC_Usr.o .obj/PMC_Usr.so .shobj/PMC_Usr.o .shobj/PMC_Usr.so: PMC_Usr.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- SL_Client.h Single_Lookup.h Search_Struct.h Protocol_Record.h \
- Drwho_Node.h PMC_Usr.h PM_Client.h Protocol_Manager.h
-.obj/SL_Client.o .obj/SL_Client.so .shobj/SL_Client.o .shobj/SL_Client.so: SL_Client.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- SL_Client.h Single_Lookup.h Search_Struct.h Protocol_Record.h \
- Drwho_Node.h
-.obj/PMC_Ruser.o .obj/PMC_Ruser.so .shobj/PMC_Ruser.o .shobj/PMC_Ruser.so: PMC_Ruser.cpp global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Options.h HT_Client.h Hash_Table.h Search_Struct.h Protocol_Record.h \
- Drwho_Node.h PMC_Ruser.h PM_Client.h Protocol_Manager.h
-.obj/SM_Client.o .obj/SM_Client.so .shobj/SM_Client.o .shobj/SM_Client.so: SM_Client.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- PMC_All.h PM_Client.h Protocol_Manager.h Search_Struct.h \
- Protocol_Record.h Drwho_Node.h PMC_Flo.h PMC_Usr.h PMC_Ruser.h \
- SM_Client.h CM_Client.h Select_Manager.h
-.obj/SMR_Client.o .obj/SMR_Client.so .shobj/SMR_Client.o .shobj/SMR_Client.so: SMR_Client.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- PMC_All.h PM_Client.h Protocol_Manager.h Search_Struct.h \
- Protocol_Record.h Drwho_Node.h PMC_Flo.h PMC_Usr.h PMC_Ruser.h \
- SMR_Client.h SM_Client.h CM_Client.h Select_Manager.h
-.obj/SML_Client.o .obj/SML_Client.so .shobj/SML_Client.o .shobj/SML_Client.so: SML_Client.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- SML_Client.h SM_Client.h PM_Client.h Protocol_Manager.h \
- Search_Struct.h Protocol_Record.h Drwho_Node.h CM_Client.h \
- Select_Manager.h SML_Server.h SM_Server.h PM_Server.h CM_Server.h \
- Comm_Manager.h
-.obj/PM_Server.o .obj/PM_Server.so .shobj/PM_Server.o .shobj/PM_Server.so: PM_Server.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Rwho_DB_Manager.h \
- $(ACE_ROOT)/ace/Dirent.h \
- $(ACE_ROOT)/ace/Dirent.i \
- Protocol_Record.h Drwho_Node.h PM_Server.h Protocol_Manager.h \
- Search_Struct.h
-.obj/CM_Server.o .obj/CM_Server.so .shobj/CM_Server.o .shobj/CM_Server.so: CM_Server.cpp global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Options.h CM_Server.h Comm_Manager.h
-.obj/HT_Server.o .obj/HT_Server.so .shobj/HT_Server.o .shobj/HT_Server.so: HT_Server.cpp HT_Server.h Hash_Table.h Search_Struct.h \
- Protocol_Record.h Drwho_Node.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i
-.obj/BS_Server.o .obj/BS_Server.so .shobj/BS_Server.o .shobj/BS_Server.so: BS_Server.cpp BS_Server.h Binary_Search.h
-.obj/PMS_All.o .obj/PMS_All.so .shobj/PMS_All.o .shobj/PMS_All.so: PMS_All.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- HT_Server.h Hash_Table.h Search_Struct.h Protocol_Record.h \
- Drwho_Node.h PMS_All.h PM_Server.h Protocol_Manager.h
-.obj/PMS_Flo.o .obj/PMS_Flo.so .shobj/PMS_Flo.o .shobj/PMS_Flo.so: PMS_Flo.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- BS_Server.h Binary_Search.h PMS_Flo.h PM_Server.h Protocol_Manager.h \
- Search_Struct.h Protocol_Record.h Drwho_Node.h
-.obj/PMS_Usr.o .obj/PMS_Usr.so .shobj/PMS_Usr.o .shobj/PMS_Usr.so: PMS_Usr.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- SL_Server.h Single_Lookup.h Search_Struct.h Protocol_Record.h \
- Drwho_Node.h PMS_Usr.h PM_Server.h Protocol_Manager.h
-.obj/SL_Server.o .obj/SL_Server.so .shobj/SL_Server.o .shobj/SL_Server.so: SL_Server.cpp global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- SL_Server.h Single_Lookup.h Options.h Search_Struct.h \
- Protocol_Record.h Drwho_Node.h
-.obj/PMS_Ruser.o .obj/PMS_Ruser.so .shobj/PMS_Ruser.o .shobj/PMS_Ruser.so: PMS_Ruser.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- HT_Server.h Hash_Table.h Search_Struct.h Protocol_Record.h \
- Drwho_Node.h PMS_Ruser.h PM_Server.h Protocol_Manager.h
-.obj/SM_Server.o .obj/SM_Server.so .shobj/SM_Server.o .shobj/SM_Server.so: SM_Server.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- PMS_All.h PM_Server.h Protocol_Manager.h Search_Struct.h \
- Protocol_Record.h Drwho_Node.h PMS_Flo.h PMS_Usr.h PMS_Ruser.h \
- SM_Server.h CM_Server.h Comm_Manager.h Select_Manager.h
-.obj/SMR_Server.o .obj/SMR_Server.so .shobj/SMR_Server.o .shobj/SMR_Server.so: SMR_Server.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- SMR_Server.h SM_Server.h PM_Server.h Protocol_Manager.h \
- Search_Struct.h Protocol_Record.h Drwho_Node.h CM_Server.h \
- Comm_Manager.h Select_Manager.h
-.obj/SMR_Client.o .obj/SMR_Client.so .shobj/SMR_Client.o .shobj/SMR_Client.so: SMR_Client.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- PMC_All.h PM_Client.h Protocol_Manager.h Search_Struct.h \
- Protocol_Record.h Drwho_Node.h PMC_Flo.h PMC_Usr.h PMC_Ruser.h \
- SMR_Client.h SM_Client.h CM_Client.h Select_Manager.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/drwho/Multicast_Manager.cpp b/apps/drwho/Multicast_Manager.cpp
deleted file mode 100644
index c3385b633d3..00000000000
--- a/apps/drwho/Multicast_Manager.cpp
+++ /dev/null
@@ -1,177 +0,0 @@
-// $Id$
-
-#include "Multicast_Manager.h"
-#include "ace/Mem_Map.h"
-
-// Initialize all the static member vars.
-int Multicast_Manager::received_host_count = 0;
-Host_Elem *Multicast_Manager::drwho_list = 0;
-Host_Elem *Multicast_Manager::current_ptr = 0;
-
-// Names of hosts to query for friend info.
-char *Multicast_Manager::host_names[] =
-{
- "tango.cs.wustl.edu",
- 0 // The NULL entry...
-};
-
-void
-Multicast_Manager::insert_default_hosts (void)
-{
- // Enter the static list of hosts into the dynamic table!
-
- for (char **np = host_names;
- *np != 0;
- np++)
- Multicast_Manager::add_host (*np);
-}
-
-// Inserts all the names in FILENAME into the list of hosts to
-// contact.
-
-int
-Multicast_Manager::insert_hosts_from_file (const char *filename)
-{
- ACE_Mem_Map mmap (filename);
- char *host_ptr = (char *) mmap.addr ();
-
- if (host_ptr == 0)
- return -1;
- else
- {
- for (char *end_ptr = host_ptr + mmap.size ();
- host_ptr < end_ptr;
- )
- {
- Multicast_Manager::add_host (host_ptr);
-
- while (*host_ptr != '\n')
- host_ptr++;
-
- *host_ptr++ = '\0';
- }
-
- return 0;
- }
-}
-
-// Returns the IP host address for the next unexamined host in the
-// list. If no more unexamined hosts remain a 0 is returned, else a
-// 1.
-
-int
-Multicast_Manager::get_next_host_addr (in_addr &host_addr)
-{
- for (Multicast_Manager::current_ptr = Multicast_Manager::current_ptr == 0 ? Multicast_Manager::drwho_list : Multicast_Manager::current_ptr->next;
-
- Multicast_Manager::current_ptr != 0;
- Multicast_Manager::current_ptr = Multicast_Manager::current_ptr->next)
- {
- const char *host_name = Multicast_Manager::current_ptr->host_name;
- hostent *hp = Multicast_Manager::get_host_entry (host_name);
-
- if (hp == 0)
- {
- ACE_ERROR ((LM_ERROR,
- "%s: host unknown.\n",
- host_name));
- continue;
- }
-
- Multicast_Manager::received_host_count++;
- ACE_OS::memcpy (&host_addr,
- hp->h_addr,
- sizeof host_addr);
- ACE_OS::memcpy (&Multicast_Manager::current_ptr->host_addr,
- hp->h_addr,
- sizeof host_addr);
- return 1;
- }
-
- return 0;
-}
-
-// This function attempts to get the internet address for either a
-// hostname or hostnumber. The function makes the simplifying
-// assumption that hostnames begin with an alphabetic character!
-
-hostent *
-Multicast_Manager::get_host_entry (const char *host)
-{
- static hostent host_entry;
- hostent *hp;
-
- if (isdigit (*host)) // IP address.
- {
- u_long ia = ACE_OS::inet_addr (host);
-
- if (ia == (u_long) -1)
- hp = 0;
- else
- hp = ACE_OS::gethostbyaddr ((char *) &ia,
- sizeof ia,
- AF_INET);
- }
- else
- // Host name.
- hp = ACE_OS::gethostbyname (host);
-
-
- return hp == 0 ? 0 : (hostent *) memcpy (&host_entry, hp, sizeof *hp);
-}
-
-// Adds an additional new host to the list of host machines.
-
-void
-Multicast_Manager::add_host (const char *host_name)
-{
- ACE_NEW (Multicast_Manager::drwho_list,
- Host_Elem (host_name,
- Multicast_Manager::drwho_list));
-}
-
-void
-Multicast_Manager::checkoff_host (in_addr host_addr)
-{
- for (Host_Elem *tmp = Multicast_Manager::drwho_list;
- tmp != 0;
- tmp = tmp->next)
- if (ACE_OS::memcmp (&tmp->host_addr.s_addr,
- &host_addr.s_addr,
- sizeof host_addr.s_addr) == 0)
- {
- tmp->checked_off = 1;
- Multicast_Manager::received_host_count--;
- return;
- }
-}
-
-int
-Multicast_Manager::get_next_non_responding_host (const char *&host_name)
-{
- for (Multicast_Manager::current_ptr = Multicast_Manager::current_ptr == 0 ? Multicast_Manager::drwho_list : Multicast_Manager::current_ptr->next;
- Multicast_Manager::current_ptr != 0;
- Multicast_Manager::current_ptr = Multicast_Manager::current_ptr->next)
- if (Multicast_Manager::current_ptr->checked_off == 0)
- {
- host_name = Multicast_Manager::current_ptr->host_name;
- return 1;
- }
-
- return 0;
-}
-
-Host_Elem::Host_Elem (const char *h_name,
- Host_Elem *n)
- : host_name (h_name),
- checked_off (0),
- next (n)
-{
-}
-
-int
-Multicast_Manager::outstanding_hosts_remain (void)
-{
- return Multicast_Manager::received_host_count > 0;
-}
-
diff --git a/apps/drwho/Multicast_Manager.h b/apps/drwho/Multicast_Manager.h
deleted file mode 100644
index 5b5f42eddbc..00000000000
--- a/apps/drwho/Multicast_Manager.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Multicast_Manager.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _MULTICAST_MANAGER_H
-#define _MULTICAST_MANAGER_H
-
-#include "global.h"
-
-class Host_Elem
-{
-public:
- const char *host_name;
- in_addr host_addr;
- int checked_off;
- Host_Elem *next;
-
- Host_Elem (const char *h_name, Host_Elem *n);
-};
-
-class Multicast_Manager
-{
- // = TITLE
- // This file handles all the operations upon host machines names
- // and addresses.
-public:
- static void add_host (const char *host_name);
- static void checkoff_host (in_addr host_addr);
- static int get_next_host_addr (in_addr &host_addr);
- static int outstanding_hosts_remain (void);
- static int get_next_non_responding_host (const char *&host_name);
- static int insert_hosts_from_file (const char *filename);
- static void insert_default_hosts (void);
-
-private:
- static hostent *get_host_entry (const char *host);
-
- static int received_host_count;
- static char *host_names[];
- static Host_Elem *drwho_list;
- static Host_Elem *current_ptr;
-};
-
-#endif /* _MULTICAST_MANAGER_H */
diff --git a/apps/drwho/Options.cpp b/apps/drwho/Options.cpp
deleted file mode 100644
index 9a12bb700ba..00000000000
--- a/apps/drwho/Options.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "Multicast_Manager.h"
-#include "ace/Get_Opt.h"
-
-// Initialize all the static variables.
-
-// Contains bit-mask for options.
-u_int Options::option_word = 0;
-
-// Which protocol are we using?
-Options::Protocol_Types Options::protocol_type = Options::PROTO_FLO;
-
-// User name for quick lookups.
-char *Options::user_name = 0;
-
-// Port number for client/server.
-short Options::port_number = PORT_NUMBER;
-
-// Maximum time the client waits for servers to timeout.
-int Options::max_server_timeout = 5;
-
-// Name of the program.
-char *Options::program_name;
-
-// Default name of file that stores friend info.
-char *Options::friend_file = FRIEND_FILE;
-
-void
-Options::print_usage_and_die (int long_msg)
-{
- ACE_DEBUG ((LM_DEBUG,
- "usage: %s %s",
- program_name,
- long_msg
- ? "\n"
- "-?\tprints a short usage message\n"
- "-A\tappend the following hostname to the list of predefined hostnames.\n"
- "-a\treturn information on *all* users remotely logged in (uses yp passwd).\n"
- "-b\trun the server in the background (i.e., as a daemon).\n"
- "-d\tturn on debugging.\n"
- "-F\tuse the following file contents to initialize the host list.\n"
- "-f\tuse the following file contents to initialize the friends database.\n"
- "-H\tuse the following hostname as part of the new list of hostnames.\n"
- "\t(this option overwrites the existing default names).\n"
- "-h\tprint a long usage message.\n"
- "-L\tprint the login name rather than the real name (which is the default).\n"
- "-l\tprint information in long format (works for all protocols).\n"
- "-p\tset the port number (server must correspond).\n"
- "-r\tdo the remote lookups (i.e., local operations are the default).\n"
- "-R\tprint info using the rusers format.\n"
- "-s\tsort the output by login name.\n"
- "-S\tsort the output by real name.\n"
- "-t\tset the amount of time we wait for servers to timeout.\n"
- "-w\treturn information on just one user.\n"
- : "[-?haAbdfFHhLlpRrtw]\n"));
- ACE_OS::exit (1);
-}
-
-void
-Options::set_opt (Option_Types opt)
-{
- Options::option_word |= opt;
-}
-
-int
-Options::get_opt (Option_Types opt)
-{
- return (Options::option_word & opt) != 0;
-}
-
-void
-Options::set_options (int argc, char *argv[])
-{
- int c;
- int add_default_hosts = 1;
-
- Options::program_name = argv[0];
- ACE_Get_Opt getopt (argc, argv, "?aA:bdF:f:hH:Llp:rRsSt:w:");
-
- while ((c = getopt ()) != -1)
- {
- switch (c)
- {
- case '?':
- Options::print_usage_and_die (0);
- /* NOTREACHED */
- case 'A':
- Multicast_Manager::add_host (getopt.optarg);
- break;
- case 'a':
- Options::protocol_type = PROTO_ALL;
- break;
- case 'b':
- Options::set_opt (Options::BE_A_DAEMON);
- break;
- case 'd':
- Options::set_opt (Options::DEBUG);
- break;
- case 'f':
- Options::friend_file = getopt.optarg;
- break;
- case 'F':
- if (Multicast_Manager::insert_hosts_from_file (getopt.optarg) < 0)
- ACE_DEBUG ((LM_DEBUG,
- "%p%a\n",
- Options::program_name,
- 1));
- add_default_hosts = 0;
- break;
- case 'H':
- Multicast_Manager::add_host (getopt.optarg);
- add_default_hosts = 0;
- break;
- case 'h':
- Options::print_usage_and_die (1);
- /* NOTREACHED */
- case 'L':
- Options::set_opt (Options::PRINT_LOGIN_NAME);
- break;
- case 'l':
- Options::set_opt (Options::USE_VERBOSE_FORMAT);
- break;
- case 'p':
- Options::port_number = atoi (getopt.optarg);
- break;
- case 'R':
- Options::protocol_type = PROTO_RUSER;
- break;
- case 'r':
- Options::set_opt (Options::REMOTE_USAGE);
- break;
- case 's':
- Options::set_opt (Options::SORT_BY_LOGIN_NAME);
- break;
- case 'S':
- Options::set_opt (Options::SORT_BY_REAL_NAME);
- break;
- case 't':
- Options::max_server_timeout = atoi (getopt.optarg);
- break;
- case 'w':
- Options::user_name = getopt.optarg;
- Options::protocol_type = PROTO_USR;
- break;
- default:
- break;
- }
- }
-
- if (Options::get_opt (Options::REMOTE_USAGE) && add_default_hosts)
- Multicast_Manager::insert_default_hosts ();
-}
diff --git a/apps/drwho/Options.h b/apps/drwho/Options.h
deleted file mode 100644
index 13cf06777d2..00000000000
--- a/apps/drwho/Options.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Options.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _OPTIONS_H
-#define _OPTIONS_H
-
-#include "global.h"
-
-class Options
-{
- // = TITLE
- // This file is used to provide a consolidated Options handling facility.
-public:
- enum Option_Types
- {
- REMOTE_USAGE = 01,
- PRINT_LOGIN_NAME = 02,
- DEBUG = 04,
- STAND_ALONE_SERVER = 010,
- SORT_BY_LOGIN_NAME = 020,
- SORT_BY_REAL_NAME = 040,
- USE_VERBOSE_FORMAT = 0100,
- BE_A_DAEMON = 0200
- };
-
- // Different types of messages.
- enum Protocol_Types
- {
- PROTO_USR = 1, // Only return info on one user.
- PROTO_ALL = 2, // Return info on all users logged in around the system.
- PROTO_FLO = 3, // Return info on friends logged in.
- PROTO_RUSER = 4, // Return info in ruser format!
- PROTO_RWHO = 5, // Return info in rwho format.
- PROTO_WHO = 6, // Return info in who format.
- PROTO_RUPTIME = 7 // Return info in ruptime format.
- };
-
- static void set_options (int argc, char *argv[]);
- static void set_opt (Option_Types opt);
- static int get_opt (Option_Types opt);
-
- static short port_number;
- static Protocol_Types protocol_type;
- static int max_server_timeout;
- static char *program_name;
- static char *friend_file;
- static char *user_name;
-
- static void print_usage_and_die (int long_msg);
- static u_int option_word;
-};
-
-#endif /* _OPTIONS_H */
diff --git a/apps/drwho/PMC_All.cpp b/apps/drwho/PMC_All.cpp
deleted file mode 100644
index 5e28711950b..00000000000
--- a/apps/drwho/PMC_All.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-// $Id$
-
-#include "global.h"
-#include "Options.h"
-#include "HT_Client.h"
-#include "PMC_All.h"
-
-// This function is pretty much a no-op that just sets up the
-// appropriate lookup function to use.
-
-int
-PMC_All::encode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMC_All::encode\n"));
-
- ACE_NEW_RETURN (this->ss,
- HT_Client,
- -1);
-
- SET_PACKET_TYPE (packet, Options::PROTO_ALL);
-
- char *buf_ptr = SKIP_PACKET_TYPE (packet);
-
- packet_length = buf_ptr - packet;
- return 1;
-}
-
-// This method is responsible for transforming the msg from the server
-// back into a form usable by the client. Note that it reads the
-// REAL_NAME from the packet (since the server placed it there)...
-
-int
-PMC_All::decode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "in PMC_All::decode, packet_length = %d\n",
- packet_length));
-
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
- char *cp = packet;
- int remote_users = 0;
-
- sscanf (cp,
- "Users %d",
- &remote_users);
-
- this->increment_total_users (remote_users);
-
- for (cp = (char *) ACE::strend (cp);
- *cp != '\n';
- cp++)
- {
- // Skip over the LOGIN_NAME.
-
- char *login_name = cp;
- char *real_name = cp = (char *) ACE::strend (cp);
-
- for (cp = (char *) ACE::strend (cp);
- *(cp = this->handle_protocol_entries (cp, login_name, real_name)) != '\t';
- )
- continue;
- }
-
- return 1;
-}
-
-Protocol_Record *
-PMC_All::insert_protocol_info (Protocol_Record &protocol_record)
-{
- Protocol_Record *prp = PM_Client::insert_protocol_info (protocol_record);
- int length = ACE_OS::strlen (prp->set_real (ACE::strnew (protocol_record.get_real ())));
-
- if (length > this->max_key_length)
- this->max_key_length = length;
-
- return prp;
-}
-
-void
-PMC_All::process (void)
-{
- ACE_DEBUG ((LM_DEBUG,
- "remote users logged on\n"));
- PM_Client::process ();
-}
-
-PMC_All::PMC_All (void)
-{
-}
diff --git a/apps/drwho/PMC_All.h b/apps/drwho/PMC_All.h
deleted file mode 100644
index 308388adf4f..00000000000
--- a/apps/drwho/PMC_All.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMC_All.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PMC_ALL_H
-#define _PMC_ALL_H
-
-#include "PM_Client.h"
-
-class PMC_All : public PM_Client
-{
- // = TITLE
- // Provides the client's lookup table abstraction for `all' users...
-
-protected:
- virtual Protocol_Record *insert_protocol_info (Protocol_Record &protocol_record);
- virtual int encode (char *packet, int &total_bytes);
- virtual int decode (char *packet, int &total_bytes);
-
-public:
- PMC_All (void);
- virtual void process (void);
-};
-
-#endif /* _PMC_ALL_H */
diff --git a/apps/drwho/PMC_Flo.cpp b/apps/drwho/PMC_Flo.cpp
deleted file mode 100644
index a0e5a216423..00000000000
--- a/apps/drwho/PMC_Flo.cpp
+++ /dev/null
@@ -1,120 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "BS_Client.h"
-#include "PMC_Flo.h"
-
-// This function "encodes" a list of friends by putting the userid's
-// in a contiguous block. This block can then be transmitted over to
-// the network to servers on other subnets. Several things are added
-// to make decoding easier on the other end:
-//
-// * A count of the number of friends is prepended (assumption: there
-// are no more than 9999999 friends... ;-))
-// * The login userids are separated by a single space. */
-
-int
-PMC_Flo::encode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMC_Flo::encode"));
-
- ACE_NEW_RETURN (this->ss,
- BS_Client,
- -1);
-
- SET_PACKET_TYPE (packet, Options::PROTO_FLO);
- char *buf_ptr = SKIP_PACKET_TYPE (packet);
-
- sprintf (buf_ptr,
- "%d",
- this->friend_count ());
-
- buf_ptr += MAXUSERIDNAMELEN;
-
- // Iterate through all the friends, copying them into the packet
- // buffer.
-
- for (Protocol_Record *prp; (prp = this->get_next_friend ()) != 0; )
- buf_ptr = ACE::strecpy (buf_ptr,
- prp->get_login ());
-
- packet_length = buf_ptr - packet;
-
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
-
- return 1;
-}
-
-// This method is responsible for transforming the msg from the server
-// back into a form usable by the client.
-
-int
-PMC_Flo::decode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "in PMC_Flo::decode, packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
-
- char *cp = packet;
- int remote_users = 0;
-
- sscanf (cp,
- "Users %d",
- &remote_users);
-
- this->increment_total_users (remote_users);
-
- for (cp = (char *) ACE::strend (cp);
- *cp != '\n';
- cp++)
- {
- char *login_name = cp;
-
- for (cp = (char *) ACE::strend (cp);
- *(cp = this->handle_protocol_entries (cp, login_name)) != '\t';
-)
- continue;
- }
-
- return 1;
-}
-
-Protocol_Record *
-PMC_Flo::insert_protocol_info (Protocol_Record &protocol_record)
-{
- Protocol_Record *prp = PM_Client::insert_protocol_info (protocol_record);
- int length = ACE_OS::strlen (prp->get_real ());
-
- if (length > this->max_key_length)
- this->max_key_length = length;
-
- return prp;
-}
-
-void
-PMC_Flo::process (void)
-{
- ACE_DEBUG ((LM_DEBUG,
- "remote friends logged on\n"));
- PM_Client::process ();
-}
-
-PMC_Flo::PMC_Flo (void)
-{
-}
diff --git a/apps/drwho/PMC_Flo.h b/apps/drwho/PMC_Flo.h
deleted file mode 100644
index 305a8d8803c..00000000000
--- a/apps/drwho/PMC_Flo.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMC_Flo.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PMC_FLO_H
-#define _PMC_FLO_H
-
-#include "PM_Client.h"
-
-class PMC_Flo : public PM_Client
-{
- // = TITLE
- // Provides the client's lookup table abstraction for `flo' users...
-
-public:
- PMC_Flo (void);
- virtual void process (void);
-
-protected:
- virtual Protocol_Record *insert_protocol_info (Protocol_Record &protocol_record);
- virtual int encode (char *packet, int &total_bytes);
- virtual int decode (char *packet, int &total_bytes);
-};
-
-#endif /* _PMC_FLO_H */
diff --git a/apps/drwho/PMC_Ruser.cpp b/apps/drwho/PMC_Ruser.cpp
deleted file mode 100644
index 0cd26d102e4..00000000000
--- a/apps/drwho/PMC_Ruser.cpp
+++ /dev/null
@@ -1,173 +0,0 @@
-// $Id$
-
-#include "global.h"
-#include "Options.h"
-#include "HT_Client.h"
-#include "PMC_Ruser.h"
-
-// This function is pretty much a no-op that just sets up the
-// appropriate lookup function to use.
-
-int
-PMC_Ruser::encode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMC_Ruser::encode\n"));
-
- ACE_NEW_RETURN (this->ss,
- HT_Client,
- -1);
-
- SET_PACKET_TYPE (packet, Options::PROTO_RUSER);
-
- char *buf_ptr = SKIP_PACKET_TYPE (packet);
-
- *buf_ptr++ = char (Options::get_opt (Options::PRINT_LOGIN_NAME));
-
- packet_length = buf_ptr - packet;
- return 1;
-}
-
-// This method is responsible for transforming the msg from the server
-// back into a form usable by the client. Note that it reads the
-// REAL_NAME from the packet (since the server placed it there)...
-
-int
-PMC_Ruser::decode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "in PMC_Ruser::decode, packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
- char *cp = packet;
- int remote_users = 0;
-
- sscanf (cp,
- "Users %d",
- &remote_users);
-
- this->increment_total_users (remote_users);
-
- for (cp = (char *) ACE::strend (cp);
- *cp != '\n';
- cp++)
- {
- char *host_name = cp;
-
- for (cp = (char *) ACE::strend (cp);
- *(cp = this->handle_protocol_entries (cp, host_name)) != '\t'; )
- continue;
- }
-
- return 1;
-}
-
-Protocol_Record *
-PMC_Ruser::insert_protocol_info (Protocol_Record &protocol_record)
-{
- Protocol_Record *prp = this->ss->insert (protocol_record.get_host (),
- MAXHOSTNAMELEN);
- Drwho_Node *current_node = protocol_record.get_drwho_list ();
- Drwho_Node *np = this->get_drwho_node (ACE::strnnew (current_node->get_login_name (),
- MAXUSERIDNAMELEN),
- prp->drwho_list_);
- int length = ACE_OS::strlen (prp->get_host ());
-
- np->set_real_name (ACE::strnew (current_node->get_real_name ()));
-
- if (np->get_active_count () < current_node->get_active_count ())
- np->set_active_count (current_node->get_active_count ());
- if (np->get_inactive_count () < current_node->get_inactive_count())
- np->set_inactive_count (current_node->get_inactive_count ());
-
- if (length > this->max_key_length)
- this->max_key_length = length;
-
- return prp;
-}
-
-char *
-PMC_Ruser::handle_protocol_entries (const char *cp,
- const char *host_name,
- const char *)
-{
- static Protocol_Record protocol_record (1);
- Drwho_Node *current_node = protocol_record.get_drwho_list ();
-
- protocol_record.set_host (host_name);
- current_node->set_inactive_count (atoi (cp));
- current_node->set_active_count (atoi (cp = ACE_OS::strchr (cp, ' ') + 1));
- current_node->set_login_name (cp = ACE_OS::strchr (cp, ' ') + 1);
- current_node->set_real_name (cp = ACE_OS::strchr (cp, '\0') + 1);
-
- this->insert_protocol_info (protocol_record);
-
- return (char *) ACE::strend (cp);
-}
-
-void
-PMC_Ruser::process (void)
-{
- const char *(Drwho_Node::*get_name)(void);
-
- if (Options::get_opt (Options::PRINT_LOGIN_NAME))
- get_name = &Drwho_Node::get_login_name;
- else
- get_name = &Drwho_Node::get_real_name;
-
- for (Protocol_Record *prp;
- (prp = this->Protocol_Manager::get_each_friend ()) != 0;
- )
- {
- ACE_DEBUG ((LM_DEBUG,
- "%-*s ",
- this->max_key_length,
- prp->get_host ()));
-
- for (Drwho_Node *np = prp->get_drwho_list (); ;)
- {
- ACE_DEBUG ((LM_DEBUG,
- "%s",
- (np->*get_name) ()));
-
- if (np->get_inactive_count () != 0)
- {
- if (np->get_active_count () != 0)
- ACE_DEBUG ((LM_DEBUG,
- "*(%d)",
- np->get_active_count ()));
- }
- else if (np->get_active_count () > 1)
- ACE_DEBUG ((LM_DEBUG,
- "*(%d)",
- np->get_active_count ()));
- else if (np->get_active_count () == 1)
- ACE_DEBUG ((LM_DEBUG,
- "*"));
-
- np = np->next_;
- if (np == 0)
- break;
- else if (Options::get_opt (Options::PRINT_LOGIN_NAME))
- ACE_DEBUG ((LM_DEBUG,
- " "));
- else
- ACE_DEBUG ((LM_DEBUG,
- ", "));
- }
-
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
-}
-
-PMC_Ruser::PMC_Ruser (void)
-{
-}
-
diff --git a/apps/drwho/PMC_Ruser.h b/apps/drwho/PMC_Ruser.h
deleted file mode 100644
index fe3d3c23363..00000000000
--- a/apps/drwho/PMC_Ruser.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMC_Ruser.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PMC_RUSER_H
-#define _PMC_RUSER_H
-
-#include "PM_Client.h"
-
-class PMC_Ruser : public PM_Client
-{
- // = TITLE
- // Provides the client's lookup table abstraction for `ruser' users...
-
-public:
- PMC_Ruser (void);
- virtual void process (void);
-
-protected:
- char *handle_protocol_entries (const char *cp,
- const char *host_name,
- const char * = 0);
- Protocol_Record *insert_protocol_info (Protocol_Record &protocol_record);
- virtual int encode (char *packet, int &total_bytes);
- virtual int decode (char *packet, int &total_bytes);
-};
-
-#endif /* _PMC_RUSER_H */
diff --git a/apps/drwho/PMC_Usr.cpp b/apps/drwho/PMC_Usr.cpp
deleted file mode 100644
index ec5738044c3..00000000000
--- a/apps/drwho/PMC_Usr.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "SL_Client.h"
-#include "PMC_Usr.h"
-
-int
-PMC_Usr::encode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMC_Usr::encode"));
-
- ACE_NEW_RETURN (this->ss,
- SL_Client (this->usr_name),
- -1);
-
- SET_PACKET_TYPE (packet, Options::PROTO_USR);
-
- char *buf_ptr = SKIP_PACKET_TYPE (packet);
-
- buf_ptr = ACE::strecpy (buf_ptr,
- this->get_next_friend ()->get_login ());
-
- packet_length = buf_ptr - packet;
-
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
- return 1;
-}
-
-// This method is responsible for transforming the msg from the server
-// back into a form usable by the client.
-
-int
-PMC_Usr::decode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "in PMC_Usr::decode, packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
-
- char *cp = packet;
-
- if (*cp != '\n')
- {
- char *login_name = cp;
-
- for (cp = (char *) ACE::strend (cp);
- *(cp = this->handle_protocol_entries (cp, login_name)) != '\t';
- )
- continue;
- }
-
- return 1;
-}
-
-void
-PMC_Usr::process (void)
-{
- Protocol_Record *prp = this->get_each_friend ();
- Drwho_Node *np = prp->get_drwho_list ();
-
- if (np == 0)
- ACE_DEBUG ((LM_DEBUG,
- "<unknown>"));
- else
- {
- // First try to get a login session that is active...
-
- for (; np != 0; np = np->next_)
- if (np->active_count_ > 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "%s ",
- np->get_host_name ()));
-
- if (Options::get_opt (Options::USE_VERBOSE_FORMAT) == 0)
- return;
- }
-
- for (np = prp->get_drwho_list ();
- np != 0;
- np = np->next_)
- if (np->active_count_ == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "%s ",
- np->get_host_name ()));
-
- if (Options::get_opt (Options::USE_VERBOSE_FORMAT) == 0)
- return;
- }
- }
-}
-
-PMC_Usr::PMC_Usr (char *u_name)
- : usr_name (u_name)
-{
-}
diff --git a/apps/drwho/PMC_Usr.h b/apps/drwho/PMC_Usr.h
deleted file mode 100644
index f98c8325b83..00000000000
--- a/apps/drwho/PMC_Usr.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMC_Usr.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PMC_USR_H
-#define _PMC_USR_H
-
-#include "PM_Client.h"
-
-class PMC_Usr : public PM_Client
-{
- // = TITLE
- // Provides the client's lookup table abstraction for `Usr' users...
-public:
- PMC_Usr (char *usr_name);
- virtual void process (void);
-
-protected:
- virtual int encode (char *packet, int &total_bytes);
- virtual int decode (char *packet, int &total_bytes);
-
-private:
- char *usr_name;
-};
-
-#endif /* _PMC_USR_H */
diff --git a/apps/drwho/PMS_All.cpp b/apps/drwho/PMS_All.cpp
deleted file mode 100644
index b100bd93132..00000000000
--- a/apps/drwho/PMS_All.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "HT_Server.h"
-#include "PMS_All.h"
-
-// This function packs the located friends userids, plus the machines
-// they are logged into (along with the inactive and active counts on
-// each machine) into a buffer that is subsequently transmitted back
-// to the client across the network. Note that this function encodes
-// the REAL_NAME of the user in the packet.
-
-int
-PMS_All::encode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMS_All::encode"));
-
- Protocol_Record *prp;
- char *buf_ptr = packet;
-
- sprintf (buf_ptr,
- "Users %d",
- this->get_total_users ());
- buf_ptr += ACE_OS::strlen (buf_ptr) + 1;
-
- // We only send back info on friends that we actually see logged in.
-
- for (;
- (prp = this->get_next_friend ()) != 0;
- *buf_ptr++ = '\t')
- buf_ptr = this->handle_protocol_entries (ACE::strecpy (ACE::strecpy (buf_ptr,
- prp->get_login ()),
- prp->get_real ()),
- prp->get_drwho_list ());
-
- *buf_ptr++ = '\n';
- packet_length = buf_ptr - packet;
-
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
- return 1;
-}
-
-// This function takes a packet received from the client and calls the
-// appropriate Protocol_Manager routine to build the local table of
-// friends.
-
-int
-PMS_All::decode (char *, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMS_All::decode, packet_length = %d\n",
- packet_length));
-
- ACE_NEW_RETURN (this->ss,
- HT_Server,
- -1);
- return 1;
-}
-
-// We only want the user's real name, not the gecos junk after the
-// first leading ','. However, if the real-name is not in the
-// password file, just return the login name instead.
-
-Protocol_Record *
-PMS_All::insert_protocol_info (Protocol_Record &protocol_record)
-{
- Protocol_Record *prp = PM_Server::insert_protocol_info (protocol_record);
- passwd *pwent = getpwnam (prp->get_login ());
- char *cp = (char *) ACE_OS::strchr (prp->set_real
- (pwent == 0
- ? prp->get_login () :
- ACE::strnew (pwent->pw_gecos)),
- ',');
- if (cp != 0)
- *cp = '\0';
-
- return prp;
-}
-
-PMS_All::PMS_All (void)
-{
-}
diff --git a/apps/drwho/PMS_All.h b/apps/drwho/PMS_All.h
deleted file mode 100644
index 41459f57cbe..00000000000
--- a/apps/drwho/PMS_All.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMS_All.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PMS_ALL_H
-#define _PMS_ALL_H
-
-#include "PM_Server.h"
-
-class PMS_All : public PM_Server
-{
- // = TITLE
- // Provides the server's lookup table abstraction for `all' users...
-public:
- PMS_All (void);
-
-protected:
- virtual Protocol_Record *insert_protocol_info (Protocol_Record &protocol_record);
- virtual int encode (char *packet, int &total_bytes);
- virtual int decode (char *packet, int &total_bytes);
-};
-
-#endif /* _PMS_ALL_H */
diff --git a/apps/drwho/PMS_Flo.cpp b/apps/drwho/PMS_Flo.cpp
deleted file mode 100644
index e969ad4f4c6..00000000000
--- a/apps/drwho/PMS_Flo.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "BS_Server.h"
-#include "PMS_Flo.h"
-
-// This function packs the located friends userids, plus the machines
-// they are logged into (along with the inactive and active counts on
-// each machine) into a buffer that is subsequently transmitted back
-// to the client across the network.
-
-int
-PMS_Flo::encode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMS_Flo::encode"));
-
- Protocol_Record *prp;
- char *buf_ptr = packet;
-
- sprintf (buf_ptr,
- "Users %d",
- this->get_total_users ());
- buf_ptr += ACE_OS::strlen (buf_ptr) + 1;
-
- // We only send back info on friends that we actually see logged in.
-
- for (;
- (prp = this->get_next_friend ()) != 0;
- *buf_ptr++ = '\t')
- buf_ptr = this->handle_protocol_entries (ACE::strecpy (buf_ptr,
- prp->get_login ()),
- prp->get_drwho_list ());
- *buf_ptr++ = '\n';
- packet_length = buf_ptr - packet;
-
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
-
- return 1;
-}
-
-// This function takes a packet received from the client and calls the
-// appropriate Protocol_Manager routine to build the local table of
-// friends.
-
-int
-PMS_Flo::decode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMS_Flo::decode, packet_length = %d\n",
- packet_length));
-
- ACE_NEW_RETURN (this->ss,
- BS_Server (packet),
- -1);
- return 1;
-}
-
-PMS_Flo::PMS_Flo (void)
-{
-}
diff --git a/apps/drwho/PMS_Flo.h b/apps/drwho/PMS_Flo.h
deleted file mode 100644
index b7fefa5abec..00000000000
--- a/apps/drwho/PMS_Flo.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMS_Flo.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PMS_FLO_H
-#define _PMS_FLO_H
-
-#include "PM_Server.h"
-
-class PMS_Flo : public PM_Server
-{
- // = TITLE
- // Provides the server's lookup table abstraction for `flo' users...
-
-public:
- PMS_Flo (void);
-
-protected:
- virtual int encode (char *packet, int &total_bytes);
- virtual int decode (char *packet, int &total_bytes);
-};
-
-#endif /* _PMS_FLO_H */
diff --git a/apps/drwho/PMS_Ruser.cpp b/apps/drwho/PMS_Ruser.cpp
deleted file mode 100644
index 99d3905f44b..00000000000
--- a/apps/drwho/PMS_Ruser.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "HT_Server.h"
-#include "PMS_Ruser.h"
-
-// This function packs the located friends userids, plus the machines
-// they are logged into (along with the inactive and active counts on
-// each machine) into a buffer that is subsequently transmitted back
-// to the client across the network. Note that this function encodes
-// the REAL_NAME of the user in the packet.
-
-int
-PMS_Ruser::encode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMS_Ruser::encode"));
-
- Protocol_Record *prp;
- char *buf_ptr = packet;
-
- sprintf (buf_ptr,
- "Users %d",
- this->get_total_users ());
- buf_ptr += ACE_OS::strlen (buf_ptr) + 1;
-
- // We only send back info on hosts that we actually see.
-
- for (;
- (prp = this->get_next_friend ()) != 0;
- *buf_ptr++ = '\t')
- buf_ptr = this->handle_protocol_entries (ACE::strecpy (buf_ptr,
- prp->get_host ()),
- prp->get_drwho_list ());
-
- *buf_ptr++ = '\n';
- packet_length = buf_ptr - packet;
-
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
- return 1;
-}
-
-// This function takes a packet received from the client and crusers
-// the appropriate Protocol_Manager routine to build the local table
-// of friends.
-
-int
-PMS_Ruser::decode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMS_Ruser::decode, packet_length = %d\n",
- packet_length));
-
- if (*packet)
- Options::set_opt (Options::PRINT_LOGIN_NAME);
-
- ACE_NEW_RETURN (this->ss,
- HT_Server,
- -1);
- return 1;
-}
-
-Protocol_Record *
-PMS_Ruser::insert_protocol_info (Protocol_Record &protocol_record)
-{
- Drwho_Node *current_node = protocol_record.get_drwho_list ();
- Protocol_Record *prp = this->ss->insert (current_node->get_host_name (),
- MAXHOSTNAMELEN);
- Drwho_Node *np = this->get_drwho_node (ACE::strnnew (protocol_record.get_login (),
- MAXUSERIDNAMELEN),
- prp->drwho_list_);
-
- if (Options::get_opt (Options::PRINT_LOGIN_NAME))
- np->set_real_name ("");
- else
- {
- passwd *pwent = getpwnam (np->get_login_name ());
- char *cp =
- (char *) ACE_OS::strchr (np->set_real_name (pwent == 0
- ? np->get_login_name ()
- : ACE::strnew (pwent->pw_gecos)),
- ',');
- if (cp != 0)
- *cp = '\0';
- }
-
- if (current_node->get_idle_time () >= MAX_USER_TIMEOUT)
- np->inactive_count_++;
- else
- np->active_count_++;
-
- return prp;
-}
-
-char *
-PMS_Ruser::handle_protocol_entries (char *buf_ptr,
- Drwho_Node *np)
-{
- for (; np != 0; np = np->next_)
- {
- sprintf (buf_ptr,
- "%d %d ",
- np->get_inactive_count (),
- np->get_active_count ());
- buf_ptr += ACE_OS::strlen (buf_ptr);
-
- buf_ptr = ACE::strecpy (ACE::strecpy (buf_ptr,
- np->get_login_name ()),
- np->get_real_name ());
- }
-
- return buf_ptr;
-}
-
-PMS_Ruser::PMS_Ruser (void)
-{
-}
diff --git a/apps/drwho/PMS_Ruser.h b/apps/drwho/PMS_Ruser.h
deleted file mode 100644
index f26e916549f..00000000000
--- a/apps/drwho/PMS_Ruser.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMS_Ruser.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PMS_RUSER_H
-#define _PMS_RUSER_H
-
-#include "PM_Server.h"
-
-class PMS_Ruser : public PM_Server
-{
- // = TITLE
- // Provides the server's lookup table abstraction for `ruser' users...
-
-public:
- PMS_Ruser (void);
-
-protected:
- virtual char *handle_protocol_entries (char *bp, Drwho_Node *hp);
- virtual Protocol_Record *insert_protocol_info (Protocol_Record &protocol_record);
- virtual int encode (char *packet, int &total_bytes);
- virtual int decode (char *packet, int &total_bytes);
-};
-
-#endif /* _PMS_RUSER_H */
diff --git a/apps/drwho/PMS_Usr.cpp b/apps/drwho/PMS_Usr.cpp
deleted file mode 100644
index ce83f664bce..00000000000
--- a/apps/drwho/PMS_Usr.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "SL_Server.h"
-#include "PMS_Usr.h"
-
-// This function "encodes" a list of friends by putting the userid's in
-// a contiguous block. This block can then be transmitted over to the
-// network to servers on other subnets. Several things are added to
-// make decoding easier on the other end:
-//
-// * A count of the number of friends is prepended (assumption: there
-// are no more than 9999999 friends... ;-))
-// * The login userids are separated by a single space. */
-
-int
-PMS_Usr::encode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMS_Usr::encode"));
-
- char *buf_ptr = packet;
-
- // We only send back info on friend that is actually logged in.
-
- Protocol_Record *prp = this->get_next_friend ();
-
- if (prp)
- {
- buf_ptr = this->handle_protocol_entries (ACE::strecpy (buf_ptr,
- prp->get_login ()),
- prp->get_drwho_list ());
- *buf_ptr++ = '\t';
- }
-
- *buf_ptr++ = '\n';
- packet_length = buf_ptr - packet;
-
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
-
- return 1;
-}
-
-// This function takes a packet received from the client and calls the
-// appropriate Protocol_Manager routine to build the local table of
-// friends.
-
-int
-PMS_Usr::decode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "in PMS_Usr::decode, packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
-
- ACE_NEW_RETURN (this->ss,
- SL_Server (packet),
- -1);
- return 1;
-}
-
-PMS_Usr::PMS_Usr (void)
-{
-}
diff --git a/apps/drwho/PMS_Usr.h b/apps/drwho/PMS_Usr.h
deleted file mode 100644
index 1f29e43d653..00000000000
--- a/apps/drwho/PMS_Usr.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMS_Usr.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PMS_USR_H
-#define _PMS_USR_H
-
-#include "PM_Server.h"
-
-class PMS_Usr : public PM_Server
-{
- // = TITLE
- // Provides the client's lookup table abstraction for `Usr' users...
-
-public:
- PMS_Usr (void);
-
-protected:
- virtual int encode (char *packet, int &total_bytes);
- virtual int decode (char *packet, int &total_bytes);
-};
-
-#endif /* _PMS_USR_H */
diff --git a/apps/drwho/PM_Client.cpp b/apps/drwho/PM_Client.cpp
deleted file mode 100644
index f34922fee72..00000000000
--- a/apps/drwho/PM_Client.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-// $Id$
-#include "Options.h"
-#include "PM_Server.h"
-#include "PM_Client.h"
-
-// This function is used to merge the LOGIN_NAME from server HOST_NAME
-// into the userids kept on the client's side. Note that we must
-// allocate memory for HOST_NAME...
-
-Protocol_Record *
-PM_Client::insert_protocol_info (Protocol_Record &protocol_record)
-{
- Protocol_Record *prp = this->ss->insert (protocol_record.get_login ());
- Drwho_Node *current_node = protocol_record.get_drwho_list ();
- Drwho_Node *np = this->get_drwho_node (ACE::strnew (current_node->get_host_name ()),
- prp->drwho_list_);
-
- // Update the active and inactive counts.
-
- if (np->get_active_count () < current_node->get_active_count ())
- {
- np->set_active_count (current_node->get_active_count ());
- prp->is_active_ = 1;
- }
-
- if (np->get_inactive_count () < current_node->get_inactive_count())
- np->set_inactive_count (current_node->get_inactive_count ());
-
- return prp;
-}
-
-// This routine does all the dirty work, and actually prints out the
-// friends info in a nicely formatted manner.
-
-void
-PM_Client::process (void)
-{
- char *(Protocol_Record::*get_name)(void);
-
- if (Options::get_opt (Options::PRINT_LOGIN_NAME))
- get_name = &Protocol_Record::get_login;
- else
- get_name = &Protocol_Record::get_real;
-
- int active_friends = 0;
- int users = this->Protocol_Manager::get_total_users ();
-
- ACE_DEBUG ((LM_DEBUG,
- "------------------------\n"));
-
- if (Options::get_opt (Options::PRINT_LOGIN_NAME))
- this->max_key_length = MAXUSERIDNAMELEN;
-
- // Goes through the queue of all the logged in friends and prints
- // out the associated information.
-
- for (Protocol_Record *prp = this->Protocol_Manager::get_each_friend ();
- prp != 0;
- prp = this->Protocol_Manager::get_each_friend ())
- {
- ACE_DEBUG ((LM_DEBUG,
- "%c%-*s [", (prp->is_active_ != 0 ? '*' : ' '),
- this->max_key_length,
- (prp->*get_name) ()));
-
- for (Drwho_Node *np = prp->get_drwho_list (); ;)
- {
- ACE_DEBUG ((LM_DEBUG,
- np->get_host_name (),
- stdout));
-
- active_friends += np->get_active_count ();
-
- if (np->get_inactive_count () != 0)
- {
- if (np->get_active_count () != 0)
- ACE_DEBUG ((LM_DEBUG,
- "*(%d)",
- np->get_active_count ()));
- }
- else if (np->get_active_count () > 1)
- ACE_DEBUG ((LM_DEBUG,
- "*(%d)",
- np->get_active_count ()));
- else if (np->get_active_count () == 1)
- ACE_DEBUG ((LM_DEBUG,
- "*"));
-
- np = np->next_;
- if (np == 0)
- break;
- else
- ACE_DEBUG ((LM_DEBUG,
- " "));
- }
-
- ACE_DEBUG ((LM_DEBUG,
- "]\n"));
- }
-
- ACE_DEBUG ((LM_DEBUG,
- "------------------------\n"));
- ACE_DEBUG ((LM_DEBUG,
- "friends: %d\tusers: %d\n",
- active_friends,
- users));
-}
-
-char *
-PM_Client::handle_protocol_entries (const char *cp,
- const char *login_name,
- const char *real_name)
-{
- static Protocol_Record protocol_record (1);
- Drwho_Node *current_node = protocol_record.get_drwho_list ();
-
- protocol_record.set_login (login_name);
- protocol_record.set_real (real_name);
- current_node->set_inactive_count (atoi (cp));
- current_node->set_active_count (atoi (cp = ACE_OS::strchr (cp, ' ') + 1));
- current_node->set_host_name (cp = ACE_OS::strchr (cp, ' ') + 1);
-
- this->insert_protocol_info (protocol_record);
-
- return (char *) ACE::strend (cp);
-}
-
-PM_Client::PM_Client (void)
- : max_key_length (0)
-{
-}
-
-PM_Client::~PM_Client (void)
-{
-}
-
diff --git a/apps/drwho/PM_Client.h b/apps/drwho/PM_Client.h
deleted file mode 100644
index f44ab84f69f..00000000000
--- a/apps/drwho/PM_Client.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PM_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PM_CLIENT_H
-#define _PM_CLIENT_H
-
-#include "Protocol_Manager.h"
-
-class PM_Client : public Protocol_Manager
-{
- // = TITLE
- // Provides the client side of the friend manager lookup table abstraction.
-public:
- PM_Client (void);
- virtual ~PM_Client (void);
-
- virtual int encode (char *packet, int &total_bytes) = 0;
- virtual int decode (char *packet, int &total_bytes) = 0;
- virtual void process (void);
-
-protected:
- int max_key_length;
-
- virtual char *handle_protocol_entries (const char *cp,
- const char *key_name1,
- const char *key_name2 = 0);
-
- virtual Protocol_Record *insert_protocol_info (Protocol_Record &protocol_record);
-};
-
-#endif /* _PM_CLIENT_H */
-
diff --git a/apps/drwho/PM_Server.cpp b/apps/drwho/PM_Server.cpp
deleted file mode 100644
index 9fa3b78679b..00000000000
--- a/apps/drwho/PM_Server.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "Rwho_DB_Manager.h"
-#include "PM_Server.h"
-
-// This is the main method for the server side of things. It reads
-// the RWHO file on the local machine and inserts HOST_NAME
-// information for each LOGIN_NAME that is a friend into the
-// DRWHO_LIST. This function is also responsible for determining
-// whether a given LOGIN_NAME is currently idle or not.
-
-int
-PM_Server::process (void)
-{
- RWho_DB_Manager ru;
- Protocol_Record protocol_record (1);
-
- while (ru.get_next_user (protocol_record) > 0)
- this->insert_protocol_info (protocol_record);
-
- return 1;
-}
-
-// Insert the HOST_NAME into the server's lookup table on behalf of
-// user LOGIN_NAME. Note that we need to allocate memory for
-// HOST_NAME...
-
-Protocol_Record *
-PM_Server::insert_protocol_info (Protocol_Record &protocol_record)
-{
- Protocol_Record *prp = this->ss->insert (protocol_record.get_login ());
-
- Drwho_Node *current_node = protocol_record.get_drwho_list ();
-
- if (current_node->get_idle_time () < MAX_USER_TIMEOUT)
- this->increment_total_users ();
-
- if (prp)
- {
- Drwho_Node *np =
- this->get_drwho_node (ACE::strnew (current_node->get_host_name ()),
- prp->drwho_list_);
-
- if (current_node->get_idle_time () >= MAX_USER_TIMEOUT)
- np->inactive_count_++;
- else
- np->active_count_++;
- }
-
- return prp;
-}
-
-// Put the inactive and active counts, plus the hostname into the
-// packet.
-
-char *
-PM_Server::handle_protocol_entries (char *buf_ptr,
- Drwho_Node *np)
-{
-
- for (; np != 0; np = np->next_)
- {
- sprintf (buf_ptr,
- "%d %d %s",
- np->get_inactive_count (),
- np->get_active_count (),
- np->get_host_name ());
- buf_ptr += strlen (buf_ptr) + 1;
- }
-
- return buf_ptr;
-}
-
-PM_Server::PM_Server (void)
-{
-}
-
-PM_Server::~PM_Server (void)
-{
-}
diff --git a/apps/drwho/PM_Server.h b/apps/drwho/PM_Server.h
deleted file mode 100644
index 2a355c8e262..00000000000
--- a/apps/drwho/PM_Server.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PM_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PM_SERVER_H
-#define _PM_SERVER_H
-
-#include "Protocol_Manager.h"
-
-class PM_Server : public Protocol_Manager
-{
- // = TITLE
- // Handle the server's lookup table abstraction.
-
-public:
- PM_Server (void);
- virtual ~PM_Server (void);
-
- virtual int encode (char *packet, int &total_bytes) = 0;
- virtual int decode (char *packet, int &total_bytes) = 0;
- virtual int process (void);
-
-protected:
- virtual char *handle_protocol_entries (char *bp,
- Drwho_Node *hp);
- virtual Protocol_Record *insert_protocol_info (Protocol_Record &protocol_record);
-};
-
-#endif /* _PM_SERVER_H */
diff --git a/apps/drwho/Protocol_Manager.cpp b/apps/drwho/Protocol_Manager.cpp
deleted file mode 100644
index 23895610893..00000000000
--- a/apps/drwho/Protocol_Manager.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-// $Id$
-#include "Options.h"
-#include "new.h"
-#include "Protocol_Manager.h"
-
-// Returns a pointer to the Drwho_Node associated with HOST_NAME (if
-// it exists, otherwise a new node is created. Note that if a
-// Drwho_Node is found it is moved to the front of the list so that
-// subsequent finds are faster (i.e., self-organizing!)
-
-Drwho_Node *
-Protocol_Manager::get_drwho_node (char *key_name, Drwho_Node *&head)
-{
- for (Drwho_Node **temp = &head;
- *temp != 0;
- temp = &(*temp)->next_)
- if (ACE_OS::strcmp (key_name,
- (*temp)->get_login_name ()) == 0)
- break;
-
- if (*temp == 0)
- ACE_NEW_RETURN (head,
- Drwho_Node (key_name, head),
- 0);
- else
- {
- Drwho_Node *t = *temp;
-
- *temp = (*temp)->next_;
- t->next_ = head;
-
- head = t;
- }
-
- return head;
-}
-
-Protocol_Manager::Protocol_Manager (void)
- : total_users (0)
-{
-}
-
-Protocol_Manager::~Protocol_Manager (void)
-{
- if (Options::get_opt (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "disposing Protocol_Manager\n"));
-}
-
-// Returns the next friend in the sequence of sorted friends.
-
-Protocol_Record *
-Protocol_Manager::get_next_friend (void)
-{
- return this->ss->get_next_entry ();
-}
-
-Protocol_Record *
-Protocol_Manager::get_each_friend (void)
-{
- return this->ss->get_each_entry ();
-}
-
-// Returns the number of friends.
-
-int
-Protocol_Manager::friend_count (void)
-{
- return this->ss->n_elems ();
-}
-
-// Returns total number of users logged in throughout the system.
-
-int
-Protocol_Manager::get_total_users (void)
-{
- return Protocol_Manager::total_users;
-}
-
-void
-Protocol_Manager::increment_total_users (int remote_users)
-{
- Protocol_Manager::total_users += remote_users;
-}
diff --git a/apps/drwho/Protocol_Manager.h b/apps/drwho/Protocol_Manager.h
deleted file mode 100644
index d61e752c8df..00000000000
--- a/apps/drwho/Protocol_Manager.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Protocol_Manager.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PROTOCOL_MANAGER_H
-#define _PROTOCOL_MANAGER_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "Options.h"
-#include "Search_Struct.h"
-#include "Protocol_Record.h"
-
-class Protocol_Manager
-{
- // = TITLE
- // A base class that consolidates friend management functionality
- // shared by both clients and servers.
-public:
- Protocol_Manager (void);
- virtual ~Protocol_Manager (void);
-
- virtual int encode (char *packet, int &total_bytes) = 0;
- virtual int decode (char *packet, int &total_bytes) = 0;
-
-protected:
- int total_users;
- Search_Struct *ss;
-
- int friend_count (void);
-
- Drwho_Node *get_drwho_node (char *host_name, Drwho_Node *&head);
- int get_total_users (void);
- void increment_total_users (int remote_users = 1);
-
- Protocol_Record *get_next_friend (void);
- Protocol_Record *get_each_friend (void);
-
- virtual Protocol_Record *insert_protocol_info (Protocol_Record &protocol_record) = 0;
-};
-
-#endif /* _PROTOCOL_MANAGER_H */
diff --git a/apps/drwho/Protocol_Record.cpp b/apps/drwho/Protocol_Record.cpp
deleted file mode 100644
index 98e64c795ad..00000000000
--- a/apps/drwho/Protocol_Record.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "Protocol_Record.h"
-
-// Static initialization.
-
-Drwho_Node Protocol_Record::drwho_node_;
-
-Protocol_Record::~Protocol_Record (void)
-{
- if (Options::get_opt (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "disposing Protocol_Record\n"));
-
- for (Drwho_Node *np = this->get_drwho_list ();
- np != 0; )
- {
- Drwho_Node *t = np;
- np = np->next_;
- delete t;
- }
-}
-
-Protocol_Record::Protocol_Record (void)
- : is_active_ (0),
- drwho_list_ (0),
- key_name1_ (0),
- key_name2_ (0),
- next_ (0)
-{
-}
-
-Protocol_Record::Protocol_Record (int)
- : is_active_ (0),
- drwho_list_ (&Protocol_Record::drwho_node_),
- key_name1_ (0),
- key_name2_ (0),
- next_ (0)
-{
-}
-
-Protocol_Record::Protocol_Record (const char *kn1,
- Protocol_Record *next)
- : is_active_ (0),
- drwho_list_ (0),
- key_name2_ (0)
-{
- this->key_name1_ = kn1;
- this->next_ = next;
-}
-
-const char *
-Protocol_Record::get_login (void)
-{
- return this->key_name1_;
-}
-
-const char *
-Protocol_Record::set_login (const char *str)
-{
- this->key_name1_ = str;
- return str;
-}
-
-const char *
-Protocol_Record::get_real (void)
-{
- return this->key_name2_;
-}
-
-const char *
-Protocol_Record::get_host (void)
-{
- return this->key_name1_;
-}
-
-const char *
-Protocol_Record::set_host (const char *str)
-{
- this->key_name1_ = str;
- return str;
-}
-
-const char *
-Protocol_Record::set_real (const char *str)
-{
- this->key_name2_ = str;
- return str;
-}
-
-Drwho_Node *
-Protocol_Record::get_drwho_list (void)
-{
- return this->drwho_list_;
-}
diff --git a/apps/drwho/Protocol_Record.h b/apps/drwho/Protocol_Record.h
deleted file mode 100644
index 60cf250adf1..00000000000
--- a/apps/drwho/Protocol_Record.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Protocol_Record.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PROTOCOL_RECORD_H
-#define _PROTOCOL_RECORD_H
-
-#include "Drwho_Node.h"
-
-class Protocol_Record
-{
- // = TITLE
- // Stores information about a single friend's status.
-
-public:
- Protocol_Record (void);
- Protocol_Record (int use_dummy);
- Protocol_Record (const char *key_name1,
- Protocol_Record *next = 0);
- ~Protocol_Record (void);
- const char *get_host (void);
- const char *set_host (const char *str);
- const char *get_login (void);
- const char *set_login (const char *str);
- const char *get_real (void);
- const char *set_real (const char *str);
- Drwho_Node *get_drwho_list (void);
-
- static Drwho_Node drwho_node_;
- const char *key_name1_;
- const char *key_name2_;
- Drwho_Node *drwho_list_;
- Protocol_Record *next_;
- int is_active_;
-};
-
-#endif /* _PROTOCOL_RECORD_H */
diff --git a/apps/drwho/README b/apps/drwho/README
deleted file mode 100644
index af1c4b401c7..00000000000
--- a/apps/drwho/README
+++ /dev/null
@@ -1,308 +0,0 @@
-This directory contains the "distributed rwho" (drwho) program. Drwho
-alleviates certain rwho(1) limitations. For instance it adds
-functionality that spans subnets. In addition, drwho prints a much
-more concise listing of who's logged in around a network.
-
-Below are some examples of how to use drwho.
-
-0. Start by running the server in a window or as a daemon, e.g., run
- the following on a local machine, such as tango.cs.wustl.edu:
-
-% drwho-server
-
-Then, If you'd like to find out who's logged in, try the following
-commands:
-
-1. Print out the command-line options.
-
-% drwho-client -h
-usage: ./drwho-client
--? prints a short usage message
--A append the following hostname to the list of predefined hostnames.
--a return information on *all* users remotely logged in (uses yp passwd).
--b run the server in the background (i.e., as a daemon).
--d turn on debugging.
--F use the following file contents to initialize the host list.
--f use the following file contents to initialize the friends database.
--H use the following hostname as part of the new list of hostnames.
- (this option overwrites the existing default names).
--h print a long usage message.
--L print the login name rather than the real name (which is the default).
--l print information in long format (works for all protocols).
--p set the port number (server must correspond).
--r do the remote lookups (i.e., local operations are the default).
--R print info using the rusers format.
--s sort the output by login name.
--S sort the output by real name.
--t set the amount of time we wait for servers to timeout.
--w return information on just one user.
-
-----------------------------------------
-
-2. Find out which friends are logged in (* means currently active)
-
-% drwho-client -A tango.cs.wustl.edu -r -f ~schmidt/.friends.dta
-remote friends logged on
-------------------------
-*Doug O'las [tango*(3) mambo]
- Carlos O'Ryan [tango swarm.cs.wustl.edu macarena]
- Irfan Pyarali [merengue]
- Nanbor Wang [lambada]
- Marina Spivak [mambo]
- Chris Gill [tango]
-*Vishal [merengue*(2)]
- Kirthika [tango waltz]
- Naga [tango polka]
- Alex [lindy]
- Bala [cumbia]
- Pradeep [flamenco]
- Matt Braun [lambada]
-------------------------
-friends: 5 users: 168
-
-You'll to write a friends.dta file in order for this feature to work.
-Here's one that I've got:
-
-schmidt Doug O'las
-coryan Carlos O'Ryan
-irfan Irfan Pyarali
-levine David Levine
-nanbor Nanbor Wang
-jp4 Jeff Parsons
-marina Marina Spivak
-cdgill Chris Gill
-vishal Vishal
-kirthika Kirthika
-naga Naga
-alex Alex
-bala Bala
-pradeep Pradeep
-brunsch Darrell Brunsch
-jxh James Hu
-yamuna Yamuna
-mjb2 Matt Braun
-gokhale Andy Gokhale
-fredk Fred Kuhns
-
-If you put this file in ~/.friends.dta drwho will automatically locate
-it.
-
-----------------------------------------
-
-3. Find out where a particular person is logged in:
-
-% drwho-client -A tango.cs.wustl.edu -r -w schmidt
-tango
-
-This is useful for remote commands that require a hostname, e.g.:
-
-% talk schmidt@`drwho-client -A tango.cs.wustl.edu -r -w schmidt`
-
-or
-
-% rsh `drwho-client -w schmidt` ps
- PID TTY TIME CMD
- 1844 pts/9 0:01 tcsh_6.0
- 4821 ? 0:02 perfmete
- 77 pts/20 0:01 tcsh_6.0
- 4845 pts/2 0:00 tcsh_6.0
- 4766 ? 0:00 xmessage
- 4850 pts/3 0:06 tcsh_6.0
- 5057 pts/4 0:01 tcsh_6.0
- 4826 ? 18:07 netscape
- 4802 ? 0:07 mwm
-% foreach host (`drwho -r -l -w schmidt`)
-? echo $host
-? rsh $host w | egrep schmidt
-? end
-
-----------------------------------------
-
-4. Find out everyone who is logged in everywhere!
-
-% drwho-client -A tango.cs.wustl.edu -r -a
-remote users logged on
-------------------------
- rlneblet [ascc]
- woody [fixer]
- Jyoti Parwatikar [hopscotch]
- Stephen D. Scott [occam]
- klkramer [ascc]
- dmorris [ascc]
-*pabacard [ascc*]
- sestasne [ascc]
- Sumedh Mungee [merengue lindy]
- Alexander Babu Arulanthu [lindy]
- Robert A. Rouse [siesta]
- asamarak [ascc]
- Tom Chaney [snoodles]
- Joe Hoffert [monkeybars]
- ircornel [ascc]
- Chris Cleeland [macarena]
-*Matthew Karl Lundberg [enz lcs*(2)]
- dmschult [ascc]
- sherlia [owen]
-*wmwhites [ascc*]
- Marius Mihai Tutunaru [siesta]
- Ken Wong [ackbar sarlacc]
- abstutts [ascc]
- Barry L. Kalman [sachel]
- Yunhong Zhou [siesta]
- Marina Igorevna Spivak [mambo]
- mschraed [ascc]
- tuck [ascc]
- Daniel Robert Dooly [cardinal]
- emlentz [ascc]
- Margaret Flucke [honker yoda brainmap]
- Jonathan S. Pollack [siesta]
- Gurudatta M. Parulkar [ackbar]
- Mike Richards [teebo]
-*Vishal Kachroo [merengue*(1)]
- The dump man [tapeworm]
- Uooyeol Yoon [siesta]
- jtlink [ascc]
- Dan Rosenstein [tubman]
- cdnorden [ascc]
- Jon Turner [spanky]
- Stan C. Kwasny [lambda]
- aymessin [ascc]
- Nanbor Wang [lambada]
- wolf [sarlacc]
- jgbers [ascc]
- Pradeep Gore [flamenco]
- Chris D. Gill [tango]
- sduseja [ascc]
- amgarcia [ascc]
-*Hongyin Quan [ackbar*(2)]
- firemen [helen]
-*lskafenb [ascc*]
- Sally Goldman [occam]
- Marcel Waldvogel [tiger]
- klforesm [ascc]
- Andy Fingerhut [yoda leia]
- root@tango [tango emperor siren flora helen boushi tapeworm siesta rainier taumsauk honker polka]
- Nagarajan Surendran [tango polka]
- ajeckste [ascc]
- Linda Suri [kavita]
- Sarah Elizabeth Burcham [helen]
- Salathiel Sawyer [helen]
- A. Maynard Engebretson [wicket]
- Theresa Manzara [siesta]
- aagrillo [ascc]
- ksviehen [ascc]
- Will Gillett [gel]
- Elaine M Ashton [helen]
- James C. Gray [siesta]
- Ian Flanigan [siesta]
- jacrank [ascc]
- Matthew J Braun [lambada]
-*pjhanrah [ascc*]
- Vadim Adamov [siesta]
-*rbherrin [ascc*]
- kslee [ascc]
- Balachandran Natarajan [cumbia]
-*Qianbo Huai [ecommerce*(2)]
- Scott Thomas Haug [bacon kato]
- Yuhua Chen [beru]
- blawrenc [ascc]
- dcoats [ascc]
-*sdsinger [ascc*]
- Katherine Skirving Larson [odysseus mas]
- rmcarbon [ascc]
- rer [luke honker leia]
- Ron Loui [ai siesta]
- Sergio Flores [tango siesta]
- maint [helen]
- mewedeha [ascc]
- Scott Simon [ackbar]
- weathert [anakin hobbie honker]
- Kirthika Parameswaran [waltz tango]
- Scott Douglas Powers [greedo buster]
-*vehays [ascc*]
- Multiagent Systems Research Group [siren]
-*Douglas C. Schmidt [tango*(3) mambo]
- sunyh [r2d2]
-*jbbrooks [ascc*]
- mweisema [ascc]
-*baruethe [ascc*]
- Yan Zhou [thunderball]
-*jennyc [ascc*]
- Karl Stiefvater [tamarin helen]
- John Roman [helen]
- slstraus [ascc]
- Subhash Suri [kavita]
- Sandeep Sikka [siesta]
- Dna Mutants [lcs]
- Irfan Pyarali [merengue]
- ajhingst [ascc]
- Tuomas Sandholm [siren]
- Carlos O'Ryan [tango swarm.cs.wustl.edu macarena]
- Tilman Wolf [siesta]
-------------------------
-friends: 20 users: 20
-
-----------------------------------------
-
-5. Print out all machines and who is logged into each one
-
-% drwho-client -A tango.cs.wustl.edu -R -l
-kavita Subhash Suri, Linda Suri
-lcs Matthew Karl Lundberg*(2), Dna Mutants
-leia Andy Fingerhut, rer
-rainier root@tango
-thunderball Yan Zhou
-lindy Sumedh Mungee, Alexander Babu Arulanthu
-flamenco Pradeep Gore
-ai Ron Loui
-wicket A. Maynard Engebretson
-occam Stephen D. Scott, Sally Goldman
-helen firemen, Sarah Elizabeth Burcham, Elaine M Ashton, root@tango, maint, John Roman, Karl Stiefvater, Salathiel Sawyer
-enz Matthew Karl Lundberg
-tamarin Karl Stiefvater
-tiger Marcel Waldvogel
-cumbia Balachandran Natarajan
-r2d2 sunyh
-fixer woody
-ecommerce Qianbo Huai*(2)
-lambda Stan C. Kwasny
-boushi root@tango
-mambo Douglas C. Schmidt, Marina Igorevna Spivak
-ascc slstraus, rmcarbon, aymessin, aagrillo, sdsinger*, dmschult, sestasne, dmorris, jgbers, jennyc*, sduseja, baruethe*, gzhou*, vehays*, pjhanrah*, dcoats, saduthie*, ksviehen, cdnorden, ajhingst*, mschraed, asamarak, pabacard*, mewedeha, ajeckste, jbbrooks, blawrenc, amgarcia, abstutts, klforesm, klkramer, pkshah*, jtlink, jacrank, wmwhites*, kslee, mweisema, emlentz, rlneblet, tuck
-beru Yuhua Chen
-emperor root@tango
-siren Tuomas Sandholm, root@tango, Multiagent Systems Research Group
-tubman Dan Rosenstein
-gel Will Gillett
-honker Margaret Flucke, root@tango, weathert, rer
-greedo Scott Douglas Powers
-swarm.cs.wustl.edu Carlos O'Ryan
-tapeworm root@tango, The dump man
-siesta Uooyeol Yoon, Marius Mihai Tutunaru, Vadim Adamov, Robert A. Rouse, Jonathan S. Pollack, James C. Gray, Sergio Flores, Sandeep Sikka, Ron Loui, Yunhong Zhou, Tilman Wolf, Theresa Manzara, Ian Flanigan, root@tango
-luke rer
-snoodles Tom Chaney
-ackbar Ken Wong, Scott Simon, Gurudatta M. Parulkar, Hongyin Quan*(1)
-buster Scott Douglas Powers
-tango Nagarajan Surendran, Sergio Flores, Chris D. Gill, Kirthika Parameswaran, Carlos O'Ryan, root@tango, Douglas C. Schmidt*(3)
-teebo Mike Richards
-cardinal Daniel Robert Dooly
-lambada Nanbor Wang, Matthew J Braun
-merengue Sumedh Mungee, Vishal Kachroo*(1), Irfan Pyarali
-macarena Chris Cleeland, Carlos O'Ryan
-sarlacc wolf, Ken Wong
-spanky Jon Turner
-brainmap Margaret Flucke
-polka Nagarajan Surendran, root@tango
-waltz Kirthika Parameswaran
-flora root@tango
-anakin weathert
-bacon Scott Thomas Haug
-hopscotch Jyoti Parwatikar
-mas Katherine Skirving Larson
-kato Scott Thomas Haug
-hobbie weathert
-odysseus Katherine Skirving Larson
-sachel Barry L. Kalman
-taumsauk root@tango
-yoda Margaret Flucke, Andy Fingerhut
-owen sherlia
-monkeybars Joe Hoffert
diff --git a/apps/drwho/Rwho_DB_Manager.cpp b/apps/drwho/Rwho_DB_Manager.cpp
deleted file mode 100644
index 902e4cb4ade..00000000000
--- a/apps/drwho/Rwho_DB_Manager.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-// $Id$
-#include "global.h"
-#include "Options.h"
-#include "Rwho_DB_Manager.h"
-
-// Change to the RWHO directory to speed up and simplify later
-// processing. This requires opening the directory for reading with
-// the directory iterator abstraction and then skipping the first two
-// files in the directory, which are assumed to be "." and ".." (this
-// function needs to be changed if this assumption does not hold!)
-
-RWho_DB_Manager::RWho_DB_Manager (void)
- : number_of_users (0),
- current_user (0),
- rwho_dir_name (RWHODIR),
- WHOD_HEADER_SIZE (sizeof host_data - sizeof host_data.wd_we)
-{
- if (ACE_OS::getcwd (this->original_pathname, MAXPATHLEN + 1) == 0)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- Options::program_name,
- 1));
-
- if (ACE_OS::chdir (this->rwho_dir_name) < 0)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- this->rwho_dir_name,
- 1));
-
- this->rwho_dir.open (this->rwho_dir_name);
-
-#if 0
- // Skip "." and ".."
- this->rwho_dir.read ();
- this->rwho_dir.read ();
-#endif
-}
-
-// The destructor cleans up the RWHOD_DIR handle.
-
-RWho_DB_Manager::~RWho_DB_Manager (void)
-{
- if (ACE_OS::chdir (this->original_pathname) < 0)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- Options::program_name,
- 1));
-
- if (Options::get_opt (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "disposing the RWho_DB_Manager\n"));
-}
-
-// This procedure looks through the rwhod directory until it finds the next
-// valid user file.
-//
-// The requirements for user files are:
-// 1) The file is at least MIN_HOST_DATA_SIZE bytes long
-// 2) It was received within the last MAX_HOST_TIMEOUT seconds
-// Return:
-// Are there any more hosts? */
-
-int
-RWho_DB_Manager::get_next_host (void)
-{
- time_t current_time;
-
- ACE_OS::time (&current_time);
-
- // Go through each file in the directory looking for valid entries.
-
- for (dirent *dir_ptr = this->rwho_dir.read ();
- dir_ptr != 0;
- dir_ptr = this->rwho_dir.read ())
- {
- ACE_HANDLE user_file =
- ACE_OS::open (dir_ptr->d_name, O_RDONLY);
-
- if (user_file < 0)
- return -1;
-
- int host_data_length =
- ACE_OS::read (user_file,
- (char *) &this->host_data,
- sizeof this->host_data);
-
- if (host_data_length > WHOD_HEADER_SIZE
- && current_time - this->host_data.wd_recvtime < MAX_HOST_TIMEOUT)
- {
- this->current_user = 0;
- this->number_of_users = (host_data_length - WHOD_HEADER_SIZE) / sizeof *this->host_data.wd_we;
- ACE_OS::close (user_file);
- return 1; // We found a good host, so return it.
- }
- else
- ACE_OS::close (user_file);
- }
-
- // There are no more hosts, so return False.
- return 0;
-}
-
-// Returns the next user's information. Note that for efficiency only
-// pointers are copied, i.e., this info must be used before we call
-// this function again.
-
-int
-RWho_DB_Manager::get_next_user (Protocol_Record &protocol_record)
-{
- // Get the next host file if necessary
- if (this->current_user >= this->number_of_users
- && this->get_next_host () == 0)
- return 0;
-
- protocol_record.set_login (this->host_data.wd_we[current_user].we_utmp.out_name);
- Drwho_Node *current_node = protocol_record.get_drwho_list ();
- current_node->set_host_name (this->host_data.wd_hostname);
- current_node->set_idle_time (this->host_data.wd_we[current_user].we_idle);
- this->current_user++;
-
- return 1;
-}
diff --git a/apps/drwho/Rwho_DB_Manager.h b/apps/drwho/Rwho_DB_Manager.h
deleted file mode 100644
index b995a172a7d..00000000000
--- a/apps/drwho/Rwho_DB_Manager.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Rwho_DB_Manager.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _RWHO_DB_MANAGER_H
-#define _RWHO_DB_MANAGER_H
-
-#include <protocols/rwhod.h>
-#include "ace/Dirent.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "Protocol_Record.h"
-
-class RWho_DB_Manager
-{
- // = TITLE
- // This class returns the user/machine pairs one at a time from
- // the rwho database.
-
-public:
- RWho_DB_Manager (void);
- ~RWho_DB_Manager (void);
- int get_next_user (Protocol_Record &protocol_record);
-
-private:
- ACE_Dirent rwho_dir;
- whod host_data;
- int number_of_users;
- int current_user;
- const int WHOD_HEADER_SIZE;
- char original_pathname[MAXPATHLEN + 1];
- char *rwho_dir_name;
-
- int get_next_host (void);
-};
-
-#endif /* _RWHO_DB_MANAGER_H */
diff --git a/apps/drwho/SL_Client.cpp b/apps/drwho/SL_Client.cpp
deleted file mode 100644
index 9cba5324a2e..00000000000
--- a/apps/drwho/SL_Client.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "SL_Client.h"
-
-SL_Client::SL_Client (const char *usr_name)
- : Single_Lookup (usr_name)
-{
-}
-
-Protocol_Record *
-SL_Client::insert (const char *, int)
-{
- return this->prp_;
-}
diff --git a/apps/drwho/SL_Client.h b/apps/drwho/SL_Client.h
deleted file mode 100644
index 16be3842064..00000000000
--- a/apps/drwho/SL_Client.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SL_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SL_CLIENT_H
-#define _SL_CLIENT_H
-
-#include "Single_Lookup.h"
-
-class SL_Client : public Single_Lookup
-{
- // = TITLE
- // Provides the client's single user lookup table abstraction.
-
-public:
- SL_Client (const char *key_name);
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN);
-};
-
-#endif /* _SL_CLIENT_H */
diff --git a/apps/drwho/SL_Server.cpp b/apps/drwho/SL_Server.cpp
deleted file mode 100644
index 35c29d598dc..00000000000
--- a/apps/drwho/SL_Server.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-// $Id$
-
-#include "global.h"
-#include "SL_Server.h"
-
-SL_Server::SL_Server (const char *usr_name)
- : Single_Lookup (usr_name)
-{
-}
-
-Protocol_Record *
-SL_Server::get_each_entry (void)
-{
- Protocol_Record *prp = Single_Lookup::get_each_entry ();
- return prp->get_drwho_list () == 0 ? 0 : prp;
-}
-
-Protocol_Record *
-SL_Server::insert (const char *key_name, int max_len)
-{
- return ACE_OS::strncmp (key_name,
- this->prp_->get_login (),
- max_len) == 0 ? this->prp_ : 0;
-}
-
diff --git a/apps/drwho/SL_Server.h b/apps/drwho/SL_Server.h
deleted file mode 100644
index 2a8ee2ba054..00000000000
--- a/apps/drwho/SL_Server.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SL_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SL_SERVER_H
-#define _SL_SERVER_H
-
-#include "Single_Lookup.h"
-
-class SL_Server : public Single_Lookup
-{
- // = TITLE
- // Provides the server's single user lookup table abstraction.
-
-public:
- SL_Server (const char *packet);
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN);
- virtual Protocol_Record *get_each_entry (void);
-};
-
-#endif /* _SL_SERVER_H */
diff --git a/apps/drwho/SML_Client.cpp b/apps/drwho/SML_Client.cpp
deleted file mode 100644
index 8ae0195e1a6..00000000000
--- a/apps/drwho/SML_Client.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "SML_Client.h"
-
-int
-SML_Client::receive (int)
-{
- if (sml_server.mux (this->recv_packet_, this->packet_length) < 0)
- return -1;
-
- if (this->demux (this->recv_packet_, this->packet_length) < 0)
- return -1;
-
- return 1;
-}
-
-int
-SML_Client::send (void)
-{
- if (this->mux (this->send_packet_, this->packet_length) < 0)
- return -1;
-
- if (sml_server.demux (this->send_packet_, this->packet_length) < 0)
- return -1;
-
- return 1;
-}
-
-SML_Client::SML_Client (void)
-{
-}
-
-SML_Client::~SML_Client (void)
-{
-}
diff --git a/apps/drwho/SML_Client.h b/apps/drwho/SML_Client.h
deleted file mode 100644
index d02fb8d6fa0..00000000000
--- a/apps/drwho/SML_Client.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SML_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SML_CLIENT_H
-#define _SML_CLIENT_H
-
-#include "SM_Client.h"
-#include "SML_Server.h"
-
-class SML_Client : public SM_Client
-{
-public:
- SML_Client (void);
- virtual ~SML_Client (void);
- virtual int receive (int timeout = 0);
- virtual int send (void);
-
-private:
- SML_Server sml_server;
- int packet_length;
-};
-
-#endif /* _SML_CLIENT_H */
diff --git a/apps/drwho/SML_Server.cpp b/apps/drwho/SML_Server.cpp
deleted file mode 100644
index 5a71c795f69..00000000000
--- a/apps/drwho/SML_Server.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-// $Id$
-
-#include "SML_Server.h"
-
-SML_Server::SML_Server (void)
-{
-}
-
-SML_Server::~SML_Server (void)
-{
-}
diff --git a/apps/drwho/SML_Server.h b/apps/drwho/SML_Server.h
deleted file mode 100644
index 5fc665450df..00000000000
--- a/apps/drwho/SML_Server.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SML_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SML_SERVER_H
-#define _SML_SERVER_H
-
-#include "SM_Server.h"
-
-class SML_Server : public SM_Server
-{
-public:
- SML_Server (void);
- virtual ~SML_Server (void);
-};
-
-#endif /* _SML_SERVER_H */
diff --git a/apps/drwho/SMR_Client.cpp b/apps/drwho/SMR_Client.cpp
deleted file mode 100644
index f0c9c777db9..00000000000
--- a/apps/drwho/SMR_Client.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "PMC_All.h"
-#include "PMC_Flo.h"
-#include "PMC_Usr.h"
-#include "PMC_Ruser.h"
-#include "SMR_Client.h"
-
-SMR_Client::SMR_Client (short port_number)
-{
- if (CM_Client::open (port_number) < 0)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- Options::program_name,
- 1));
-}
-
-SMR_Client::~SMR_Client (void)
-{
-}
diff --git a/apps/drwho/SMR_Client.h b/apps/drwho/SMR_Client.h
deleted file mode 100644
index 9725c3ebd96..00000000000
--- a/apps/drwho/SMR_Client.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SMR_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SMR_CLIENT_H
-#define _SMR_CLIENT_H
-
-#include "SM_Client.h"
-
-class SMR_Client : public SM_Client
-{
-public:
- SMR_Client (short port_number);
- virtual ~SMR_Client (void);
-};
-
-#endif /* _SMR_CLIENT_H */
diff --git a/apps/drwho/SMR_Server.cpp b/apps/drwho/SMR_Server.cpp
deleted file mode 100644
index 109e432fa81..00000000000
--- a/apps/drwho/SMR_Server.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "SMR_Server.h"
-
-SMR_Server::SMR_Server (short port_number)
-{
- if (CM_Server::open (port_number) < 0)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- Options::program_name,
- 1));
-}
-
-SMR_Server::~SMR_Server (void)
-{
-}
diff --git a/apps/drwho/SMR_Server.h b/apps/drwho/SMR_Server.h
deleted file mode 100644
index af8b384d701..00000000000
--- a/apps/drwho/SMR_Server.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SMR_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SMR_SERVER_H
-#define _SMR_SERVER_H
-
-#include "SM_Server.h"
-
-class SMR_Server : public SM_Server
-{
-public:
- SMR_Server (short port_number);
- ~SMR_Server (void);
-};
-
-#endif /* _SMR_SERVER_H */
diff --git a/apps/drwho/SM_Client.cpp b/apps/drwho/SM_Client.cpp
deleted file mode 100644
index 3d32834f8e1..00000000000
--- a/apps/drwho/SM_Client.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "PMC_All.h"
-#include "PMC_Flo.h"
-#include "PMC_Usr.h"
-#include "PMC_Ruser.h"
-#include "SM_Client.h"
-
-// Call-back function that invokes the appropriate decode function.
-
-int
-SM_Client::demux (char *packet,
- int &packet_length)
-{
- if (this->pm_client->decode (packet, packet_length) < 0)
- return -1;
- else
- return 1;
-}
-
-// Call-back function that invokes the appropriate encode function.
-
-int
-SM_Client::mux (char *packet, int &packet_length)
-{
- switch (Options::protocol_type)
- {
- case Options::PROTO_USR:
- ACE_NEW_RETURN (this->pm_client,
- PMC_Usr (Options::user_name),
- -1);
- break;
- case Options::PROTO_ALL:
- ACE_NEW_RETURN (this->pm_client,
- PMC_All,
- -1);
- break;
- case Options::PROTO_FLO:
- ACE_NEW_RETURN (this->pm_client,
- PMC_Flo,
- -1);
- break;
- case Options::PROTO_RUSER:
- ACE_NEW_RETURN (this->pm_client,
- PMC_Ruser,
- -1);
- break;
- default:
- ACE_DEBUG ((LM_DEBUG,
- "%s: bad protocol\n",
- Options::program_name));
- return -1;
- }
-
- if (this->pm_client->encode (packet, packet_length) < 0)
- return -1;
- return 1;
-}
-
-SM_Client::SM_Client (void)
-{
-}
-
-SM_Client::~SM_Client (void)
-{
-}
-
-void
-SM_Client::process (void)
-{
- this->pm_client->process ();
-}
diff --git a/apps/drwho/SM_Client.h b/apps/drwho/SM_Client.h
deleted file mode 100644
index 0a262f71c78..00000000000
--- a/apps/drwho/SM_Client.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SM_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SM_CLIENT_H
-#define _SM_CLIENT_H
-
-#include "PM_Client.h"
-#include "CM_Client.h"
-#include "Select_Manager.h"
-
-class SM_Client : public Select_Manager, public CM_Client
-{
-public:
- SM_Client (void);
- virtual ~SM_Client (void);
-
- virtual int mux (char *packet, int &packet_length);
- virtual int demux (char *packet, int &packet_length);
- virtual void process (void);
-
-private:
- PM_Client *pm_client;
-};
-
-#endif /* _SM_CLIENT_H */
diff --git a/apps/drwho/SM_Server.cpp b/apps/drwho/SM_Server.cpp
deleted file mode 100644
index 6fb7569a5cd..00000000000
--- a/apps/drwho/SM_Server.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "PMS_All.h"
-#include "PMS_Flo.h"
-#include "PMS_Usr.h"
-#include "PMS_Ruser.h"
-#include "SM_Server.h"
-
-int
-SM_Server::demux (char *packet, int &packet_length)
-{
- switch (GET_PACKET_TYPE (packet))
- {
- case Options::PROTO_USR:
- ACE_NEW_RETURN (this->pm_server,
- PMS_Usr,
- -1);
- break;
- case Options::PROTO_ALL:
- ACE_NEW_RETURN (this->pm_server,
- PMS_All,
- -1);
- break;
- case Options::PROTO_FLO:
- ACE_NEW_RETURN (this->pm_server,
- PMS_Flo,
- -1);
- break;
- case Options::PROTO_RUSER:
- ACE_NEW_RETURN (this->pm_server,
- PMS_Ruser,
- -1);
- break;
- default:
- ACE_DEBUG ((LM_DEBUG,
- "%s: bad protocol\n",
- Options::program_name));
- return -1;
- }
-
- packet_length = SUBTRACT_PACKET_TYPE (packet_length);
-
- if (pm_server->decode (SKIP_PACKET_TYPE (packet),
- packet_length) < 0)
- return -1;
-
- if (pm_server->process () < 0)
- return -1;
-
- return 1;
-}
-
-int
-SM_Server::mux (char *packet,
- int &packet_length)
-{
- return pm_server->encode (packet, packet_length);
-}
-
-SM_Server::SM_Server (void)
-{
-}
-
-SM_Server::~SM_Server (void)
-{
-}
diff --git a/apps/drwho/SM_Server.h b/apps/drwho/SM_Server.h
deleted file mode 100644
index f9fbc9857d1..00000000000
--- a/apps/drwho/SM_Server.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SM_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SM_SERVER_H
-#define _SM_SERVER_H
-
-#include "PM_Server.h"
-#include "CM_Server.h"
-#include "Select_Manager.h"
-
-class SM_Server : public Select_Manager, public CM_Server
-{
-public:
- SM_Server (void);
- virtual ~SM_Server (void);
- virtual int mux (char *packet, int &packet_length);
- virtual int demux (char *packet, int &packet_length);
-
-private:
- PM_Server *pm_server;
-};
-
-#endif /* _SM_SERVER_H */
diff --git a/apps/drwho/Search_Struct.cpp b/apps/drwho/Search_Struct.cpp
deleted file mode 100644
index e796353b987..00000000000
--- a/apps/drwho/Search_Struct.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "Search_Struct.h"
-
-Search_Struct::~Search_Struct (void)
-{
- if (Options::get_opt (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "disposing Search_Struct\n"));
-}
-
-Search_Struct::Search_Struct (void)
- : count_ (0)
-{}
-
-int
-Search_Struct::n_elems (void)
-{
- return this->count_;
-}
-
diff --git a/apps/drwho/Search_Struct.h b/apps/drwho/Search_Struct.h
deleted file mode 100644
index c45dcbf6086..00000000000
--- a/apps/drwho/Search_Struct.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Search_Struct.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SEARCH_STRUCT_H
-#define _SEARCH_STRUCT_H
-
-#include "Protocol_Record.h"
-
-class Search_Struct
-{
- // = TITLE
- // Provides an "Abstract Base Class" lookup table abstraction that
- // stores and manipulates friend records.
-public:
- Search_Struct (void);
- virtual ~Search_Struct (void);
- virtual int n_elems (void);
-
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN) = 0;
- virtual Protocol_Record *get_next_entry (void) = 0;
- virtual Protocol_Record *get_each_entry (void) = 0;
-
-protected:
- int count_;
-};
-
-#endif /* _SEARCH_STRUCT_H */
diff --git a/apps/drwho/Select_Manager.h b/apps/drwho/Select_Manager.h
deleted file mode 100644
index 0f6af73e443..00000000000
--- a/apps/drwho/Select_Manager.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Select_Manager.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SELECT_MANAGER_H
-#define _SELECT_MANAGER_H
-
-class Select_Manager
-{
-public:
- virtual int mux (char *packet,
- int &packet_length) = 0 ;
-
- virtual int demux (char *packet,
- int &packet_length) = 0;
-};
-
-#endif /* _SELECT_MANAGER_H */
diff --git a/apps/drwho/Single_Lookup.cpp b/apps/drwho/Single_Lookup.cpp
deleted file mode 100644
index 07b981c69b1..00000000000
--- a/apps/drwho/Single_Lookup.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "Single_Lookup.h"
-
-Single_Lookup::Single_Lookup (const char *usr_name)
-{
- ACE_NEW (this->prp_,
- Protocol_Record (ACE::strnew (usr_name)));
-}
-
-Single_Lookup::~Single_Lookup (void)
-{
- if (Options::get_opt (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "disposing Single_Lookup\n"));
-}
-
-Protocol_Record *
-Single_Lookup::get_each_entry (void)
-{
- return this->prp_;
-}
-
-Protocol_Record *
-Single_Lookup::get_next_entry (void)
-{
- return this->get_each_entry ();
-}
diff --git a/apps/drwho/Single_Lookup.h b/apps/drwho/Single_Lookup.h
deleted file mode 100644
index fa86301215e..00000000000
--- a/apps/drwho/Single_Lookup.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Single_Lookup.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SINGLE_LOOKUP_H
-#define _SINGLE_LOOKUP_H
-
-#include "Options.h"
-#include "Search_Struct.h"
-
-class Single_Lookup : public Search_Struct
-{
- // = DESCRIPTION
- // Provides the client's single user lookup table abstraction.
-public:
- Single_Lookup (const char *usr_name);
- virtual ~Single_Lookup (void);
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN) = 0;
- virtual Protocol_Record *get_next_entry (void);
- virtual Protocol_Record *get_each_entry (void);
-
-protected:
- Protocol_Record *prp_;
-};
-
-#endif /* _SINGLE_LOOKUP_H */
diff --git a/apps/drwho/client.cpp b/apps/drwho/client.cpp
deleted file mode 100644
index c1f2013b6ee..00000000000
--- a/apps/drwho/client.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// client.cpp
-//
-// = DESCRIPTION
-// Client driver program for drwho.
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#include "Options.h"
-#include "SML_Client.h"
-#include "SMR_Client.h"
-
-// Factory function.
-
-static SM_Client *
-make_client (void)
-{
- SM_Client *client = 0;
-
- if (Options::get_opt (Options::REMOTE_USAGE) == 0)
- ACE_NEW_RETURN (client,
- SML_Client,
- 0);
- else
- ACE_NEW_RETURN (client,
- SMR_Client (Options::port_number),
- 0);
- return client;
-}
-
-int
-main (int argc, char *argv[])
-{
- Options::set_options (argc, argv);
-
- SM_Client *sm_client = make_client ();
-
- if (sm_client->send () < 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- Options::program_name),
- -1);
-
- if (sm_client->receive (Options::max_server_timeout) < 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- Options::program_name),
- -1);
-
- sm_client->process ();
-
- return 0;
-}
diff --git a/apps/drwho/global.h b/apps/drwho/global.h
deleted file mode 100644
index d049bd3f43d..00000000000
--- a/apps/drwho/global.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// global.h
-//
-// = DESCRIPTION
-// Here are all the declarations that are needed throughout the program. */
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _GLOBAL_H
-#define _GLOBAL_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// These constants are used throughout drwho.
-
-enum
-{
- MAXUSERIDNAMELEN = 8,
- MAX_USER_TIMEOUT = 300,
- MAX_HOST_TIMEOUT = 300,
- UDP_PACKET_SIZE = 1024 * 8,
- PORT_NUMBER = 12344
-};
-
-// Default name of file where friends info is stored.
-#define FRIEND_FILE ".friends.dta"
-
-// Default name where rwho info is stored.
-#define RWHODIR "/usr/spool/rwho"
-
-// Macros for handling message types.
-#define GET_PACKET_TYPE(P) (ntohs (*((short *) P)))
-#define SET_PACKET_TYPE(P,T) ((*(short *) P) = ntohs (T))
-#define SKIP_PACKET_TYPE(P) ((P) + sizeof (short))
-#define SUBTRACT_PACKET_TYPE(L) ((L) - sizeof (short))
-
-#endif /* _GLOBAL_H */
diff --git a/apps/drwho/server.cpp b/apps/drwho/server.cpp
deleted file mode 100644
index 15ffb574012..00000000000
--- a/apps/drwho/server.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// server.cpp
-//
-// = DESCRIPTION
-// Driver program for the server. Note that it is easy to reuse the
-// server for other distributed programs. Pretty much all that must
-// change are the functions registered with the communciations
-// manager.
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#include "Options.h"
-#include "SMR_Server.h"
-
-static char *
-tstamp (void)
-{
- time_t time_now;
- char *temp;
-
- time_now = ACE_OS::time (0);
- temp = ACE_OS::asctime (ACE_OS::localtime (&time_now));
- temp[12] = 0;
- return temp;
-}
-
-// Catch the obvious signals and die with dignity...
-
-static void
-exit_server (int sig)
-{
- ACE_DEBUG ((LM_DEBUG,
- "%s exiting on signal %S\n",
- tstamp (),
- sig));
- ACE_OS::exit (0);
-}
-
-// Returns TRUE if the program was started by INETD.
-
-static int
-started_by_inetd (void)
-{
- sockaddr_in sin;
- int size = sizeof sin;
-
- return ACE_OS::getsockname (0,
- (sockaddr *) &sin,
- &size) == 0;
-}
-
-// Does the drwho service.
-
-static void
-do_drwho (SMR_Server &smr_server)
-{
- if (smr_server.receive () == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- Options::program_name));
-
- if (smr_server.send () == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- Options::program_name));
-}
-
-// If the server is started with any argument at all then it doesn't
-// fork off a child process to do the work. This is useful when
-// debugging!
-
-int
-main (int argc, char *argv[])
-{
- ACE_OS::signal (SIGTERM, exit_server);
- ACE_OS::signal (SIGINT, exit_server);
- ACE_OS::signal (SIGQUIT, exit_server);
-
- Options::set_options (argc, argv);
- Options::set_opt (Options::STAND_ALONE_SERVER);
-
- int inetd_controlled = started_by_inetd ();
-
- if (!inetd_controlled && Options::get_opt (Options::BE_A_DAEMON))
- ACE::daemonize ();
-
- SMR_Server smr_server (Options::port_number);
-
- if (inetd_controlled)
- do_drwho (smr_server);
- else
- {
-
- for (;;)
- do_drwho (smr_server);
-
- /* NOTREACHED */
- }
-
- return 0;
-}
diff --git a/apps/gperf/COPYING b/apps/gperf/COPYING
deleted file mode 100644
index 60549be514a..00000000000
--- a/apps/gperf/COPYING
+++ /dev/null
@@ -1,340 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/apps/gperf/ChangeLog b/apps/gperf/ChangeLog
deleted file mode 100644
index b610fa6afa4..00000000000
--- a/apps/gperf/ChangeLog
+++ /dev/null
@@ -1,1840 +0,0 @@
-Thu Jul 1 09:31:32 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * Makefile:
- If we are cross compiling we shouldn't compile gperf, it is not
- going to help anyway, because we could not run it.
-
-Sun Jun 27 20:40:30 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * src/Key_List.cpp: Added some initializers to keep EGCS from
- complaining.
-
-Wed Jun 23 07:24:58 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Key_List.cpp (output_hash_function): Use conditional
- compilation rather than a runtime check to test if
- ACE_STANDARD_CHARACTER_SET_SIZE == ACE_EBCDIC_SIZE. This
- suppresses a warning on DEC UNIX. Thanks to David Levine for
- reporting this.
-
-Fri Jun 18 16:54:43 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * apps/gperf/src/Key_List.cpp (output_lookup_array): Prefixed
- debug message with "GPERF".
-
-Thu Jun 17 18:04:30 1999 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * tests/test-[1-5].exp: Fixed all the tests to account for the new
- EBCDIC output.
-
-Thu Jun 17 17:25:00 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Key_List.cpp (output_hash_function): Generate an asso_values
- table that will have the appropriate values for both EBCDIC or
- ASCII, depending on the platform.
-
- * src/Key_List.cpp (output_hash_function),
- src/Gen_Perf.cpp (Gen_Perf),
- src/Vectors.h: Replaced the use of ALPHA_SIZE with
- ACE_STANDARD_CHARACTER_SET_SIZE, which works correctly for
- EBCDIC platforms, as well as ASCII ones. Thanks to
- Jim Rogers <jrogers@viasoft.com> for this suggestion.
-
-Wed Jun 16 19:08:01 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Key_List.cpp: Fixed the key_word table generation so that it
- generates the "default fill" string for the null entries in the
- table. Thanks to Irfan and Naga for helping in this.
-
-Sun Jun 6 15:47:23 1999 Douglas C. Schmidt <schmidt@danzon.cs.wustl.edu>
-
- * src/Key_List.cpp (output_switch): Make sure to generate "const
- char *resword;" rather than "char *resword" since otherwise C++
- compilers correctly complain.
-
- * tests: Fixed a bunch of warnings related to misuses of "const
- char *".
-
-Sun Jun 6 10:30:09 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/test-4.exp: Fixed another use of "index". Thanks to David
- Levine for reporting this.
-
-Sat Jun 5 23:17:39 1999 Douglas C. Schmidt <schmidt@danzon.cs.wustl.edu>
-
- * Replaced all uses of "index" with "slot" to avoid problems with
- broken C++ compilers that define a macro called "index".
-
-Tue May 4 14:24:27 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Options.cpp (parse_args): Removed %a flag from -v option and
- used ACE_OS::exit (0) instead.
-
-Mon Apr 26 15:42:54 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * tests/test-{1,2,3,4,5}.exp: Forgot to update the expected test
- output to reflect the version string update listed below.
-
-Mon Apr 26 10:42:08 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * src/Version.cpp (version_string): Updated version string to "2.8
- (ACE version)" since 2.7 is used by the old Cygnus maintained
- gperf.
-
- * src/*.{h,cpp}: Updated copyright/distribution information to GPL
- v2 style notice.
-
-Sun Apr 25 16:16:12 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * mdate-sh: Added this file to the CVS repository. It will be
- used once the auto{conf,make} integrations are in place.
-
-Sun Apr 25 16:13:40 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * COPYING: Updated to GPL version 2.
-
-Sat Apr 24 18:18:35 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * gperf.1:
- * gperf.info:
- * gperf.texi: Added missing quote, cosmetic fix, regenerated
- gperf.info.
-
- * src/Key_List.cpp
- * src/Options.h:
- * src/Options.cpp: Merged Cygnus patch that allows the user to
- specify a default fill expression/value in the keyword table.
- Updated help message with new `-F' option. Made some cosmetic
- fixes to the help message, too.
-
- * tests/test.cpp: Minor spelling correction in comment
-
- * tests/test-6.exp: Updated with new expected gperf output.
-
-Mon Nov 9 23:37:09 1998 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * src/Key_List.cpp: Fixed the problem with Binary and Linear
- Search code.
-
-Sat Oct 10 18:40:56 1998 Vishal Kachroo <vishal@merengue.cs.wustl.edu>
-
- * tests/test-6.exp (Usage): copied the output of gperf -h option
- into test-6.exp. This test was failing because it didn't have
- the -b option previously. Thanks to David for reporting the
- failure of tests.
-
- * src/Options.cpp : Changed the option case 'h' to include the
- following line " -b/t Code for Linear Search".
-
-Fri Oct 9 01:06:56 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Options.cpp :
- * src/Key_List.cpp (output_linear_search_function): Changed option
- -z to -b for generating linear search. Removed <len> parameter
- from the lookup code. We dont need <len> in the generated code
- in the case of linear/binary search options.
-
-Thu Oct 8 17:40:19 1998 Vishal Kachroo <vishal@merengue.cs.wustl.edu>
-
- * src/Gen_Perf.cpp (run): added the linear search changes.
- * src/Gen_Perf.h : added the linear search changes.
- * src/Options.cpp : added the linear search changes.
- * src/Options.h : added the linear search changes.
- * src/Key_List.cpp : added the linear search changes.
- * src/Key_List.h : added the linear search changes.
-
-
-Wed Oct 7 01:20:35 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * tests/test-6.exp:
- Updated thif file to the current help message. Thanks to Hans
- for reporting this.
-
-Tue Oct 6 11:51:47 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Key_List.cpp (Key_List): Fixed g++ warnings.
-
-Tue Oct 6 02:48:37 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- Thanks to Vishal the following things have been done to get Binary
- Search code generated from GPERF.
-
- * src/Options.cpp (parse_args): Added the -B option for the binary
- search.
-
- * src/Options.h (enum Option_Type): Added the BINARYSEARCH in the
- enumeration.
-
- * src/Key_List.cpp : Added the function
- output_binary_search_function(void). Changed the output function
- to include the Binary Search option. Used option[BINARYSEARCH]
- to distinguish the binary search case from the hashing case.
-
- * src/Key_List.h : Added the prototype for
- output_binary_search_function. Also added the key_sort variable
- to enable sorting based on key values.
-
-
-Mon Oct 5 18:24:15 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Gen_Perf: Created a new function that allows us to split the
- binary search and perfect hash logic apart. Thanks to Vishal
- and Alex for reporting this.
-
- * src/Key_List.cpp (dump): Fixed the unsigned problems with line
- 1502 YET again... Thanks to David/Darrell for reporting this.
-
-Sun Oct 4 20:42:56 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src: Fixed yet another problem with switching from array-based
- lookups to switch-based lookups. Thanks to Carlos for reporting
- this.
-
-Sat Oct 3 19:36:52 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Options.h:
- * src/Options.cpp:
- * src/Key_List.h:
- * src/Key_List.cpp: Reverted all the changes done for Binary
- Search.
-
-Sat Oct 3 17:51:10 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/test-6.exp: Added the new -B option.
-
-Sat Oct 3 13:47:40 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Key_List.cpp (output_binary_search_function): Added a new
- line after binary search code.
-
-Sat Oct 3 10:11:15 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Options.cpp (parse_args): Changed the option for binary
- search to '-B'
-
-Fri Oct 2 21:38:54 1998 Vishal Kachroo <vishal@merengue.cs.wustl.edu>
-
- * src/Options.cpp (parse_args): Added the -b option for the binary
- search.
-
- * src/Options.h (enum Option_Type): Added the BINARYSEARCH in the
- enumeration.
-
- * src/Key_List.cpp : Added the function
- output_binary_search_function (void). Changed the output
- function to include the Binary Search option. Used
- option[BINARYSEARCH] to distinguish the binary search case from
- the hashing case.
-
- * src/Key_List.h : Added the prototype for
- output_binary_search_function. Also added the key_sort variable
- to enable sorting based on key values.
-
-Thu Oct 1 12:40:59 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Options.cpp (parse_args): Comments for Vishal to incorporate
- Binary Seach on to GPERF.
-
-Wed Sep 30 16:55:53 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/Makefile: Updated dependencies, added a realclean target
- to remove the output from the tests.
-
-Wed Sep 30 12:41:29 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Key_List.cpp (dump): Fixed another signed/unsigned int
- mismatch. Thanks to David Levine for reporting this.
-
-Mon Sep 28 13:18:05 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests: Updated all the test-*.exp files to reflect the latest
- "unsigned" changes.
-
- * src/Key_List.cpp (output_hash_function): Fixed another use of
- int to be unsigned int.
-
- * tests/test.cpp: Fixed the signature of in_word_set() to be
- consistent with the new gperf. Thanks to David Levine and
- Carlos O'Ryan for this fix.
-
-Sun Sep 27 00:04:18 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Key_List.cpp (dump): Reverted back to using int for
- keyword_width to keep certain compilers happy. Thanks to David
- Levine for reporting this.
-
- * src/Key_List: MAke sure that we don't generate the lookup table
- twice if we're forced to change to the switch format.
-
- * src/Key_List: Replaced the use of "int" with "unsigned int" for
- parameters and hash values.
-
- * src/Key_List: Fixed the code so that if we change over to using
- the switch statement then we use the already generated keyword
- table appropriately. This prevents unnecessary warnings from
- some C++ compilers. Thanks to David Levine for reporting this.
-
- * src/Key_List.cpp (output): If it's not possible to use the
- lookup_array implementation of -D (e.g., because there aren't
- enough empty slots in the lookup_array), then default to using
- -S1 option... This fixes a nasty bug that's been in gperf for
- years....
-
- * src/Key_List.cpp: (output_lookup_array): Added a "return 0" to
- make the C++ compiler happy. Thanks to David for noticing this.
-
- * tests/c++-res.exp: Added a new test for C++ keywords.
-
- * tests/corba.gperf: Added a proper test for CORBA keywords.
-
-Sat Sep 26 15:32:56 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Hash_Table.cpp (find): Fixed a bug in the increment
- computation that arose if the -n option was given.
-
- * src: Removed all set_ and get_ prefixes to be more consistent
- with ACE programming guidelines.
-
- * src: GPERF now Purifies cleanly.
-
- * src/Gen_Perf: Cleaned up the code so that if errors occur they
- get handled properly.
-
- * src/List_Node: Added a destructor to remove the memory when
- we're done.
-
- * src: Continued to tidy up the source code so that it is better
- designed and Purifies cleanly on shutdown.
-
- * src/Makefile: Removed the need for libGperf.{a,so}.
-
- * src/Key_List: Changed read_keys() to return a value so that we
- can check for errors.
-
-Fri Sep 25 08:54:41 1998 David L. Levine <levine@cs.wustl.edu>
-
- * src/Key_List.cpp (Key_List ctor): reordered initializers to
- match declaration order.
-
-Thu Sep 24 18:20:36 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Key_List: Changed char_set field to keysig to be consistent
- with the paper.
-
- * src/Hash_Table: Renamed operator() to find(). What the heck was
- I thinking in '92?!
-
- * src/gperf.cpp (main): Removed the LARGE_STACK_ARRAYS option.
- This was annoying...
-
-Tue Sep 22 21:30:59 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/corba.exp: added this file, it hadn't been checked in.
-
-Tue Sep 22 18:02:01 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Makefile: Added a new test for CORBA keywords.
-
- * tests: Added a new test for the type of input that is causing
- problems with TAO's IDL compiler.
-
- * src/Key_List.cpp (output_lookup_array): Changed the assertion
- from assert (i != 0) to assert (i >= 0) since I think that's
- correct... (ah, so THAT's why comments are important thinks the
- '92 Doug... ;-)).
-
- * src/Options: Improved the comments for the '-h' option to
- reflect current reality...
-
-Thu Sep 17 11:42:53 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Key_List.cpp (output_lookup_array): Put 'signed' keyword
- before 'char lookup' to avoid problems on platforms where char
- is defined as unsigned. Thanks to Margherita Vittone Wiersma
- <vittone@fndaub.fnal.gov> for reporting this.
-
-Wed Sep 16 19:08:13 1998 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile: don't run build/run tests on CROSS-COMPILE platforms.
- Thanks to Raja Ati <rati@montereynets.com> for reporting this
- problem.
-
-Wed Sep 16 18:18:41 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Makefile: Changed CFLAGS to CCFLAGS to make aCC happy on
- HP/UX. Thanks to John Mulhern for reporting this.
-
-Tue Sep 15 18:14:08 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/test-6.exp (Usage): Fixed the usage so diff should no
- longer complain... Thanks to David for reporting this.
-
-Tue Sep 15 21:54:07 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Makefile: filter timestamps from test output so that
- diffs will pass.
-
-Tue Sep 15 18:14:08 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests: Updated the expected output to look for 2.7 vs 2.6
- of gperf.
-
-Thu Sep 10 16:50:21 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/Makefile:
- The test programs were not linking against ACE.
-
-Tue Sep 8 12:45:53 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/test.cpp: Added #include "ace/OS.h" so that the ACE_RCSID
- macro is defined. Thanks to Arturo Montes
- <mitosys@colomsat.net.co> for reporting this.
-
-Sat Aug 22 08:44:15 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Options.cpp : Fixed the typo (-V instead of -v) under 'case
- h' print string.
-
-Fri Aug 21 11:57:57 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Key_List.cpp (set_output_types): Make sure that we leave an
- extra space between the struct tag and the wordlist so the
- compiler doesn't complain. Thanks to Andy Gokhale for reporting
- this.
-
- * src/gperf.cpp: Modified the main() program so that it doesn't
- print the starting time until AFTER we've parsed the arguments.
-
- * src/Version.cpp: Updated the version to 2.7 to reflect the
- new changes.
-
- * src/Options.cpp (operator): Added a new -V option, which just
- exits with a value of 0. This is useful for checking if gperf
- exists in the search path. We use the feature in TAO.
-
- * src: Removed the globally overloaded new operator. This was a
- portability pain and didn't really improve performance very
- much.
-
- * src/Options.cpp (operator): Fixed '%e' to be '%r' to come up to
- speed with ACE changes.
-
-Sat Aug 15 07:59:58 1998 David L. Levine <levine@cs.wustl.edu>
-
- * src/gperf.cpp (main): added ACE_UNUSED_ARGS for argc and
- argv if ! ACE_HAS_GPERF.
-
-Fri Aug 14 13:47:00 1998 David L. Levine <levine@cs.wustl.edu>
-
- * src/new.cpp (delete): aded ACE_UNUSED_ARG (ptr).
-
-Fri Jul 31 18:28:45 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * src/Bool_Array.cpp:
- * src/Gen_Perf.cpp:
- * src/Hash_Table.cpp:
- * src/Iterator.cpp:
- * src/Key_List.cpp:
- * src/List_Node.cpp:
- * src/Options.cpp:
- * src/Vectors.cpp:
- * src/Version.cpp:
- * src/gperf.cpp:
- * src/new.cpp:
- * tests/test.cpp:
- Added ACE_RCSID to these files.
-
-Tue Jul 21 09:30:51 1998 David L. Levine <levine@cs.wustl.edu>
-
- * src/gperf.cpp (main): added a trivial main () if ! ACE_HAS_GPERF,
- so that the link succeeds.
-
-Mon Jul 20 16:02:18 1998 David L. Levine <levine@cs.wustl.edu>
-
- * src/Makefile: fixed INSTALL. It works with the latest
- $ACE_ROOT/include/makeinclude/rules.lib.GNU.
-
-Mon Jul 20 15:35:59 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * Wrapped all the files with "#if defined (ACE_HAS_GPERF)" so that
- it compiles on appropriate platforms.
-
-Sun Jul 19 22:21:17 1998 David L. Levine <levine@cs.wustl.edu>
-
- * src/new.cpp (new): wrapped assignment with parens where used
- as a conditional.
-
- * src/Iterator.cpp (Iterator), List_Node.cpp (List_Node),
- Hash_Table.cpp (Hash_Table):
- reordered initializers to match declaration order.
-
- * src/Hash_Table.cpp (~Hash_Table),
- * src/Bool_Array.cpp (init): cast sizeof
- to int to avoid compiler (g++/Linux alpha) warning about
- mismatch with %d format specifier.
-
- * src/new.cpp (new): use ACE_THROW_SPEC instead of
- _RWSTD_THROW_SPEC.
-
-Sun Jul 19 13:11:59 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/new.cpp: Added support for the _RWSTD_THROW_SPEC macro for
- DEC UNIX. Thanks to David Levine for reporting this.
-
- * src/Key_List.cpp: Fixed one of those nasty "for loop counter
- scoping glitches. Again, thanks to David Levine and DEC C++ for
- catching this. * src/Key_List.cpp (reorder): Clarified the code
- so that we don't write horrible C-style hacks. Thanks to David
- Levine and the DEC C++ compiler for finding this one!
-
-Tue Jun 30 15:43:16 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Options.h :
- * src/Options.cpp :
- * src/Key_List.cpp : Added the following options to gperf.
- - "-m" To mute warnings. (If -D option is enabled,
- gperf doesnt say anything about duplicate hash
- values etc.
- - "-M" To skip class definition while in C++ mode.
- - "-J" To skip the line "#include <string.h>" in the
- output.
-
-Thu May 14 16:37:39 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * src: ACE'ifed most of the gperf source code, yow!
-
-Sun Apr 14 14:31:10 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * src: Changed things so that there's no longer any use of the
- Read_Line and Std_Err code. All of this has been pushed into
- the ACE components, which is where it belongs...
-
- * src: Changed things so that there's no longer any use of the
- pointless inheritance in the code. This was a result of my not
- understanding inheritance back in 1989... ;-)
-
- * Began to integrate GNU gperf into the ACE release. Started off
- by bringing the standard GNU version up to date wrt to the
- changes I made back in 1991!
-
-Tue Oct 10 16:37:28 1995 Mike Stump <mrs@cygnus.com>
-
- * src/new.cc: Since malloc/delete are not paired, we cannot call
- free.
-
-Wed Jan 4 12:40:14 1995 Per Bothner <bothner@kalessin.cygnus.com>
-
- * src/Makefile.in ($(TARGETPROG)): Link with $(LDFLAGS).
- Patch from John Interrante <interran@uluru.stanford.edu>.
-
-Sat Nov 5 19:12:48 1994 Jason Merrill (jason@phydeaux.cygnus.com)
-
- * src/Makefile.in (LIBS): Remove.
-
-Tue Oct 18 17:51:14 1994 Per Bothner <bothner@kalessin.cygnus.com>
-
- * src/std-err.cc: Use stderror, instead of the non-standard
- sys_nerr and sys_errlist.
-
-Sat Sep 17 22:02:13 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * src/key-list.cc (output_hash_function):
- Patch from William Bader <wbader@CSEE.Lehigh.Edu>.
-
-Fri Jul 15 09:38:11 1994 Per Bothner (bothner@cygnus.com)
-
- * src/std-err.cc: #include <errno.h>, and only declare
- extern int errno if errno is not a macro.
-
-Mon May 30 17:29:34 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in (src_all, install): Make sure to add '/' after
- `pwd` in $rootme, as expected by FLAGS_TO_PASS.
-
-Wed May 11 00:47:22 1994 Jason Merrill (jason@deneb.cygnus.com)
-
- Make libg++ build with gcc -ansi -pedantic-errors
- * src/options.h: Lose commas at end of enumerator lists.
-
-Sun Dec 5 19:16:40 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
-
- * src/hash-table.cc (Hash_Table::~Hash_Table): Don't pass an
- argument to fprintf, since it's not expecting one.
-
-Fri Nov 26 19:03:18 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * src/list-node.cc: #undef index, for the sake of broken NeXT,
-
-Thu Nov 4 11:16:03 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in (install): Use INSTALL_DATA for gperf.1.
-
-Mon Oct 25 18:40:51 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * src/key-list.cc (Key_List::read_keys): Use POW macro
- to increase hash table size to power of 2.
-
- * options.h (LARGE_STACK_ARRAYS): New flag. Defaults to zero.
- * gen-perf.cc, key-list.cc, read-line.cc:
- Only stack-allocate large arrays if LARGE_STACK_ARRAYS is set.
- * main.cc (main): Only call setrlimit (RLIMIT_STACK, ...)
- if LARGE_STACK_ARRAYS.
-
-Mon Oct 4 17:45:08 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * src/gen-perf.cc: Always use ANSI rand/srand instead of BSDisms.
-
-Wed Aug 18 12:19:53 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in (src_all): Make less verbose output.
-
-Fri May 28 14:01:18 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * src/gen-perf.cc (Gen_Perf::change): Don't use gcc-specific
- 2-operand conditional expression.
- * src/key-list.cc (Key_List::output_lookup_array):
- Don't use variable-size stack arrays, unless compiled by g++.
-
-Tue May 4 14:08:44 1993 Per Bothner (bothner@cygnus.com)
-
- Changes (mostly from Peter Schauer) to permit compilation
- using cfront 3.0 and otherwise be ARM-conforming.
- * src/key-list.h: class Key_List must use public derivation
- of base class Std_Err (because Gen_Perf::operator() in gen-perf.cc
- calls Std_Err::report_error).
- * src/gen-perf.cc (Gen_Perf::affects_prev), src/hash-table.cc
- (Hash_Table::operator()): Don't use gcc-specific 2-operand
- conditional expression.
- * src/iterator.cc (Iterator::operator()): Don't use gcc-specific
- range construct in case label.
- * key-list.cc (Key_List::output_lookup_array, Key_List::read_keys),
- src/gen-perf.cc (Gen_Perf::operator(), src/read-line.cc
- (Read_Line::readln_aux): If not gcc, don't allocate
- variable-sized arrays on stack.
- * src/new.cc (operator new): Argument type should be size_t.
- * key-list.cc (Key_List::output_lookup_array, Key_List::read_keys),
- new/cc (::operator new): Don't use non-standard >?= operator.
-
-Tue Apr 27 20:11:30 1993 Per Bothner (bothner@cygnus.com)
-
- * src/Makefile.in: Define TARGETPROG, and use it.
-
-Mon Apr 19 00:29:18 1993 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in, configure.in: Re-vamped configure scheme.
- * gperf.texinfo: Renamed to gperf.texi.
- * src/bool-array.{h,cc}: ANSIfy bzero->memset.
-
-Sat Jan 30 20:21:28 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
-
- * tests/Makefile.in (mostlyclean): Also delete aout, cout, m3out,
- pout, and preout.
-
-Tue Dec 29 08:58:17 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in: pass $(FLAGS_TO_PASS) to all calls to make.
- (FLAGS_TO_PASS): added INSTALL, INSTALL_DATA, INSTALL_PROGRAM.
-
-Mon Dec 21 18:46:46 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * tests/expected.* renamed to *.exp to fit in 14 chars.
- * tests/Makefile.in: Update accordingly.
- Also rename output.* to *.out.
- * src/Makefile.in (clean): Remove gperf program.
-
-Wed Dec 9 14:33:34 1992 Per Bothner (bothner@cygnus.com)
-
- * src/hash-table.cc, src/bool-array.h: ANSIfy bzero->memset.
-
-Thu Dec 3 19:34:12 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in (distclean, realclean): Don't delete
- Makefile before recursing.
-
-Fri Nov 6 13:41:49 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * key-list.{h,cc}: Remove MAX_INT (and similar) constant
- fields from Key_List class, and use INT_MAX (etc) from limits.h.
- * key-list.{h,cc}, options.{h,cc}, vectors.h: Removed all
- uses of initialized const fields, as they are non-standard
- - and their use was easy to do away with. Mostly, just
- made the constants static non-fields in the .cc file.
-
-Mon Nov 2 13:10:11 1992 Per Bothner (bothner@cygnus.com)
-
- * tests/Makefile.in: When generating cinset.c, don't pass -C,
- since -C assumes an ANSI compiler. Add the -C flag (with -a)
- when generating test.out.3 instead.
- * tests/expected.out.3: Update accordingly.
-
-Wed Aug 12 11:47:54 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in: Factor out common flags into $(FLAGS_TO_PASS).
- * Makefile.in: 'install-info' depends on gperf.info.
-
-Mon Aug 10 11:39:52 1992 Ian Lance Taylor (ian@dumbest.cygnus.com)
-
- * Makefile.in, src/Makefile.in: always create installation
- directories.
-
-Mon Jul 20 15:33:21 1992 Mike Stump (mrs@cygnus.com)
-
- * src/new.cc (operator new): Add cast from void * to char *,
- since it is not a standard conversion.
-
-Wed Jun 17 16:25:30 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * src/gen-perf.cc: #include <_G_config.h> for _G_SYSV.
- * src/key-list.cc: alloca() hair.
- * src/main.cc (main): Only call getrlimit if _G_HAVE_SYS_RESOURCE.
- * Makefile,in, {src,test}/Makefile.in: Fix *clean rules.
-
-Fri May 29 13:21:13 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * src/gen-perf.cc: Replace USG -> _G_SYSV.
-
-Thu May 14 13:58:36 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * src/Makefile.in: Don't pass obsolete flag -DUNLIMIT_STACK.
- * tests/Makefile.in (clean): Fix.
-
-Sat Mar 7 00:03:56 1992 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * gperf.texinfo: added menu item hook.
-
-Wed Feb 26 18:04:40 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in, configure.in: removed traces of namesubdir,
- -subdirs, $(subdir), $(unsubdir), some rcs triggers. Forced
- copyrights to '92, changed some from Cygnus to FSF.
-
-Sun Jan 26 19:21:58 1992 Per Bothner (bothner at cygnus.com)
-
- * tests/Makefile.in: Use re-directed stdin instead of file
- name in argv. This allows us to remove the filename
- from the output, the expected output, and hence the diffs.
- (Note that the input file is in $(srcdir), which we cannot
- place in the expected out files.)
- * tests/expected.out.[1235]: Edit out input filename,
- to match new output.
-
-Mon Nov 4 15:04:41 1991 Douglas C. Schmidt (schmidt at bastille.ics.uci.edu)
-
- * Need to do something about the end-of-line marker being
- hard-coded to '\n'...
-
- * Need to do something about the comment character being
- hard-coded to '#'...
-
-Fri Sep 27 09:30:15 1991 Douglas C. Schmidt (schmidt at net4.ics.uci.edu)
-
- * Fixed a stupid problem with printout out a local enum with the
- -E option (I forgot to check for the case of 0 duplicates, so it
- was saying 1 duplicate instead!).
-
-Mon Aug 19 00:39:40 1991 Douglas C. Schmidt (schmidt at javel.ics.uci.edu)
-
- * Yow, all finished making gperf run with cfront/Saber C++. Not
- really all that hard, actually, though did need to remove some
- GNU specific hacks, like dynamically sized arrays and
- initializing class data members in their declarations, etc.
-
- * Bumped up the version # to reflect the recent changes.
-
-Sun Aug 18 22:25:32 1991 Douglas C. Schmidt (schmidt at javel.ics.uci.edu)
-
- * Changed passage of Options::usage function in Options.C to have
- a leading `&' so that Saber C++ wouldn't complain...
-
- * Added a new header file called gperf.h that includes system-wide
- info.
-
- * Hacked up the release to work with Saber C++! Changed all *.cc
- files to *.C.
-
-Mon Aug 5 21:18:47 1991 Douglas C. Schmidt (schmidt at net1.ics.uci.edu)
-
- * Yow, hacked in the nifty changes to the Std_Err error handling
- abstraction. This now adds format string support for printing
- out signals and the name of the function when things go wrong.
- Make changes throughout the source to make use of the new
- facilities and also to make sure all previous uses of
- Std_Err::report_error are now prefixed by the name of the class.
-
-Tue Jul 30 00:02:39 1991 Douglas C. Schmidt (schmidt at net4.ics.uci.edu)
-
- * Make sure to add 1 to the Key_List::total_duplicates value when
- printing it out since any time we have more than zero duplicates
- we really have two or more duplicates!
-
- * Added support for the -O (optimize option). This option
- optimizes the generated lookup function by assuming that all
- input keywords are members of the keyset from the keyfile.
-
- * Added #define DUPLICATES and #define HASH_VALUE_RANGE (and of
- course the enum equivalent) to the generated output. Don't know
- how useful this will be, but it allows us to determine at a
- glance whether we've got a minimal perfect hash function (in
- which case TOTAL_KEYWORDS = HASH_VALUE_RANGE, and DUPLICATES =
- 0).
-
- * Fixed a small bug in the Key_List::output_keyword_table routine
- that caused an extra newline to be printed if there where no
- leading blank entries... (who cares, right?!)
-
-Mon Jul 29 22:05:40 1991 Douglas C. Schmidt (schmidt at net4.ics.uci.edu)
-
- * Modified the handling of the -E (emit enums rather than
- #defines) option in conjunction with the -G option. Now, if -G
- and -E are given the enums are generated outside the lookup
- function, rather than within it!
-
- * Yow, as part of my Software Practice and Experience submission
- writeup I realized I needed to make the # comment character work
- correctly. Now if you put a backslash character ('\') in front
- of the # it treats the first character as a #. Naturally, to
- put a '\' character on the front of the line you need to escape
- it also, i.e.,
- \\I'm a line that starts with only one \
- # I'm a comment line
- \#define I'm walking a fine line... ;-)
-
-Wed Jun 26 11:21:02 1991 Douglas C. Schmidt (schmidt at bastille.ics.uci.edu)
-
- * Changed all uses of the identifier `iteration_number' to
- `generation_number' (also updated the paper!).
-
-Tue Apr 9 07:59:42 1991 Doug Schmidt (schmidt at net4.ics.uci.edu)
-
- * Had to change a whole bunch of little thangs in key-list.cc and
- list-node.cc to make the -I option work.
-
- * Changed an alloca statement in key-list.cc to reflect the
- strncasecmp modification (i.e., we now need to be able to
- allocate a longer buffer if the -I option is used).
-
-Mon Apr 8 18:17:04 1991 Doug Schmidt (schmidt at net4.ics.uci.edu)
-
- * Yucko, there was a bug in the handling of -c (and of course the
- new -I command in key-list.cc). Apparently when I added the
- super-duper hack that provided support for duplicate keys I
- forgot to update the strcmp output...
-
- * Boy, it has been a *long* time since I hacked this puppy. Let's
- see, I'm about to add long-overdue support for case-insensitive
- string comparisons to gperf's generated output code. We are
- going to employ the hitherto unused option -I to indicte this!
-
-Thu Jun 28 16:17:27 1990 Doug Schmidt (schmidt at brilliant)
-
- * Wow, first fix on the new job! There was a dumb error
- in Key_List::output_lookup_function, where I printed the
- string "&wordlist[key]" instead of the correct "&wordlist[index]".
-
- * Added a couple of #ifdefs for USG support.
-
-Sun Jun 3 17:16:36 1990 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Updated the version number to 2.5 and sent to Doug Lea for release
- with the latest GNU libg++.
-
- * Changed the error handling when a keyword file cannot be opened
- (now calls perror).
-
-Wed May 30 14:49:40 1990 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Instrumented the source code with trace statements automagically
- inserted using my new automated trace instrumentation tool!
-
-Wed May 9 11:47:41 1990 Doug Schmidt (schmidt at siam.ics.uci.edu)
-
- * Really fixed the previous bug. Turns out that a small amount
- of logic had to be duplicated to handle static links that occur
- as part of dynamic link chains. What a pain!!!
-
-Tue May 8 23:11:44 1990 Doug Schmidt (schmidt at siam.ics.uci.edu)
-
- * Fixed a stupid bug in Key_List::output_lookup_array that was
- causing incorrect counts to be generated when there were both
- static and dynamic links occurring for the same hash value.
- Also simplified the code that performs the logic in this routine.
-
-Mon Apr 30 17:37:24 1990 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Fixed stupid bug in Key_List::output_lookup_array that was
- making the generated lookup[] array contain `chars' even
- when the values stored in the chars are greater than 127!
-
- * Changed the behavior of the -G (global table) option so that it
- will output the `length[]' array in the global scope along with
- the `word_list[]' array.
-
- * Fixed a stupid bug in Key_List::output_lookup_function that
- would always output the complicated `duplicate-handling' lookup
- logic, even when there were no duplicates in the input!
-
- * Yikes, had to modify a bunch of stuff in key-list.cc to correctly
- handle duplicate entries. Changed the generated code so that
- the MIN_HASH_VALUE is no longer subtracted off when calculating
- the hash value for a keyword. This required changing some other
- code by substituting MAX_HASH_VALUE for TOTAL_KEYS in several places.
- Finally, this means that the generated tables may contain leading
- null entries, but I suppose it is better to trade-off space to get
- faster performance...
-
-Mon Mar 26 13:08:43 1990 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Updated version number to 2.4 to reflect the latest changes.
-
- * Changed the main program so that it always prints out gperf's
- execution timings to the generated output file.
-
-Sun Mar 25 12:39:30 1990 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Added the -Z option so that users can specify the name of the
- generated class explicitly. Updated documentation to reflect
- this change.
-
- * Modified the generated C++ class interface so that the functions
- are declared static (to remove the overhead of passing the `this'
- pointer). This means that operator()() can no longer be used,
- since it only works on non-static member functions.
- Also changed things so that there is no constructor (why waste
- the extra call, when it doesn't do anything, eh?)
-
- * Modified the behavior of Key_List::output when the -L C++ option
- is enabled. Previously the code generated use const data members
- to record MIN_WORD_LENGTH, MIN_HASH_VALUE, etc. However, as
- pointed out by James Clark this may result in suboptimal behavior
- on the part of C++ compilers that can't inline these values.
- Therefore, the new behavior is identical to what happens with
- -L C, i.e., either #defines or function-specific enums are used.
- Why sacrifice speed for some abstract notion of `code purity?' ;-)
-
-Tue Mar 6 18:17:42 1990 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Added the -E option that defines constant values using an enum
- local to the lookup function rather than with #defines. This
- also means that different lookup functions can reside in the
- same file. Thanks to James Clark (jjc@ai.mit.edu).
-
-Sat Mar 3 20:19:00 1990 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Added a special case to key_list::output_switch that doesn't
- generate extra comparisons when the `-S' is given an argument
- of 1 (the normal case). This should speed up the generated
- code output a tad...
-
-Fri Feb 23 14:21:28 1990 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Renamed all instances of member function get_keysig_size
- to get_max_keysig_size, since this is more precise...
-
- * Changed all occurrences of charset to keysig (stands for ``key
- signature'') to reflect the new naming convention used in the
- USENIX paper.
-
-Thu Feb 22 11:28:36 1990 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Changed the name of the generated associated values table from
- asso_value to asso_values to reflect conventions in the USENIX
- C++ paper.
-
-Thu Feb 15 23:29:03 1990 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Updated the gperf.texinfo file to fix some formatting problems
- that had crept in since last time.
-
-Wed Feb 14 23:27:24 1990 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Fixed stupid bug in key-list.cc (get_special_input), wher
- gperf replaced each '%' with the succeeding character.
-
- * Added support for multiple target language generation. Currently
- handled languages are C and C++, with C as the default. Updated
- documentation and option handler to reflect the changes.
-
- * Added a global destructor to new.cc and removed the #ifdef, since
- the bloody thing now works with libg++.
-
-Mon Feb 14 13:00:00 1990 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Found out that my gperf paper was accepted at the upcoming
- USENIX C++ Conference in San Francisco. Yow!
-
-Tue Jan 30 09:00:29 1990 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * #ifdef'd out the new.cc memory allocator, since there are
- problems with this and the libg++ stuff.
-
- * Changed key-list.h so that class Vectors is a public (rather
- than private) base class for class Key_List. The previous
- form was illegal C++, but wasn't being caught by the old
- g++ compiler. Should work now... ;-)
-
-Sun Dec 10 14:08:23 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added several changes from rfg@ics.uci.edu. These changes
- help to automate the build process.
-
-Wed Nov 15 15:49:33 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Removed conditional compilation for GATHER_STATISTICS. There's
- really no good reason to avoid collecting this info at run-time,
- since that section of code is *hardly* the bottleneck... ;-)
-
- * Simplified the C output routines in Key_List::set_output_types
- and Key_List::output_keyword_table a bit in order to
- speed-up and clean up the code generation.
-
- * Modified function Key_List::get_special_input so that it does
- not try to `delete' a buffer that turned out to be too short.
- This is important since the new memory management scheme
- does not handle deletions. However, adding a small amount of
- garbage won't hurt anything, since we generally don't do this
- operation more than a couple times *at most*!
-
- * Created a new file (new.cc) which includes my own overloaded
- operator new. This function should dramatically reduce the
- number of calls to malloc since it grabs large chunks and
- doles them out in small pieces. As a result of this change
- the class-specific `operator new' was removed from class List_Node.
-
-Tue Nov 14 21:45:30 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Continued to refine the great hack. The latest trick is to
- try and replace most uses of dynamic memory (i.e., calls to
- new) with uses of gcc dynamic arrays (i.e., an alloca solution).
- This makes life much easier for the overall process-size, since
- it reduces the amount of overhead for memory management. As a
- side-effect from this change there is no reason to have the
- Bool_Array::dispose member function, so it's outta here!
-
- * Fixed a stupid bug that was an disaster waiting to happen...
- Instead of making the boolean array large enough to index
- max_hash_value it was only large enough to index max_hash_value
- - 1. Once again, an off-by-one mistake in C/C++!!!!
-
-Mon Nov 13 19:38:27 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added the final great hack! This allows us to generate hash tables
- for near-perfect hash functions that contain duplicates, *without*
- having to use switch statements! Since many compilers die on large
- switch statements this feature is essential. Furthermore, it appears
- that the generated code is often *smaller* than that put out by
- compilers, even though a large, sparse array must be created.
- Here's the general idea:
-
- a. Generate the wordlist as a contiguous block of keywords,
- just as before when using a switch statement. This
- wordlist *must* be sorted by hash value.
-
- b. Generate the lookup array, which is an array of signed
- {chars,shorts,ints}, (which ever allows full coverage of
- the wordlist dimensions). If the value v, where v =
- lookup[hash(str,len)], is >= 0 and < TOTAL_KEYWORDS, then we
- simply use this result as a direct access into the wordlist
- array to snag the keyword for comparison.
-
- c. Otherwise, if v is < -TOTAL_KEYWORDS or > TOTAL_KEYWORDS
- this is an indication that we'll need to search through
- some number of duplicates hash values. Using a hash
- linking scheme we'd then index into a different part of
- the hash table that provides the starting index and total
- length of the duplicate entries to find via linear search!
-
-Sun Nov 12 13:48:10 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Simplified Key_List::output_min_max considerably by recognizing
- that since the keyword list was already sorted by hash value finding
- the min and max values is trivial!
-
- * Improved the debugging diagnostics considerably in classes Key_List,
- Hash_Table, and Gen_Perf.
-
- * Modified the `-s' option so that a negative argument is now
- interpreted to mean `allow the maximum associated value to be
- about x times *smaller* than the number of input keys.' This
- should help prevent massive explosion of generated hash table
- size for large keysets.
-
-Sat Nov 11 11:31:13 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added a field in class Key_List that counts the total number
- of duplicate keywords, both static and dynamic.
-
- * Added a new member function Bool_Array that deletes the dynamic
- memory allocated to Bool_Array::storage_array. This space may
- be needed for subsequent options, so it made sense to free it as
- soon as possible...
-
- * Renamed file/class Alpha_Vectors to Vectors, to avoid problems
- with 14 character length filenames on SYSV. Also changed file
- adapredefined.gperf to adadefs.gperf in the ./tests directory.
-
- * Modified class Options by changing the member function
- Options::total_positions to Options::get_charset_size and
- Options::set_charset_size. These two routines now either return
- the total charset size *or* the length of the largest keyword
- if the user specifies the -k'*' (ALLCHARS) option. This change
- cleans up client code.
-
- * Merged all the cperf changes into gperf.
-
- * Made sure to explicitly initialize perfect.fewest_collisions to
- 0.
-
- * Cleaned up some loose ends noticed by Nels Olson.
- 1. Removed `if (collisions <= perfect.fewest_collisions)'
- from Gen_Perf::affects_prev since it was superfluous.
- 2. Removed the fields best_char_value and best_asso_value
- from Gen_Perf. There were also unnecessary.
- 3. Fixed a braino in the Bool_Array::bool_array_reset
- function. Since iteration numbers can never be zero
- the `if (bool_array.iteration_number++ == 0)' must be
- `if (++bool_array.iteration_number == 0).'
- 4. Modified Std_Err::report_error so that it correctly handles
- "%%".
-
- * It is important to note that -D no longer enables -S.
- There is a good reason for this change, which will become
- manifested in the next release... (suspense!).
-
- * Made some subtle changes to Key_List::print_switch so that if finally
- seems to work correctly. Needs more stress testing, however...
-
- * Made a major change to the Key_List::print_switch function.
- The user can now specify the number of switch statements to generate
- via an argument to the -S option, i.e., -S1 means `generate 1
- switch statement with all keywords in it,' -S2 means generate
- 2 switch statements with 1/2 the elements in each one, etc.
- Hopefully this will fix the problem with C compilers not being
- able to generate code for giant switch statements (but don't
- hold your breath!)
-
- * Changed Key_List::length function to Key_List::keyword_list_length.
-
- * Added a feature to main.c that prints out the starting wall-clock
- time before the program begins and prints out the ending wall-clock
- time when the program is finished.
-
- * Added the GATHER_STATISTICS code in hash-table.c so we can
- keep track of how well double hashing is doing. Eventually,
- GATHER_STATISTICS will be added so that all instrumentation
- code can be conditionally compiled in.
-
- * Fixed a stupid bug in Key_List::print_switch routine. This
- was necessary to make sure the generated switch statement worked
- correctly when *both* `natural,' i.e., static links and dynamic
- links, i.e., unresolved duplicates, hash to the same value.
-
- * Modified Bool_Array::~Bool_Array destructor so that
- it now frees the bool_array.storage_array when it is no longer
- needed. Since this array is generally very large it makes sense
- to return the memory to the freelist when it is no longer in use.
-
- * Changed the interface to constructor Hash_Table::Hash_Table. This
- constructor now passed a pointer to a power-of-two sized buffer that
- serve as storage for the hash table. Although this weakens information
- hiding a little bit it greatly reduces dynamic memory fragmentation,
- since we can now obtain the memory via a call to alloca, rather
- than malloc. This change modified Key_List::read_keys calling
- interface.
-
- * Since alloca is now being used more aggressively a conditional
- compilation section was added in main.c. Taken from GNU GCC,
- this code gets rid of any avoidable limit on stack size so that
- alloca does not fail. It is only used if the -DRLIMIT_STACK
- symbol is defined when gperf is compiled.
-
- * Added warnings in option.c so that user's would be informed
- that -r superceeds -i on the command-line.
-
- * Rewrote Gen_Perf::affects_prev. First, the code structure
- was cleaned up considerably (removing the need for a dreaded
- goto!). Secondly, a major change occurred so that Gen_Perf::affects_prev
- returns FALSE (success) when fewest_hits gets down to whatever
- it was after inserting the previous key (instead of waiting for
- it to reach 0). In other words, it stops trying if it can
- resolve the new collisions added by a key, even if there are
- still other old, unresolved collisions. This modification was
- suggested by Nels Olson and seems to *greatly* increase the
- speed of gperf for large keyfiles. Thanks Nels!
-
- * In a similar vein, inside the Gen_Perf::change routine
- the variable `perfect.fewest_collisions is no longer initialized
- with the length of the keyword list. Instead it starts out at
- 0 and is incremented by 1 every time change () is called.
- The rationale for this behavior is that there are times when a
- collision causes the number of duplicates (collisions) to
- increase by a large amount when it would presumably just have
- gone up by 1 if none of the asso_values were changed. That is,
- at the beginning of change(), you could initialize fewest_hits
- to 1+(previous value of fewest_hits) instead of to the number of
- keys. Thanks again, Nels.
-
- * Replaced alloca with new in the Gen_Perf::change function.
- This should eliminate some overhead at the expense of a little
- extra memory that is never reclaimed.
-
- * Renamed Gen_Perf::merge_sets to Gen_Perf::compute_disjoint_union
- to reflect the change in behavior.
-
- * Added the -e option so users can supply a string containing
- the characters used to separate keywords from their attributes.
- The default behavior is ",\n".
-
- * Removed the char *uniq_set field from LIST_NODE and modified
- uses of uniq_set in perfect.c and keylist.c. Due to changes
- to Gen_Perf::compute_disjoint_sets this field was no longer
- necessary, and its removal makes the program smaller and
- potentially faster.
-
- * Added lots of changes/fixes suggested by Nels Olson
- (umls.UUCP!olson@mis.ucsf.edu). In particular:
- 1. Changed Bool_Array so that it would dynamically create
- an array of unsigned shorts rather than ints if the
- LO_CAL symbol was defined during program compilation.
- This cuts the amount of dynamic memory usage in half,
- which is important for large keyfile input.
- 2. Added some additional debugging statements that print extra
- info to stderr when the -d option is enabled.
- 3. Fixed a really stupid bug in Key_List::print_switch
- A right paren was placed at the wrong location, which broke
- strlen ().
- 4. Fixed a subtle problem with printing case values when keylinks
- appear. The logic failed to account for the fact that there
- can be keylinks *and* regular node info also!
- 5. Changed the behavior of Key_List::read_keys so that it would
- honor -D unequivocally, i.e., it doesn't try to turn off dup
- handling if the user requests it, even if there are no
- immediate links in the keyfile input.
- 6. Modified the -j option so that -j 0 means `try random values
- when searching for a way to resolve collisions.'
- 7. Added a field `num_done' to the Gen_Perf struct. This is used
- to report information collected when trying to resolve
- hash collisions.
- 8. Modified the merge_sets algorithm to perform a disjoint
- union of two multisets. This ensures that subsequent
- processing in Gen_Perf::affect_prev doesn't
- waste time trying to change an associated value that is
- shared between two conflicting keywords.
- 9. Modified Gen_Perf::affects_prev so that it doesn't try
- random jump values unless the -j 0 option is enabled.
- 10. Fixed a silly bug in Gen_Perf::change. This problem caused
- gperf to seg fault when the -k* option was given and the
- keyfile file had long keywords.
-
-Sun Oct 29 00:18:55 1989 Doug Schmidt (schmidt at siam.ics.uci.edu)
-
- * Modified class-specific new operations for Read_Line and
- List_Node so they don't fail if SIZE is larger than twice
- the previous buffer size. Note we double buffer size
- everytime the previous buffer runs out, as a heuristic
- to reduce future calls to malloc.
-
-Sun Oct 22 13:49:43 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Updated gperf version number to 2.0. Send to Doug Lea for
- incorporation into the long-awaited `official' libg++ 1.36
- release!
-
- * Thanks to Nels Olson a silly bug in Gen_Perf::change ()
- was fixed. This problem caused gperf to seg fault when
- the -k* option was given and the keyfile file had long
- keywords.
-
- * Modified Key_List::print_hash_function so that it output
- max_hash_value + 1 (rather than just max_hash_value) for
- any associated value entries that don't correspond to
- keyword charset characters. This should speed up rejection
- of non-keyword strings a little in some cases.
-
-Sat Oct 21 19:28:36 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Fixed Key_List::print_hash_function so that it no longer output
- things like `return 0 + ...' Although this probably gets
- optimized away by even the worst C compilers there isn't any
- point tempting fate... ;-)
-
- * Fixed class List_Node's constructor so that it wouldn't a priori
- refuse to consider trying to hash keys whose length is less
- than the smallest user-specified key position. It turns out
- this is not a problem unless the user also specifies the -n
- (NOLENGTH) option, in which case such keys most likely
- don't have a prayer of being hashed correctly!
-
- * Changed the name of the generated lookup table from `Hash_Table'
- to `asso_value' to be consistent with the gperf paper.
-
-Tue Oct 17 14:19:48 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added a flag GATHER_STATISTICS in the Makefile. If defined
- during compilation this turns on certain collection facilities
- that track the performance of gperf during its execution. In
- particular, I want to see how many collisions occur for the
- double hashing Hash_Table.
-
- * Added a safety check so that we don't screw up if the total
- number of `resets' of the Bool_Array exceeds MAX_INT. Since
- this number is around 2^31 it is unlikely that this would ever
- occur for most input, but why take the risk?
-
- * Changed the behavior for the -a (ANSI) option so that the
- generated prototypes use int rather than size_t for the LEN
- parameter. It was too ugly having to #include <stddef.h> all
- over the place...
-
-Mon Oct 16 11:00:35 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Continued to work on the gperf paper for the USENIX C++
- conference. At some point this will be merged back into
- the gperf documentation...
-
-Sat Oct 14 20:29:43 1989 Doug Schmidt (schmidt at siam.ics.uci.edu)
-
- * Added a majorly neat hack to Bool_Array, suggested by rfg.
- The basic idea was to throw away the Ullman array technique.
- The Ullman array was used to remove the need to reinitialize all
- the Bool_Array elements to zero everytime we needed to determine
- whether there were duplicate hash values in the keyword list.
- The current trick uses an `iteration number' scheme, which takes
- about 1/3 the space and reduces the overall program running a
- time by about 20 percent for large input! The hack works as
- follows:
-
- 1. Dynamically allocation 1 boolean array of size k.
- 2. Initialize the boolean array to zeros, and consider the first
- iteration to be iteration 1.
- 2. Then on all subsequent iterations we `reset' the bool array by
- kicking the iteration count by 1.
- 3. When it comes time to check whether a hash value is currently
- in the boolean array we simply check its index location. If
- the value stored there is *not* equal to the current iteration
- number then the item is clearly *not* in the set. In that
- case we assign the iteration number to that array's index
- location for future reference. Otherwise, if the item at
- the index location *is* equal to the iteration number we've
- found a duplicate. No muss, no fuss!
-
-Mon Oct 2 12:30:54 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Changed some consts in options.h to enumerals, since g++
- doesn't seem to like them at the moment!
-
-Sat Sep 30 12:55:24 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Fixed a stupid bug in Key_List::print_hash_function that manifested
- itself if the `-k$' option was given (i.e., only use the key[length]
- character in the hash function).
-
- * Added support for the -C option. This makes the contents of
- all generated tables `readonly'.
-
- * Changed the handling of generated switches so that there is
- only one call to str[n]?cmp. This *greatly* reduces the size of
- the generated assembly code on all compilers I've seen.
-
- * Fixed a subtle bug that occurred when the -l and -S option
- was given. Code produced looked something like:
-
- if (len != key_len || !strcmp (s1, resword->name)) return resword;
-
- which doesn't make any sense. Clearly, this should be:
-
- if (len == key_len && !strcmp (s1, resword->name)) return resword;
-
-Tue Sep 26 10:36:50 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Changed class Read_Line's definition so that it no longer
- needs to know about the buffering scheme used to speed up
- dynamic memory allocation of input keywords and their
- associated attributes. This means that operator new is no longer
- a friend of Read_Line.
-
-Mon Sep 25 23:17:10 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Decided that Obstacks had too much overhead, so they were
- removed in favor of super-efficient, low-overhead buffered
- storage allocation hacks in Read_Line and List_Node.
-
- * No longer try to inline functions that g++ complains about
- (Key_List::Merge and Key_List::Merge_Sort).
-
-Sun Sep 24 13:11:24 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Changed classes Read_Line and List_Node to use Obstacks in order
- to cache memory allocation for keyword strings and List_Nodes.
-
- * Continued to experiment with inheritance schemes.
-
- * Added a new file `alpha.h', that declares static data shared
- (i.e., inherited) between classes List_Node and Key_List.
-
-Tue Sep 12 16:14:41 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Made numerous changes to incorporate multiple inheritance in
- gperf.
-
-Wed Aug 16 23:04:08 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added the -DCOMPILER_FIXED flag to the ./src/Makefile. This
- implies that people trying to compile gperf need to have a
- working version of the new g++ compiler (1.36.0).
-
- * Removed some extra spaces that were being added in the generated
- C code.
-
-Mon Jul 24 17:09:46 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Fixed PRINT_HASH_FUNCTION and PRINT_LOOKUP_FUNCTION in keylist.c
- so that the generated functions take an unsigned int length argument.
- If -a is enabled the prototype is (const char *str, size_t len).
-
-Fri Jul 21 13:06:15 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Fixed a typo in PRINT_KEYWORD_TABLE in keylist.cc that prevented
- the indentation from working correctly.
-
- * Fixed a horrible typo in PRINT_KEYWORD_TABLE in keylist.cc
- that prevented links from being printed correctly.
-
-Tue Jul 18 16:04:31 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Fixed up readline.cc and readline.h so that they work OK
- with g++ compilers that aren't completely up-to-date.
- If symbol COMPILER_FIXED is defined then the behavior
- that works on my more recent version of g++ is enabled.
-
-Sun Jul 9 17:53:28 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Changed the ./tests subdirectory Makefile so that it
- uses $(CC) instead of gcc.
-
-Sun Jul 2 21:52:15 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Fixed a number of subtle bugs that occurred when -S was
- combined with various and sundry options.
-
- * Added the -G option, that makes the generated keyword table
- a global static variable, rather than hiding it inside
- the lookup function. This allows other functions to directly
- access the contents in this table.
-
- * Added the "#" feature, that allows comments inside the keyword
- list from the input file. Comment handling takes place in readline.c.
- This simplifies the code and reduces the number of malloc calls.
-
- * Also added the -H option (user can give the name of the hash
- function) and the -T option (prevents the transfer of the type decl
- to the output file, which is useful if the type is already defined
- elsewhere).
-
-Thu Jun 22 20:39:39 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Modified many classes so that they would inherit Std_Err as
- a base class. This makes things more abstract...
-
-Fri Jun 16 14:23:00 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Modified the -f (FAST) option. This now takes an argument.
- The argument corresponds to the number of iterations used
- to resolve collisions. -f 0 uses the length of the
- keyword list (which is what -f did before). This makes
- life much easier when dealing with large keyword files.
-
-Tue Jun 6 17:53:27 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added the -c (comparison) option. Enabling this
- will use the strncmp function for string comparisons.
- The default is to use strcmp.
-
- * Fixed a typo in key_list.cc (PRINT_SWITCH). This caused
- faulty C code to be generated when the -D, -p, and -t
- options were all enabled.
-
-Thu May 25 14:07:21 1989 Doug Schmidt (schmidt at siam.ics.uci.edu)
-
- * Once again, changed class Read_Line to overload global operator
- new. Hopefully, this will work...!
-
-Sun May 21 01:51:45 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Modified Key_List::print_hash_function () so that it properly
- formats the associated values in the hash table according to
- the maximum number of digits required to represent the largest
- value.
-
- * Removed the named return value from class Hash_Table's
- operator (), since this causes a seg fault when -O is enabled.
- No sense tripping subtle g++ bugs if we don't have to.... ;-)
-
- * Removed the operator new hack from Read_Line, since this seemed
- to create horrible bus error problems.
-
- * Changed many class member functions and data members to be `static',
- if they don't manipulate this!
-
-Fri May 12 23:06:56 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Changed class Std_Err to use static member functions, a la
- Ada or Modula 2. This eliminates the need for an explicit
- error-handler class object.
-
- * Added the ``named return value'' feature to Hash_Table::operator ()
- and Bool_Array::operator [], just for the heck of it.... ;-)
-
- * Changed the previous hack in Read_Line so that we now use
- the overloaded global `new' instead of NEW_STRING!
-
-Wed May 3 17:36:55 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Updated to version 1.7. This reflects the recent major changes
- and the new C port.
-
- * Modified the GNU getopt.cc routine to have a class-based interface.
-
- * Fixed a typo in Perfect.cc ~Perfect that prevented the actual maximum
- hash table size from being printed (maybe the stream classes
- weren't so bad after all.... ;-).
-
- * Added support for the -f option. This generates the perfect
- hash function ``fast.'' It reduces the execution time of
- gperf, at the cost of minimizing the range of hash values.
-
-Tue May 2 16:23:29 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Added an efficiency hack to Read_Line. Instead of making
- a call to operator NEW (a.k.a. malloc) for each input string
- a new member function NEW_STRING stores a large buffer from
- which new strings are carved out, growing the buffer if
- necessary. It might be useful to add this throughout the
- program....
-
- * Removed all unnecessary calls to DELETE. If the program is about
- to exit it is silly to waste time freeing memory.
-
- * Added the GNU getopt program to the distribution. This makes
- GPERF portable to systems that don't include getopt in libc.
-
- * Added a strcspn member to class Key_List. This also increases
- portability.
-
- * Added the get_include_src function from keylist.c as a member
- function in class Key_List. Hopefully every function is
- now associated with a class. This aids abstraction and
- modularity.
-
- * Ported gperf to C. From now on both K&R C and GNU G++ versions
- will be supported. There will be two ChangeLog files, one
- for each version of the program.
-
-Mon May 1 16:41:45 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Fixed a bug with -k'*'. This now prints out *all* the cases
- up to the length of the longest word in the keyword set.
-
-Sun Apr 30 12:15:25 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Removed all use of the stream classes. Too ugly, slow, and
- not handled by the c++-mode formatter....
-
- * Modified the handling of links (i.e., keywords that have
- identical hash values as other keywords). This should
- speed up hash function generation for keyword sets with
- many duplicate entries. The trick is to treat duplicate
- values as equivalence classes, so that each set of duplicate
- values is represented only once in the main list processing.
-
- * Fixed some capitialization typos and indentations mistakes in
- Key_List::print_hash_function.
-
-Sat Apr 29 12:04:03 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Fixed a typo/logico in Key_List::print_switch that prevented
- the last keyword in the keyword list to be print out. This
- requires further examination.....
-
- * Fixed a stupid bug in List_Node::List_node. If the -k'*' option
- was enabled the KEY_SET string wasn't getting terminated with
- '\0'!
-
-Fri Apr 28 12:38:35 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Renamed strexp.h and strexp.cc to iterator.h and iterator.cc.
- Also changed the strexp class to iterator. Continued to work
- on style...
-
- * Updated the version number to 1.6. This reflects all the
- recent changes.
-
-Thu Apr 27 00:14:51 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added the -D option that properly handles keyword sets that
- contain duplicate hash values.
-
- * Continued the stylistic changes. Added the #pragma once
- directive to all the *.h files. Removed all #defines and
- replaced them with static consts. Also moved the key_sort
- routine from options.cc into the options class as a
- member function.
-
-Mon Apr 3 13:26:55 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Made massive stylistic changes to bring source code into
- conformance with GNU style guidelines.
-
-Thu Mar 30 23:28:45 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Fixed up the output routines so that they generate code
- corresponding to the GNU style guidelines.
-
-Sat Mar 11 13:12:37 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Fixed Stderr constructors so that they wouldn't try to
- use the base class initializer syntax for the static
- class variable Program_Name. G++ 1.34 is stricter in
- enforcing the rules!
-
-Fri Mar 10 11:24:14 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Removed -v and ``| more'' from the Makefile to keep rfg happy...
-
-Thu Mar 2 12:37:30 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Sent latest GNU gperf version 1.5 to Doug Lea for inclusion
- into libg++ 1.34. Note that there is a small bug with
- the new %{ ... %} source inclusion facility, since it doesn't
- understand comments and will barf if %{ or %} appear nested
- inside the outermost delimiters. This is too trivial of
- a defect to fix at the moment...
-
-Tue Feb 28 11:19:58 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added the -K option, which allows the user to provide a
- alternative name for the keyword structure component.
- The default is still ``name.''
-
- * Added the LEX and YACC-like ability to include arbitrary
- text at the beginning of the generated C source code output.
- This required two new functions Get_Special_Input,
- Key_List::Save_Include_Src;
-
- * Fixed memory allocation bug in Key_List::Set_Types.
- Variable Return_Type needs 1 additional location
- to store the "*" if the -p option is used.
-
- * Added code to NULL terminate both Struct_Tag and Return_Type,
- *after* the strncpy (stupid mistake).
-
-Mon Feb 27 14:39:51 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added a new option -N. This allows the user to specify the
- name to be used for the generated lookup function. The
- default name is still ``in_word_set.'' This makes it
- possible to completely automate the perfect hash function
- generation process!
-
-Mon Feb 20 23:33:14 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Corrected the Hash_Table::operator () function so that
- *it* is responsible for deciding when a new key has the
- same signature as a previously seen key. The key length
- information is now used internally to this function to
- decide whether to add to the hash table those keys with
- the same key sets, but different lengths. Before, this
- was handled by the Key_List::Read_Keys function. However,
- this failed to work for certain duplicate keys, since
- they weren't being entered into the hash table properly.
-
-Sun Feb 19 16:02:51 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Modified class Options by moving the enum Option_Type out
- of the class. This is to satisfy the new enumeration
- scope rules in C++.
-
-Sun Jan 15 15:12:09 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Incremented the version number upto 1.4 to reflect the new
- options that affect the generated code. Send the new
- distribution off to Michael for use with g++ 1.33.
-
- * Added a fix to Key_List::Read_Keys so that it checks for links
- properly when the -n option is used. Previously, it didn't
- catch obvious links, which caused it to spend large amount
- of time searching for a solution that could never occur!
-
- * Modified the Key_List data structure to record *both* the
- minimum and the maximum key lengths. This information
- is now computed in Key_List::Read_Keys, and thus
- Key_List::Print_Min_Max doesn't need to bother.
-
- * Modifed the key position iterator scheme in options.cc to
- eliminate the need for member function Options::Advance.
- Now, the Options::Get function performs the advancement
- automatically, obviating the need for an extra function call.
-
- * Added the new function Options::Print_Options, to print out
- the user-specified command line options to generated C
- output file.
-
- * Added a new function, Key_List::Print_Keylength_Table,
- which creates a table of lengths for use in speeding
- up the keyword search. This also meant that a new
- option, -l (LENTABLE) is recognized. It controls
- whether the length table is printed and the comparison
- made in the generated function ``in_word_set.''
-
- * Added a comment at the top of the generated C code
- output file that tells what version of gperf was used.
- Next, I'll also dump out the command line options
- as a comment too. Thanks to Michael Tiemann for the
- feedback on this.
-
- * Fixed the -n option to make it work correctly with
- other parts of the program (most notably the Perfect::Hash
- function and the computation of minimum and maximum lengths.
-
-Fri Jan 13 21:25:27 1989 Doug Schmidt (schmidt at siam.ics.uci.edu)
-
- * Realized the the need to add a test that will enable
- optimziation of the generated C code in the ``hash'' function
- by checking whether all the requested key positions are
- guaranteed to exist due to the comparison in `in_word_set.''
- I'll put this in soon....
-
-Thu Jan 12 20:09:21 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added pascal, modula3, and modula2 tests inputs to the
- Makefile
-
- * Recognised that there is a bug with the -n option. However
- I'm too busy to fix it properly, right now. The problem
- is that the generated #define end up being 0, since that's
- my hack to make -n work. This needs complete rethinking!
-
-Tue Jan 10 00:08:16 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Added a new option, -n, that instructs gperf to not use the
- length of an identifier when computing the hash functions.
- I'm not sure how useful this is!
-
- * Retransmitted the distribution to rocky.oswego.edu. Hopefully,
- this will work!
-
- * Began fixing the indentation and capitalization to conform
- to the GNU coding guidelines.
-
-Mon Jan 9 22:23:18 1989 Doug Schmidt (schmidt at pompe.ics.uci.edu)
-
- * Fixed horrible bug in Read_Line::Readln_Aux. This was
- a subtle and pernicous off-by-1 error, that overwrote
- past the last character of the input string buffer. I
- think this fault was killing the vax!
-
- * Yow, fixed an oversight in List_Node::List_Node, where the
- pointer field Next was uninitialized. Luckily, the new routine
- seems to return 0 filled objects the first time through!
-
-Sun Jan 8 13:43:14 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Modified the ``key linked'' diagnostic in Key_List::Read_Keys
- to be more helpful and easy to read.
-
- * Fixed the List_Node::List_Node so that it would ignore trailing
- fields if the -t option was not enabled.
-
- * Moved the List_Node declarations out of keylist.h and
- into a file of its own, called listnode.cc and listnode.h
- Made Set_Sort a member function of class List_Node.
-
- * Massively updated the documentation in the gperf.texinfo file.
-
- * Polished off the major revision to the print functions,
- added a few new tests in the Makefile to check for the
- validity of the program and ftp'ed the entire distribution
- off to Doug Lea for libg++. ( changed it to
- 1.3 to reflect the major changes with the generated
- C code ).
-
- * Fixed Key_List::Print_Switch to deal with the -p and -t options.
- This meant that the ``still-born'' function Key_List::
- Print_Type_Switch was superflous, so I removed it.
- Also, removed the restriction in Option that the -p and
- -t options couldn't be used simultaneously.
-
- * Modified List_Node::List_Node, to perform only 1 call to
- ``new'' when dynamically allocating memory for the Key_Set
- and the Uniq_Set.
-
-Sat Jan 7 14:10:51 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Fixed a big bug with the new policy of nesting the
- wordlist inside of generated function ``in_word_set.''
- I'd forgotten to declare the wordlist array as static!
- ( arrgh ).
-
- * Added a new function Key_List::Set_Types, that figures out
- the return type for generated function ``in_word_set,''
- the user-defined ``struct tag,'' if one is used, and also
- formates the array type for the static local array.
-
- * Changed the print routines to take advantage of the
- new -p option.
-
- * Began adding the hooks to allow the return of a pointer
- to a user defined struct location from the generated
- ``in_word_set'' function instead of the current 0 or 1
- return value. Created function Key_List::Print_Type_Switch
- and added option -p to class Option, allowing the user to
- request generation of the aforementioned pointers returned
- instead of booleans.
-
- * Put in checks in class Option to make sure that -S and -t
- options are not used simultaneously. This restriction
- will be removed in subsequent releases, once I decide on
- a clean way to implement it.
-
- * Sent version 1.2 to Doug Lea for possible inclusion into
- the libg++ distribution.
-
- * Moved the static word_list array inside the generated function
- in_word_set. This supports better data hiding.
-
- * Added a texinfo file, gperf.texinfo
-
- * Revised the Makefile to cleanup the droppings from texinfo
- and changed the name of gperf.cc and gperf.h to perfect.cc
- and perfect.h.
-
-Fri Jan 6 13:04:45 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Implemented the switch statement output format. Much better
- for large datasets in terms of space used.
-
- * Added new functions to break up the Key_List::Output function.
- Functions added were Key_List::Print_Switch,
- Key_List::Print_Min_Max, Key_List::Print_Keyword_Table,
- Key_List::Print_Hash_Function, and
- Key_List::Print_Lookup_Function. This simplifies the big mess
- in Key_List::Output considerably!
-
- * Added switch statement option to Options, which potentially
- trades time for space in the generated lookup code.
-
-Thu Jan 5 22:46:34 1989 Doug Schmidt (schmidt at siam.ics.uci.edu)
-
- * Released version 1.1
-
- * Fixed a bug with Gperf::Merge_Set, it was skipping letters
- shared between the Set_1 and Set_2.
-
- * Added the optimal min/max algorithm in Key_List::Output. This
- runs in O (3n/2), rather than O (2n) time.
-
- * Changed Gperf::Sort_Set to use insertion sort, rather than
- bubble sort.
-
- * Added a check in Key_List::Output for the special case where
- the keys used are 1,$. It is possible to generate more
- efficient C code in this case.
diff --git a/apps/gperf/Makefile b/apps/gperf/Makefile
deleted file mode 100644
index 24d0d5f2b3f..00000000000
--- a/apps/gperf/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-#----------------------------------------------------------------------------
-#
-# $Id$
-#
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-
-ifeq ($(CROSS-COMPILE),)
- DIRS = src tests
-else
- DIRS=
-endif # ! CROSS-COMPILE
-
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU
diff --git a/apps/gperf/Makefile.am b/apps/gperf/Makefile.am
deleted file mode 100644
index 308d0ce01b5..00000000000
--- a/apps/gperf/Makefile.am
+++ /dev/null
@@ -1,26 +0,0 @@
-##---------------------------------------------------------------------------
-## $Id$
-##
-## Top-level Makefile for gperf
-##
-##---------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-SUBDIRS = src ##tests
-
-GPERF_VERSION = 2.0
-
-VERSION = $(GPERF_VERSION)
-
-info_TEXINFOS = gperf.texi
-
-man_MANS = gperf.1
-
-EXTRA_DIST = $(man_MANS) gperf.info
diff --git a/apps/gperf/Makefile.bor b/apps/gperf/Makefile.bor
deleted file mode 100644
index 2831e305908..00000000000
--- a/apps/gperf/Makefile.bor
+++ /dev/null
@@ -1,7 +0,0 @@
-
-!include <$(ACE_ROOT)\include\makeinclude\make_flags.bor>
-
-all:
- cd $(ACE_ROOT)\apps\gperf\src
- $(MAKE) -f Makefile.bor $(MAKE_FLAGS)
-
diff --git a/apps/gperf/README b/apps/gperf/README
deleted file mode 100644
index 11768b81f94..00000000000
--- a/apps/gperf/README
+++ /dev/null
@@ -1,29 +0,0 @@
-While teaching a data structures course at University of California,
-Irvine, I developed a program called GPERF that generates perfect hash
-functions for sets of key words. A perfect hash function is:
-
- A hash function and a data structure that allows
- recognition of a key word in a set of words using
- exactly 1 probe into the data structure.
-
-The gperf.texinfo file explains how the program works, the form of the
-input, what options are available, and hints on choosing the best
-options for particular key word sets. The texinfo file is readable
-both via the GNU emacs `info' command and is also suitable for
-typesetting with TeX.
-
-The enclosed Makefile creates the executable program ``gperf'' and
-also runs the regression tests.
-
-Output from the GPERF program is used to recognize reserved words in
-the GNU C, GNU C++, and GNU Pascal compilers. In addition, it is used
-by TAO'd IDL compiler to generate operation dispatching tables.
-
-For more information on GPERF, please see
-
-http://www.cs.wustl.edu/~schmidt/C++-USENIX-90.ps.gz
-
-Happy hacking!
-
-Douglas C. Schmidt
-schmidt@cs.wustl.edu
diff --git a/apps/gperf/gperf.1 b/apps/gperf/gperf.1
deleted file mode 100644
index a031a7b0435..00000000000
--- a/apps/gperf/gperf.1
+++ /dev/null
@@ -1,23 +0,0 @@
-.TH GPERF 1 "December 16, 1988"
-.UC 4
-.SH NAME
-gperf \- generate a perfect hash function from a key set
-.SH SYNOPSIS
-.B gperf
-[
-.B \-adghijklnoprsStv
-] [
-.I keyfile
-]
-.SH DESCRIPTION
-
-\fIgperf\fP reads a set of ``keys'' from \fIkeyfile\fP (or, by
-default, from the standard input) and attempts to find a non-minimal
-perfect hashing function that recognizes a member of the key set in
-constant, i.e., O(1), time. If such a function is found the program
-generates a pair of \fIC\fP source code routines that perform the
-hashing and table lookup. All generated code is directed to the
-standard output.
-
-Please refer to the \fIgperf.texinfo\fP file for more information.
-This file is distributed with \fIgperf\fP release.
diff --git a/apps/gperf/gperf.info b/apps/gperf/gperf.info
deleted file mode 100644
index c27a6ddedf4..00000000000
--- a/apps/gperf/gperf.info
+++ /dev/null
@@ -1,1130 +0,0 @@
-This is Info file gperf.info, produced by Makeinfo version 1.68 from
-the input file gperf.texi.
-
-START-INFO-DIR-ENTRY
-* Gperf: (gperf). Perfect Hash Function Generator.
-END-INFO-DIR-ENTRY
-
- This file documents the features of the GNU Perfect Hash Function
-Generator
-
- Copyright (C) 1989 Free Software Foundation, Inc.
-
- Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice are
-preserved on all copies.
-
- Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided also
-that the section entitled "GNU General Public License" is included
-exactly as in the original, and provided that the entire resulting
-derived work is distributed under the terms of a permission notice
-identical to this one.
-
- Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that the section entitled "GNU `gperf' General Public
-License" an d this permission notice may be included in translations
-approved by the Free Software Foundation instead of in the original
-English.
-
-
-File: gperf.info, Node: Top, Next: Copying, Prev: (dir), Up: (dir)
-
-GNU GPERF Utility
-*****************
-
-Introduction
-************
-
- This manual documents the GNU `gperf' perfect hash function generator
-utility, focusing on its features and how to use them, and how to report
-bugs.
-
-* Menu:
-
-* Copying:: GNU `gperf' General Public License says
- how you can copy and share `gperf'.
-* Contributors:: People who have contributed to `gperf'.
-* Motivation:: Static search structures and GNU GPERF.
-* Search Structures:: Static search structures and GNU `gperf'
-* Description:: High-level discussion of how GPERF functions.
-* Options:: A description of options to the program.
-* Bugs:: Known bugs and limitations with GPERF.
-* Projects:: Things still left to do.
-* Implementation:: Implementation Details for GNU GPERF.
-* Bibliography:: Material Referenced in this Report.
-
- -- The Detailed Node Listing --
-
-High-Level Description of GNU `gperf'
-
-* Input Format:: Input Format to `gperf'
-* Output Format:: Output Format for Generated C Code with `gperf'
-
-Input Format to `gperf'
-
-* Declarations:: `struct' Declarations and C Code Inclusion.
-* Keywords:: Format for Keyword Entries.
-* Functions:: Including Additional C Functions.
-
-
-File: gperf.info, Node: Copying, Next: Contributors, Prev: Top, Up: Top
-
-GNU GENERAL PUBLIC LICENSE
-**************************
-
- Version 1, February 1989
-
- Copyright (C) 1989 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
-
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-Preamble
-========
-
- The license agreements of most software companies try to keep users
-at the mercy of those companies. By contrast, our General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. The
-General Public License applies to the Free Software Foundation's
-software and to any other program whose authors commit to using it.
-You can use it for your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Specifically, the General Public License is designed to make
-sure that you have the freedom to give away or sell copies of free
-software, that you receive source code or can get it if you want it,
-that you can change the software or use pieces of it in new free
-programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of a such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must tell them their rights.
-
- We protect your rights with two steps: (1) copyright the software,
-and (2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 1. This License Agreement applies to any program or other work which
- contains a notice placed by the copyright holder saying it may be
- distributed under the terms of this General Public License. The
- "Program", below, refers to any such program or work, and a "work
- based on the Program" means either the Program or any work
- containing the Program or a portion of it, either verbatim or with
- modifications. Each licensee is addressed as "you".
-
- 2. You may copy and distribute verbatim copies of the Program's source
- code as you receive it, in any medium, provided that you
- conspicuously and appropriately publish on each copy an
- appropriate copyright notice and disclaimer of warranty; keep
- intact all the notices that refer to this General Public License
- and to the absence of any warranty; and give any other recipients
- of the Program a copy of this General Public License along with
- the Program. You may charge a fee for the physical act of
- transferring a copy.
-
- 3. You may modify your copy or copies of the Program or any portion of
- it, and copy and distribute such modifications under the terms of
- Paragraph 1 above, provided that you also do the following:
-
- * cause the modified files to carry prominent notices stating
- that you changed the files and the date of any change; and
-
- * cause the whole of any work that you distribute or publish,
- that in whole or in part contains the Program or any part
- thereof, either with or without modifications, to be licensed
- at no charge to all third parties under the terms of this
- General Public License (except that you may choose to grant
- warranty protection to some or all third parties, at your
- option).
-
- * If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the simplest and most usual way, to print
- or display an announcement including an appropriate copyright
- notice and a notice that there is no warranty (or else,
- saying that you provide a warranty) and that users may
- redistribute the program under these conditions, and telling
- the user how to view a copy of this General Public License.
-
- * You may charge a fee for the physical act of transferring a
- copy, and you may at your option offer warranty protection in
- exchange for a fee.
-
- Mere aggregation of another independent work with the Program (or
- its derivative) on a volume of a storage or distribution medium
- does not bring the other work under the scope of these terms.
-
- 4. You may copy and distribute the Program (or a portion or
- derivative of it, under Paragraph 2) in object code or executable
- form under the terms of Paragraphs 1 and 2 above provided that you
- also do one of the following:
-
- * accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of
- Paragraphs 1 and 2 above; or,
-
- * accompany it with a written offer, valid for at least three
- years, to give any third party free (except for a nominal
- charge for the cost of distribution) a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Paragraphs 1 and 2 above; or,
-
- * accompany it with the information you received as to where the
- corresponding source code may be obtained. (This alternative
- is allowed only for noncommercial distribution and only if you
- received the program in object code or executable form alone.)
-
- Source code for a work means the preferred form of the work for
- making modifications to it. For an executable file, complete
- source code means all the source code for all modules it contains;
- but, as a special exception, it need not include source code for
- modules which are standard libraries that accompany the operating
- system on which the executable file runs, or for standard header
- files or definitions files that accompany that operating system.
-
- 5. You may not copy, modify, sublicense, distribute or transfer the
- Program except as expressly provided under this General Public
- License. Any attempt otherwise to copy, modify, sublicense,
- distribute or transfer the Program is void, and will automatically
- terminate your rights to use the Program under this License.
- However, parties who have received copies, or rights to use
- copies, from you under this General Public License will not have
- their licenses terminated so long as such parties remain in full
- compliance.
-
- 6. By copying, distributing or modifying the Program (or any work
- based on the Program) you indicate your acceptance of this license
- to do so, and all its terms and conditions.
-
- 7. Each time you redistribute the Program (or any work based on the
- Program), the recipient automatically receives a license from the
- original licensor to copy, distribute or modify the Program
- subject to these terms and conditions. You may not impose any
- further restrictions on the recipients' exercise of the rights
- granted herein.
-
- 8. The Free Software Foundation may publish revised and/or new
- versions of the General Public License from time to time. Such
- new versions will be similar in spirit to the present version, but
- may differ in detail to address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
- Program specifies a version number of the license which applies to
- it and "any later version", you have the option of following the
- terms and conditions either of that version or of any later
- version published by the Free Software Foundation. If the Program
- does not specify a version number of the license, you may choose
- any version ever published by the Free Software Foundation.
-
- 9. If you wish to incorporate parts of the Program into other free
- programs whose distribution conditions are different, write to the
- author to ask for permission. For software which is copyrighted
- by the Free Software Foundation, write to the Free Software
- Foundation; we sometimes make exceptions for this. Our decision
- will be guided by the two goals of preserving the free status of
- all derivatives of our free software and of promoting the sharing
- and reuse of software generally.
-
- NO WARRANTY
-
- 10. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
- WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
- LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
- HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
- WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
- NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE
- QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
- PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
- SERVICING, REPAIR OR CORRECTION.
-
- 11. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
- WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
- MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
- LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
- INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
- INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
- DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
- OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY
- OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
- ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-Appendix: How to Apply These Terms to Your New Programs
-=======================================================
-
- If you develop a new program, and you want it to be of the greatest
-possible use to humanity, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these
-terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES.
- Copyright (C) 19YY NAME OF AUTHOR
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 1, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- Also add information on how to contact you by electronic and paper
-mail.
-
- If the program is interactive, make it output a short notice like
-this when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
- The hypothetical commands `show w' and `show c' should show the
-appropriate parts of the General Public License. Of course, the
-commands you use may be called something other than `show w' and `show
-c'; they could even be mouse-clicks or menu items--whatever suits your
-program.
-
- You should also get your employer (if you work as a programmer) or
-your school, if any, to sign a "copyright disclaimer" for the program,
-if necessary. Here a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- program `Gnomovision' (a program to direct compilers to make passes
- at assemblers) written by James Hacker.
-
- SIGNATURE OF TY COON, 1 April 1989
- Ty Coon, President of Vice
-
- That's all there is to it!
-
-
-File: gperf.info, Node: Contributors, Next: Motivation, Prev: Copying, Up: Top
-
-Contributors to GNU `gperf' Utility
-***********************************
-
- * The GNU `gperf' perfect hash function generator utility was
- originally written in GNU C++ by Douglas C. Schmidt. It is now
- also available in a highly-portable "old-style" C version. The
- general idea for the perfect hash function generator was inspired
- by Keith Bostic's algorithm written in C, and distributed to
- net.sources around 1984. The current program is a heavily
- modified, enhanced, and extended implementation of Keith's basic
- idea, created at the University of California, Irvine. Bugs,
- patches, and suggestions should be reported to schmidt at
- ics.uci.edu.
-
- * Special thanks is extended to Michael Tiemann and Doug Lea, for
- providing a useful compiler, and for giving me a forum to exhibit
- my creation.
-
- In addition, Adam de Boor and Nels Olson provided many tips and
- insights that greatly helped improve the quality and functionality
- of `gperf'.
-
-
-File: gperf.info, Node: Motivation, Next: Search Structures, Prev: Contributors, Up: Top
-
-Introduction
-************
-
- `gperf' is a perfect hash function generator written in C++. It
-transforms an *n* element user-specified keyword set *W* into a perfect
-hash function *F*. *F* uniquely maps keywords in *W* onto the range
-0..*k*, where *k* >= *n*. If *k = n* then *F* is a *minimal* perfect
-hash function. `gperf' generates a 0..*k* element static lookup table
-and a pair of C functions. These functions determine whether a given
-character string *s* occurs in *W*, using at most one probe into the
-lookup table.
-
- `gperf' currently generates the reserved keyword recognizer for
-lexical analyzers in several production and research compilers and
-language processing tools, including GNU C, GNU C++, GNU Pascal, GNU
-Modula 3, and GNU indent. Complete C++ source code for `gperf' is
-available via anonymous ftp from ics.uci.edu. `gperf' also is
-distributed along with the GNU libg++ library. A highly portable,
-functionally equivalent K&R C version of `gperf' is archived in
-comp.sources.unix, volume 20. Finally, a paper describing `gperf''s
-design and implementation in greater detail is available in the Second
-USENIX C++ Conference proceedings.
-
-
-File: gperf.info, Node: Search Structures, Next: Description, Prev: Motivation, Up: Top
-
-Static search structures and GNU `gperf'
-****************************************
-
- A "static search structure" is an Abstract Data Type with certain
-fundamental operations, *e.g.*, *initialize*, *insert*, and *retrieve*.
-Conceptually, all insertions occur before any retrievals. In
-practice, `gperf' generates a `static' array containing search set
-keywords and any associated attributes specified by the user. Thus,
-there is essentially no execution-time cost for the insertions. It is
-a useful data structure for representing *static search sets*. Static
-search sets occur frequently in software system applications. Typical
-static search sets include compiler reserved words, assembler
-instruction opcodes, and built-in shell interpreter commands. Search
-set members, called "keywords", are inserted into the structure only
-once, usually during program initialization, and are not generally
-modified at run-time.
-
- Numerous static search structure implementations exist, *e.g.*,
-arrays, linked lists, binary search trees, digital search tries, and
-hash tables. Different approaches offer trade-offs between space
-utilization and search time efficiency. For example, an *n* element
-sorted array is space efficient, though the average-case time
-complexity for retrieval operations using binary search is proportional
-to log *n*. Conversely, hash table implementations often locate a
-table entry in constant time, but typically impose additional memory
-overhead and exhibit poor worst case performance.
-
- *Minimal perfect hash functions* provide an optimal solution for a
-particular class of static search sets. A minimal perfect hash
-function is defined by two properties:
-
- * It allows keyword recognition in a static search set using at most
- *one* probe into the hash table. This represents the "perfect"
- property.
-
- * The actual memory allocated to store the keywords is precisely
- large enough for the keyword set, and *no larger*. This is the
- "minimal" property.
-
- For most applications it is far easier to generate *perfect* hash
-functions than *minimal perfect* hash functions. Moreover, non-minimal
-perfect hash functions frequently execute faster than minimal ones in
-practice. This phenomena occurs since searching a sparse keyword table
-increases the probability of locating a "null" entry, thereby reducing
-string comparisons. `gperf''s default behavior generates
-*near-minimal* perfect hash functions for keyword sets. However,
-`gperf' provides many options that permit user control over the degree
-of minimality and perfection.
-
- Static search sets often exhibit relative stability over time. For
-example, Ada's 63 reserved words have remained constant for nearly a
-decade. It is therefore frequently worthwhile to expend concerted
-effort building an optimal search structure *once*, if it subsequently
-receives heavy use multiple times. `gperf' removes the drudgery
-associated with constructing time- and space-efficient search
-structures by hand. It has proven a useful and practical tool for
-serious programming projects. Output from `gperf' is currently used in
-several production and research compilers, including GNU C, GNU C++,
-GNU Pascal, and GNU Modula 3. The latter two compilers are not yet
-part of the official GNU distribution. Each compiler utilizes `gperf'
-to automatically generate static search structures that efficiently
-identify their respective reserved keywords.
-
-
-File: gperf.info, Node: Description, Next: Options, Prev: Search Structures, Up: Top
-
-High-Level Description of GNU `gperf'
-*************************************
-
-* Menu:
-
-* Input Format:: Input Format to `gperf'
-* Output Format:: Output Format for Generated C Code with `gperf'
-
- The perfect hash function generator `gperf' reads a set of
-"keywords" from a "keyfile" (or from the standard input by default).
-It attempts to derive a perfect hashing function that recognizes a
-member of the "static keyword set" with at most a single probe into the
-lookup table. If `gperf' succeeds in generating such a function it
-produces a pair of C source code routines that perform hashing and
-table lookup recognition. All generated C code is directed to the
-standard output. Command-line options described below allow you to
-modify the input and output format to `gperf'.
-
- By default, `gperf' attempts to produce time-efficient code, with
-less emphasis on efficient space utilization. However, several options
-exist that permit trading-off execution time for storage space and vice
-versa. In particular, expanding the generated table size produces a
-sparse search structure, generally yielding faster searches.
-Conversely, you can direct `gperf' to utilize a C `switch' statement
-scheme that minimizes data space storage size. Furthermore, using a C
-`switch' may actually speed up the keyword retrieval time somewhat.
-Actual results depend on your C compiler, of course.
-
- In general, `gperf' assigns values to the characters it is using for
-hashing until some set of values gives each keyword a unique value. A
-helpful heuristic is that the larger the hash value range, the easier
-it is for `gperf' to find and generate a perfect hash function.
-Experimentation is the key to getting the most from `gperf'.
-
-
-File: gperf.info, Node: Input Format, Next: Output Format, Prev: Description, Up: Description
-
-Input Format to `gperf'
-=======================
-
- You can control the input keyfile format by varying certain
-command-line arguments, in particular the `-t' option. The input's
-appearance is similar to GNU utilities `flex' and `bison' (or UNIX
-utilities `lex' and `yacc'). Here's an outline of the general format:
-
- declarations
- %%
- keywords
- %%
- functions
-
- *Unlike* `flex' or `bison', all sections of `gperf''s input are
-optional. The following sections describe the input format for each
-section.
-
-* Menu:
-
-* Declarations:: `struct' Declarations and C Code Inclusion.
-* Keywords:: Format for Keyword Entries.
-* Functions:: Including Additional C Functions.
-
-
-File: gperf.info, Node: Declarations, Next: Keywords, Prev: Input Format, Up: Input Format
-
-`struct' Declarations and C Code Inclusion
-------------------------------------------
-
- The keyword input file optionally contains a section for including
-arbitrary C declarations and definitions, as well as provisions for
-providing a user-supplied `struct'. If the `-t' option *is* enabled,
-you *must* provide a C `struct' as the last component in the
-declaration section from the keyfile file. The first field in this
-struct must be a `char *' identifier called "name," although it is
-possible to modify this field's name with the `-K' option described
-below.
-
- Here is simple example, using months of the year and their
-attributes as input:
-
- struct months { char *name; int number; int days; int leap_days; };
- %%
- january, 1, 31, 31
- february, 2, 28, 29
- march, 3, 31, 31
- april, 4, 30, 30
- may, 5, 31, 31
- june, 6, 30, 30
- july, 7, 31, 31
- august, 8, 31, 31
- september, 9, 30, 30
- october, 10, 31, 31
- november, 11, 30, 30
- december, 12, 31, 31
-
- Separating the `struct' declaration from the list of key words and
-other fields are a pair of consecutive percent signs, `%%', appearing
-left justified in the first column, as in the UNIX utility `lex'.
-
- Using a syntax similar to GNU utilities `flex' and `bison', it is
-possible to directly include C source text and comments verbatim into
-the generated output file. This is accomplished by enclosing the region
-inside left-justified surrounding `%{', `%}' pairs. Here is an input
-fragment based on the previous example that illustrates this feature:
-
- %{
- #include <assert.h>
- /* This section of code is inserted directly into the output. */
- int return_month_days (struct months *months, int is_leap_year);
- %}
- struct months { char *name; int number; int days; int leap_days; };
- %%
- january, 1, 31, 31
- february, 2, 28, 29
- march, 3, 31, 31
- ...
-
- It is possible to omit the declaration section entirely. In this
-case the keyfile begins directly with the first keyword line, *e.g.*:
-
- january, 1, 31, 31
- february, 2, 28, 29
- march, 3, 31, 31
- april, 4, 30, 30
- ...
-
-
-File: gperf.info, Node: Keywords, Next: Functions, Prev: Declarations, Up: Input Format
-
-Format for Keyword Entries
---------------------------
-
- The second keyfile format section contains lines of keywords and any
-associated attributes you might supply. A line beginning with `#' in
-the first column is considered a comment. Everything following the `#'
-is ignored, up to and including the following newline.
-
- The first field of each non-comment line is always the key itself.
-It should be given as a simple name, *i.e.*, without surrounding string
-quotation marks, and be left-justified flush against the first column.
-In this context, a "field" is considered to extend up to, but not
-include, the first blank, comma, or newline. Here is a simple example
-taken from a partial list of C reserved words:
-
- # These are a few C reserved words, see the c.`gperf' file
- # for a complete list of ANSI C reserved words.
- unsigned
- sizeof
- switch
- signed
- if
- default
- for
- while
- return
-
- Note that unlike `flex' or `bison' the first `%%' marker may be
-elided if the declaration section is empty.
-
- Additional fields may optionally follow the leading keyword. Fields
-should be separated by commas, and terminate at the end of line. What
-these fields mean is entirely up to you; they are used to initialize the
-elements of the user-defined `struct' provided by you in the
-declaration section. If the `-t' option is *not* enabled these fields
-are simply ignored. All previous examples except the last one contain
-keyword attributes.
-
-
-File: gperf.info, Node: Functions, Prev: Keywords, Up: Input Format
-
-Including Additional C Functions
---------------------------------
-
- The optional third section also corresponds closely with conventions
-found in `flex' and `bison'. All text in this section, starting at the
-final `%%' and extending to the end of the input file, is included
-verbatim into the generated output file. Naturally, it is your
-responsibility to ensure that the code contained in this section is
-valid C.
-
-
-File: gperf.info, Node: Output Format, Prev: Input Format, Up: Description
-
-Output Format for Generated C Code with `gperf'
-===============================================
-
- Several options control how the generated C code appears on the
-standard output. Two C function are generated. They are called `hash'
-and `in_word_set', although you may modify the name for `in_word_set'
-with a command-line option. Both functions require two arguments, a
-string, `char *' STR, and a length parameter, `int' LEN. Their default
-function prototypes are as follows:
-
- static int hash (char *str, int len);
- int in_word_set (char *str, int len);
-
- By default, the generated `hash' function returns an integer value
-created by adding LEN to several user-specified STR key positions
-indexed into an "associated values" table stored in a local static
-array. The associated values table is constructed internally by
-`gperf' and later output as a static local C array called HASH_TABLE;
-its meaning and properties are described below. *Note
-Implementation::. The relevant key positions are specified via the `-k'
-option when running `gperf', as detailed in the *Options* section
-below. *Note Options::.
-
- Two options, `-g' (assume you are compiling with GNU C and its
-`inline' feature) and `-a' (assume ANSI C-style function prototypes),
-alter the content of both the generated `hash' and `in_word_set'
-routines. However, function `in_word_set' may be modified more
-extensively, in response to your option settings. The options that
-affect the `in_word_set' structure are:
-
- `-p'
- Have function `in_word_set' return a pointer rather than a
- boolean.
-
- `-t'
- Make use of the user-defined `struct'.
-
- `-S TOTAL SWITCH STATEMENTS'
- Generate 1 or more C `switch' statement rather than use a
- large, (and potentially sparse) static array. Although the
- exact time and space savings of this approach vary according
- to your C compiler's degree of optimization, this method
- often results in smaller and faster code.
-
- If the `-t', `-S', and `-p' options are omitted the default action
-is to generate a `char *' array containing the keys, together with
-additional null strings used for padding the array. By experimenting
-with the various input and output options, and timing the resulting C
-code, you can determine the best option choices for different keyword
-set characteristics.
-
-
-File: gperf.info, Node: Options, Next: Bugs, Prev: Description, Up: Top
-
-Options to the `gperf' Utility
-******************************
-
- There are *many* options to `gperf'. They were added to make the
-program more convenient for use with real applications. "On-line" help
-is readily available via the `-h' option. Other options include:
-
- `-a'
- Generate ANSI Standard C code using function prototypes. The
- default is to use "classic" K&R C function declaration syntax.
-
- `-c'
- Generates C code that uses the `strncmp' function to perform
- string comparisons. The default action is to use `strcmp'.
-
- `-C'
- Makes the contents of all generated lookup tables constant,
- *i.e.*, "readonly." Many compilers can generate more
- efficient code for this by putting the tables in readonly
- memory.
-
- `-d'
- Enables the debugging option. This produces verbose
- diagnostics to "standard error" when `gperf' is executing.
- It is useful both for maintaining the program and for
- determining whether a given set of options is actually
- speeding up the search for a solution. Some useful
- information is dumped at the end of the program when the `-d'
- option is enabled.
-
- `-D'
- Handle keywords whose key position sets hash to duplicate
- values. Duplicate hash values occur for two reasons:
-
- * Since `gperf' does not backtrack it is possible for it
- to process all your input keywords without finding a
- unique mapping for each word. However, frequently only
- a very small number of duplicates occur, and the
- majority of keys still require one probe into the table.
-
- * Sometimes a set of keys may have the same names, but
- possess different attributes. With the -D option
- `gperf' treats all these keys as part of an equivalence
- class and generates a perfect hash function with multiple
- comparisons for duplicate keys. It is up to you to
- completely disambiguate the keywords by modifying the
- generated C code. However, `gperf' helps you out by
- organizing the output.
-
- Option `-D' is extremely useful for certain large or highly
- redundant keyword sets, *i.e.*, assembler instruction opcodes.
- Using this option usually means that the generated hash
- function is no longer perfect. On the other hand, it permits
- `gperf' to work on keyword sets that it otherwise could not
- handle.
-
- `-e KEYWORD DELIMITER LIST'
- Allows the user to provide a string containing delimiters
- used to separate keywords from their attributes. The default
- is ",\n". This option is essential if you want to use
- keywords that have embedded commas or newlines. One useful
- trick is to use -e'TAB', where TAB is the literal tab
- character.
-
- `-E'
- Define constant values using an enum local to the lookup
- function rather than with #defines. This also means that
- different lookup functions can reside in the same file.
- Thanks to James Clark (jjc at ai.mit.edu).
-
- `-f ITERATION AMOUNT'
- Generate the perfect hash function "fast." This decreases
- `gperf''s running time at the cost of minimizing generated
- table-size. The iteration amount represents the number of
- times to iterate when resolving a collision. `0' means
- `iterate by the number of keywords. This option is probably
- most useful when used in conjunction with options `-D' and/or
- `-S' for *large* keyword sets.
-
- `-g'
- Assume a GNU compiler, *e.g.*, `g++' or `gcc'. This makes
- all generated routines use the "inline" keyword to remove the
- cost of function calls. Note that `-g' does *not* imply
- `-a', since other non-ANSI C compilers may have provisions
- for a function `inline' feature.
-
- `-G'
- Generate the static table of keywords as a static global
- variable, rather than hiding it inside of the lookup function
- (which is the default behavior).
-
- `-h'
- Prints a short summary on the meaning of each program option.
- Aborts further program execution.
-
- `-H HASH FUNCTION NAME'
- Allows you to specify the name for the generated hash
- function. Default name is `hash.' This option permits the
- use of two hash tables in the same file.
-
- `-i INITIAL VALUE'
- Provides an initial VALUE for the associate values array.
- Default is 0. Increasing the initial value helps inflate the
- final table size, possibly leading to more time efficient
- keyword lookups. Note that this option is not particularly
- useful when `-S' is used. Also, `-i' is overriden when the
- `-r' option is used.
-
- `-j JUMP VALUE'
- Affects the "jump value," *i.e.*, how far to advance the
- associated character value upon collisions. JUMP VALUE is
- rounded up to an odd number, the default is 5. If the JUMP
- VALUE is 0 `gper f' jumps by random amounts.
-
- `-k KEYS'
- Allows selection of the character key positions used in the
- keywords' hash function. The allowable choices range between
- 1-126, inclusive. The positions are separated by commas,
- *e.g.*, `-k 9,4,13,14'; ranges may be used, *e.g.*, `-k 2-7';
- and positions may occur in any order. Furthermore, the
- meta-character '*' causes the generated hash function to
- consider *all* character positions in each key, whereas '$'
- instructs the hash function to use the "final character" of a
- key (this is the only way to use a character position greater
- than 126, incidentally).
-
- For instance, the option `-k 1,2,4,6-10,'$'' generates a hash
- function that considers positions 1,2,4,6,7,8,9,10, plus the
- last character in each key (which may differ for each key,
- obviously). Keys with length less than the indicated key
- positions work properly, since selected key positions
- exceeding the key length are simply not referenced in the
- hash function.
-
- `-K KEY NAME'
- By default, the program assumes the structure component
- identifier for the keyword is "name." This option allows an
- arbitrary choice of identifier for this component, although
- it still must occur as the first field in your supplied
- `struct'.
-
- `-l'
- Compare key lengths before trying a string comparison. This
- might cut down on the number of string comparisons made
- during the lookup, since keys with different lengths are
- never compared via `strcmp'. However, using `-l' might
- greatly increase the size of the generated C code if the
- lookup table range is large (which implies that the switch
- option `-S' is not enabled), since the length table contains
- as many elements as there are entries in the lookup table.
-
- `-L GENERATED LANGUAGE NAME'
- Instructs `gperf' to generate code in the language specified
- by the option's argument. Languages handled are currently
- C++ and C. The default is C.
-
- `-n'
- Instructs the generator not to include the length of a
- keyword when computing its hash value. This may save a few
- assembly instructions in the generated lookup table.
-
- `-N LOOKUP FUNCTION NAME'
- Allows you to specify the name for the generated lookup
- function. Default name is `in_word_set.' This option
- permits completely automatic generation of perfect hash
- functions, especially when multiple generated hash functions
- are used in the same application.
-
- `-o'
- Reorders the keywords by sorting the keywords so that
- frequently occuring key position set components appear first.
- A second reordering pass follows so that keys with "already
- determined values" are placed towards the front of the
- keylist. This may decrease the time required to generate a
- perfect hash function for many keyword sets, and also produce
- more minimal perfect hash functions. The reason for this is
- that the reordering helps prune the search time by handling
- inevitable collisions early in the search process. On the
- other hand, if the number of keywords is *very* large using
- `-o' may *increase* `gperf''s execution time, since
- collisions will begin earlier and continue throughout the
- remainder of keyword processing. See Cichelli's paper from
- the January 1980 Communications of the ACM for details.
-
- `-p'
- Changes the return value of the generated function
- `in_word_set' from boolean (*i.e.*, 0 or 1), to either type
- "pointer to user-defined struct," (if the `-t' option is
- enabled), or simply to `char *', if `-t' is not enabled.
- This option is most useful when the `-t' option (allowing
- user-defined structs) is used. For example, it is possible
- to automatically generate the GNU C reserved word lookup
- routine with the options `-p' and `-t'.
-
- `-r'
- Utilizes randomness to initialize the associated values
- table. This frequently generates solutions faster than using
- deterministic initialization (which starts all associated
- values at 0). Furthermore, using the randomization option
- generally increases the size of the table. If `gperf' has
- difficultly with a certain keyword set try using `-r' or `-D'.
-
- `-s SIZE-MULTIPLE'
- Affects the size of the generated hash table. The numeric
- argument for this option indicates "how many times larger or
- smaller" the maximum associated value range should be, in
- relationship to the number of keys. If the SIZE-MULTIPLE is
- negative the maximum associated value is calculated by
- *dividing* it into the total number of keys. For example, a
- value of 3 means "allow the maximum associated value to be
- about 3 times larger than the number of input keys."
-
- Conversely, a value of -3 means "allow the maximum associated
- value to be about 3 times smaller than the number of input
- keys." Negative values are useful for limiting the overall
- size of the generated hash table, though this usually
- increases the number of duplicate hash values.
-
- If `generate switch' option `-S' is *not* enabled, the maximum
- associated value influences the static array table size, and
- a larger table should decrease the time required for an
- unsuccessful search, at the expense of extra table space.
-
- The default value is 1, thus the default maximum associated
- value about the same size as the number of keys (for
- efficiency, the maximum associated value is always rounded up
- to a power of 2). The actual table size may vary somewhat,
- since this technique is essentially a heuristic. In
- particular, setting this value too high slows down `gperf''s
- runtime, since it must search through a much larger range of
- values. Judicious use of the `-f' option helps alleviate this
- overhead, however.
-
- `-S TOTAL SWITCH STATEMENTS'
- Causes the generated C code to use a `switch' statement
- scheme, rather than an array lookup table. This can lead to
- a reduction in both time and space requirements for some
- keyfiles. The argument to this option determines how many
- `switch' statements are generated. A value of 1 generates 1
- `switch' containing all the elements, a value of 2 generates
- 2 tables with 1/2 the elements in each `switch', etc. This
- is useful since many C compilers cannot correctly generate
- code for large `switch' statements. This option was inspired
- in part by Keith Bostic's original C program.
-
- `-t'
- Allows you to include a `struct' type declaration for
- generated code. Any text before a pair of consecutive %% is
- consider part of the type declaration. Key words and
- additional fields may follow this, one group of fields per
- line. A set of examples for generating perfect hash tables
- and functions for Ada, C, and G++, Pascal, and Modula 2 and 3
- reserved words are distributed with this release.
-
- `-T'
- Prevents the transfer of the type declaration to the output
- file. Use this option if the type is already defined
- elsewhere.
-
- `-v'
- Prints out the current version number.
-
- `-Z CLASS NAME'
- Allow user to specify name of generated C++ class. Default
- name is `Perfect_Hash'.
-
-
-File: gperf.info, Node: Bugs, Next: Projects, Prev: Options, Up: Top
-
-Known Bugs and Limitations with `gperf'
-***************************************
-
- The following are some limitations with the current release of
-`gperf':
-
- * The `gperf' utility is tuned to execute quickly, and works quickly
- for small to medium size data sets (around 1000 keywords). It is
- extremely useful for maintaining perfect hash functions for
- compiler keyword sets. Several recent enhancements now enable
- `gperf' to work efficiently on much larger keyword sets (over
- 15,000 keywords). When processing large keyword sets it helps
- greatly to have over 8 megs of RAM.
-
- However, since `gperf' does not backtrack no guaranteed solution
- occurs on every run. On the other hand, it is usually easy to
- obtain a solution by varying the option parameters. In
- particular, try the `-r' option, and also try changing the default
- arguments to the `-s' and `-j' options. To *guarantee* a
- solution, use the `-D' and `-S' options, although the final
- results are not likely to be a *perfect* hash function anymore!
- Finally, use the `-f' option if you want `gperf' to generate the
- perfect hash function *fast*, with less emphasis on making it
- minimal.
-
- * The size of the generate static keyword array can get *extremely*
- large if the input keyword file is large or if the keywords are
- quite similar. This tends to slow down the compilation of the
- generated C code, and *greatly* inflates the object code size. If
- this situation occurs, consider using the `-S' option to reduce
- data size, potentially increasing keyword recognition time a
- negligible amount. Since many C compilers cannot correctly
- generated code for large switch statements it is important to
- qualify the -S option with an appropriate numerical argument that
- controls the number of switch statements generated.
-
- * The maximum number of key positions selected for a given key has an
- arbitrary limit of 126. This restriction should be removed, and if
- anyone considers this a problem write me and let me know so I can
- remove the constraint.
-
- * The C++ source code only compiles correctly with GNU G++, version
- 1.36 (and hopefully later versions). Porting to AT&T cfront would
- be tedious, but possible (and desirable). There is also a K&R C
- version available now. This should compile without change on most
- BSD systems, but may require a bit of work to run on SYSV, since
- `gperf' uses ALLOCA in several places. Send mail to schmidt at
- ics.uci.edu for information.
-
-
-File: gperf.info, Node: Projects, Next: Implementation, Prev: Bugs, Up: Top
-
-Things Still Left to Do
-***********************
-
- It should be "relatively" easy to replace the current perfect hash
-function algorithm with a more exhaustive approach; the perfect hash
-module is essential independent from other program modules. Additional
-worthwhile improvements include:
-
- * Make the algorithm more robust. At present, the program halts
- with an error diagnostic if it can't find a direct solution and
- the `-D' option is not enabled. A more comprehensive, albeit
- computationally expensive, approach would employ backtracking or
- enable alternative options and retry. It's not clear how helpful
- this would be, in general, since most search sets are rather small
- in practice.
-
- * Another useful extension involves modifying the program to generate
- "minimal" perfect hash functions (under certain circumstances, the
- current version can be rather extravagant in the generated table
- size). Again, this is mostly of theoretical interest, since a
- sparse table often produces faster lookups, and use of the `-S'
- `switch' option can minimize the data size, at the expense of
- slightly longer lookups (note that the gcc compiler generally
- produces good code for `switch' statements, reducing the need for
- more complex schemes).
-
- * In addition to improving the algorithm, it would also be useful to
- generate a C++ class or Ada package as the code output, in
- addition to the current C routines.
-
-
-File: gperf.info, Node: Implementation, Next: Bibliography, Prev: Projects, Up: Top
-
-Implementation Details of GNU `gperf'
-*************************************
-
- A paper describing the high-level description of the data structures
-and algorithms used to implement `gperf' will soon be available. This
-paper is useful not only from a maintenance and enhancement perspective,
-but also because they demonstrate several clever and useful programming
-techniques, *e.g.*, `Iteration Number' boolean arrays, double hashing,
-a "safe" and efficient method for reading arbitrarily long input from a
-file, and a provably optimal algorithm for simultaneously determining
-both the minimum and maximum elements in a list.
-
-
-File: gperf.info, Node: Bibliography, Prev: Implementation, Up: Top
-
-Bibliography
-************
-
- [1] Chang, C.C.: A Scheme for Constructing Ordered Minimal Perfect
-Hashing Functions Information Sciences 39(1986), 187-195.
-
- [2] Cichelli, Richard J. Author's Response to "On Cichelli's Minimal
-Perfec t Hash Functions Method" Communications of the ACM, 23,
-12(December 1980), 729.
-
- [3] Cichelli, Richard J. Minimal Perfect Hash Functions Made Simple
-Communications of the ACM, 23, 1(January 1980), 17-19.
-
- [4] Cook, C. R. and Oldehoeft, R.R. A Letter Oriented Minimal
-Perfect Hashing Function SIGPLAN Notices, 17, 9(September 1982), 18-27.
-
- [5] Cormack, G. V. and Horspool, R. N. S. and Kaiserwerth, M.
-Practical Perfect Hashing Computer Journal, 28, 1(January 1985), 54-58.
-
- [6] Jaeschke, G. Reciprocal Hashing: A Method for Generating Minimal
-Perfect Hashing Functions Communications of the ACM, 24, 12(December
-1981), 829-833.
-
- [7] Jaeschke, G. and Osterburg, G. On Cichelli's Minimal Perfect
-Hash Functions Method Communications of the ACM, 23, 12(December 1980),
-728-729.
-
- [8] Sager, Thomas J. A Polynomial Time Generator for Minimal Perfect
-Hash Functions Communications of the ACM, 28, 5(December 1985), 523-532
-
- [9] Schmidt, Douglas C. GPERF: A Perfect Hash Function Generator
-Second USENIX C++ Conference Proceedings, April 1990.
-
- [10] Sebesta, R.W. and Taylor, M.A. Minimal Perfect Hash Functions
-for Reserved Word Lists SIGPLAN Notices, 20, 12(September 1985), 47-53.
-
- [11] Sprugnoli, R. Perfect Hashing Functions: A Single Probe
-Retrieving Method for Static Sets Communications of the ACM, 20
-11(November 1977), 841-850.
-
- [12] Stallman, Richard M. Using and Porting GNU CC Free Software
-Foundation, 1988.
-
- [13] Stroustrup, Bjarne The C++ Programming Language.
-Addison-Wesley, 1986.
-
- [14] Tiemann, Michael D. User's Guide to GNU C++ Free Software
-Foundation, 1989.
-
-
-
-Tag Table:
-Node: Top1224
-Node: Copying2511
-Node: Contributors15814
-Node: Motivation16914
-Node: Search Structures18181
-Node: Description21734
-Node: Input Format23554
-Node: Declarations24349
-Node: Keywords26656
-Node: Functions28247
-Node: Output Format28741
-Node: Options31211
-Node: Bugs44581
-Node: Projects47268
-Node: Implementation48845
-Node: Bibliography49564
-
-End Tag Table
diff --git a/apps/gperf/gperf.texi b/apps/gperf/gperf.texi
deleted file mode 100644
index 0e1f45bf91e..00000000000
--- a/apps/gperf/gperf.texi
+++ /dev/null
@@ -1,1188 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-
-@c $Id$
-
-@include version.texi
-
-@c %**start of header
-@settitle User's Guide to @code{gperf}
-@setfilename gperf.info
-@c %**end of header
-
-@ifinfo
-@format
-START-INFO-DIR-ENTRY
-* Gperf: (gperf). Perfect Hash Function Generator.
-END-INFO-DIR-ENTRY
-@end format
-@end ifinfo
-
-@ifinfo
-This file documents the features of the GNU Perfect Hash Function Generator
-
-Copyright (C) 1989 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-@ignore
-Permission is granted to process this file through @TeX{} and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-
-@end ignore
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-section entitled ``GNU General Public License'' is included exactly as
-in the original, and provided that the entire resulting derived work is
-distributed under the terms of a permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that the section entitled ``GNU @code{gperf} General Public License'' an
-d
-this permission notice may be included in translations approved by the
-Free Software Foundation instead of in the original English.
-@end ifinfo
-
-@setchapternewpage odd
-
-@titlepage
-@title GNU GPERF Utility
-@subtitle User's Guide
-@subtitle Last updated @value{UPDATED}
-@subtitle For GPERF version @value{VERSION}
-@author Douglas C. Schmidt
-
-@c The following two commands
-@c start the copyright page.
-@page
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1989 Free Software Foundation, Inc.
-
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-section entitled ``GNU @code{gperf} General Public License'' is included exactl
-y as
-in the original, and provided that the entire resulting derived work is
-distributed under the terms of a permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that the section entitled ``GNU @code{gperf} General Public License'' ma
-y be
-included in a translation approved by the author instead of in the original
-English.
-@end titlepage
-
-@ifinfo
-@node Top, Copying, (dir), (dir)
-@top GNU GPERF Utility
-@chapter Introduction
-
-This manual documents the GNU @code{gperf} perfect hash function generator
-utility, focusing on its features and how to use them, and how to report
-bugs.
-
-@end ifinfo
-@menu
-* Copying:: GNU @code{gperf} General Public License says
- how you can copy and share @code{gperf}.
-* Contributors:: People who have contributed to @code{gperf}.
-* Motivation:: Static search structures and GNU GPERF.
-* Search Structures:: Static search structures and GNU @code{gperf}
-* Description:: High-level discussion of how GPERF functions.
-* Options:: A description of options to the program.
-* Bugs:: Known bugs and limitations with GPERF.
-* Projects:: Things still left to do.
-* Implementation:: Implementation Details for GNU GPERF.
-* Bibliography:: Material Referenced in this Report.
-
- --- The Detailed Node Listing ---
-
-High-Level Description of GNU @code{gperf}
-
-* Input Format:: Input Format to @code{gperf}
-* Output Format:: Output Format for Generated C Code with @code{gperf}
-
-Input Format to @code{gperf}
-
-* Declarations:: @code{struct} Declarations and C Code Inclusion.
-* Keywords:: Format for Keyword Entries.
-* Functions:: Including Additional C Functions.
-@end menu
-
-@node Copying, Contributors, Top, Top
-@unnumbered GNU GENERAL PUBLIC LICENSE
-@center Version 1, February 1989
-
-@display
-Copyright @copyright{} 1989 Free Software Foundation, Inc.
-675 Mass Ave, Cambridge, MA 02139, USA
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-@end display
-
-@unnumberedsec Preamble
-
- The license agreements of most software companies try to keep users
-at the mercy of those companies. By contrast, our General Public
-License is intended to guarantee your freedom to share and change free
-software---to make sure the software is free for all its users. The
-General Public License applies to the Free Software Foundation's
-software and to any other program whose authors commit to using it.
-You can use it for your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Specifically, the General Public License is designed to make
-sure that you have the freedom to give away or sell copies of free
-software, that you receive source code or can get it if you want it,
-that you can change the software or use pieces of it in new free
-programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of a such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must tell them their rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
-@iftex
-@unnumberedsec TERMS AND CONDITIONS
-@end iftex
-@ifinfo
-@center TERMS AND CONDITIONS
-@end ifinfo
-
-@enumerate
-@item
-This License Agreement applies to any program or other work which
-contains a notice placed by the copyright holder saying it may be
-distributed under the terms of this General Public License. The
-``Program'', below, refers to any such program or work, and a ``work based
-on the Program'' means either the Program or any work containing the
-Program or a portion of it, either verbatim or with modifications. Each
-licensee is addressed as ``you''.
-
-@item
-You may copy and distribute verbatim copies of the Program's source
-code as you receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice and
-disclaimer of warranty; keep intact all the notices that refer to this
-General Public License and to the absence of any warranty; and give any
-other recipients of the Program a copy of this General Public License
-along with the Program. You may charge a fee for the physical act of
-transferring a copy.
-
-@item
-You may modify your copy or copies of the Program or any portion of
-it, and copy and distribute such modifications under the terms of Paragraph
-1 above, provided that you also do the following:
-
-@itemize @bullet
-@item
-cause the modified files to carry prominent notices stating that
-you changed the files and the date of any change; and
-
-@item
-cause the whole of any work that you distribute or publish, that
-in whole or in part contains the Program or any part thereof, either
-with or without modifications, to be licensed at no charge to all
-third parties under the terms of this General Public License (except
-that you may choose to grant warranty protection to some or all
-third parties, at your option).
-
-@item
-If the modified program normally reads commands interactively when
-run, you must cause it, when started running for such interactive use
-in the simplest and most usual way, to print or display an
-announcement including an appropriate copyright notice and a notice
-that there is no warranty (or else, saying that you provide a
-warranty) and that users may redistribute the program under these
-conditions, and telling the user how to view a copy of this General
-Public License.
-
-@item
-You may charge a fee for the physical act of transferring a
-copy, and you may at your option offer warranty protection in
-exchange for a fee.
-@end itemize
-
-Mere aggregation of another independent work with the Program (or its
-derivative) on a volume of a storage or distribution medium does not bring
-the other work under the scope of these terms.
-
-@item
-You may copy and distribute the Program (or a portion or derivative of
-it, under Paragraph 2) in object code or executable form under the terms of
-Paragraphs 1 and 2 above provided that you also do one of the following:
-
-@itemize @bullet
-@item
-accompany it with the complete corresponding machine-readable
-source code, which must be distributed under the terms of
-Paragraphs 1 and 2 above; or,
-
-@item
-accompany it with a written offer, valid for at least three
-years, to give any third party free (except for a nominal charge
-for the cost of distribution) a complete machine-readable copy of the
-corresponding source code, to be distributed under the terms of
-Paragraphs 1 and 2 above; or,
-
-@item
-accompany it with the information you received as to where the
-corresponding source code may be obtained. (This alternative is
-allowed only for noncommercial distribution and only if you
-received the program in object code or executable form alone.)
-@end itemize
-
-Source code for a work means the preferred form of the work for making
-modifications to it. For an executable file, complete source code means
-all the source code for all modules it contains; but, as a special
-exception, it need not include source code for modules which are standard
-libraries that accompany the operating system on which the executable
-file runs, or for standard header files or definitions files that
-accompany that operating system.
-
-@item
-You may not copy, modify, sublicense, distribute or transfer the
-Program except as expressly provided under this General Public License.
-Any attempt otherwise to copy, modify, sublicense, distribute or transfer
-the Program is void, and will automatically terminate your rights to use
-the Program under this License. However, parties who have received
-copies, or rights to use copies, from you under this General Public
-License will not have their licenses terminated so long as such parties
-remain in full compliance.
-
-@item
-By copying, distributing or modifying the Program (or any work based
-on the Program) you indicate your acceptance of this license to do so,
-and all its terms and conditions.
-
-@item
-Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the original
-licensor to copy, distribute or modify the Program subject to these
-terms and conditions. You may not impose any further restrictions on the
-recipients' exercise of the rights granted herein.
-
-@item
-The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of the license which applies to it and ``any
-later version'', you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-the license, you may choose any version ever published by the Free Software
-Foundation.
-
-@item
-If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-@iftex
-@heading NO WARRANTY
-@end iftex
-@ifinfo
-@center NO WARRANTY
-@end ifinfo
-
-@item
-BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-@item
-IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
-ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT
-LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES
-SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE
-WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
-ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-@end enumerate
-
-@iftex
-@heading END OF TERMS AND CONDITIONS
-@end iftex
-@ifinfo
-@center END OF TERMS AND CONDITIONS
-@end ifinfo
-
-@page
-@unnumberedsec Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to humanity, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these
-terms.
-
- To do so, attach the following notices to the program. It is safest to
-attach them to the start of each source file to most effectively convey
-the exclusion of warranty; and each file should have at least the
-``copyright'' line and a pointer to where the full notice is found.
-
-@smallexample
-@var{one line to give the program's name and a brief idea of what it does.}
-Copyright (C) 19@var{yy} @var{name of author}
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 1, or (at your option)
-any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-@end smallexample
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-@smallexample
-Gnomovision version 69, Copyright (C) 19@var{yy} @var{name of author}
-Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-This is free software, and you are welcome to redistribute it
-under certain conditions; type `show c' for details.
-@end smallexample
-
-The hypothetical commands `show w' and `show c' should show the
-appropriate parts of the General Public License. Of course, the
-commands you use may be called something other than `show w' and `show
-c'; they could even be mouse-clicks or menu items---whatever suits your
-program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a ``copyright disclaimer'' for the program, if
-necessary. Here a sample; alter the names:
-
-@example
-Yoyodyne, Inc., hereby disclaims all copyright interest in the
-program `Gnomovision' (a program to direct compilers to make passes
-at assemblers) written by James Hacker.
-
-@var{signature of Ty Coon}, 1 April 1989
-Ty Coon, President of Vice
-@end example
-
-That's all there is to it!
-
-@node Contributors, Motivation, Copying, Top
-@unnumbered Contributors to GNU @code{gperf} Utility
-
-@itemize @bullet
-@item
-The GNU @code{gperf} perfect hash function generator utility was
-originally written in GNU C++ by Douglas C. Schmidt. It is now also
-available in a highly-portable ``old-style'' C version. The general
-idea for the perfect hash function generator was inspired by Keith
-Bostic's algorithm written in C, and distributed to net.sources around
-1984. The current program is a heavily modified, enhanced, and extended
-implementation of Keith's basic idea, created at the University of
-California, Irvine. Bugs, patches, and suggestions should be reported
-to schmidt at ics.uci.edu.
-
-@item
-Special thanks is extended to Michael Tiemann and Doug Lea, for
-providing a useful compiler, and for giving me a forum to exhibit my
-creation.
-
-In addition, Adam de Boor and Nels Olson provided many tips and insights
-that greatly helped improve the quality and functionality of @code{gperf}.
-@end itemize
-
-@node Motivation, Search Structures, Contributors, Top
-@chapter Introduction
-
-@code{gperf} is a perfect hash function generator written in C++. It
-transforms an @emph{n} element user-specified keyword set @emph{W} into
-a perfect hash function @emph{F}. @emph{F} uniquely maps keywords in
-@emph{W} onto the range 0..@emph{k}, where @emph{k} >= @emph{n}. If
-@emph{k = n} then @emph{F} is a @emph{minimal} perfect hash function.
-@code{gperf} generates a 0..@emph{k} element static lookup table and a
-pair of C functions. These functions determine whether a given
-character string @emph{s} occurs in @emph{W}, using at most one probe
-into the lookup table.
-
-@code{gperf} currently generates the reserved keyword recognizer for
-lexical analyzers in several production and research compilers and
-language processing tools, including GNU C, GNU C++, GNU Pascal, GNU
-Modula 3, and GNU indent. Complete C++ source code for @code{gperf} is
-available via anonymous ftp from ics.uci.edu. @code{gperf} also is
-distributed along with the GNU libg++ library. A highly portable,
-functionally equivalent K&R C version of @code{gperf} is archived in
-comp.sources.unix, volume 20. Finally, a paper describing
-@code{gperf}'s design and implementation in greater detail is available
-in the Second USENIX C++ Conference proceedings.
-
-@node Search Structures, Description, Motivation, Top
-@chapter Static search structures and GNU @code{gperf}
-
-A @dfn{static search structure} is an Abstract Data Type with certain
-fundamental operations, @emph{e.g.}, @emph{initialize}, @emph{insert},
-and @emph{retrieve}. Conceptually, all insertions occur before any
-retrievals. In practice, @code{gperf} generates a @code{static} array
-containing search set keywords and any associated attributes specified
-by the user. Thus, there is essentially no execution-time cost for the
-insertions. It is a useful data structure for representing @emph{static
-search sets}. Static search sets occur frequently in software system
-applications. Typical static search sets include compiler reserved
-words, assembler instruction opcodes, and built-in shell interpreter
-commands. Search set members, called @dfn{keywords}, are inserted into
-the structure only once, usually during program initialization, and are
-not generally modified at run-time.
-
-Numerous static search structure implementations exist, @emph{e.g.},
-arrays, linked lists, binary search trees, digital search tries, and
-hash tables. Different approaches offer trade-offs between space
-utilization and search time efficiency. For example, an @emph{n} element
-sorted array is space efficient, though the average-case time
-complexity for retrieval operations using binary search is
-proportional to log @emph{n}. Conversely, hash table implementations
-often locate a table entry in constant time, but typically impose
-additional memory overhead and exhibit poor worst case performance.
-
-
-@emph{Minimal perfect hash functions} provide an optimal solution for a
-particular class of static search sets. A minimal perfect hash
-function is defined by two properties:
-
-@itemize @bullet
-@item
-It allows keyword recognition in a static search set using at most
-@emph{one} probe into the hash table. This represents the ``perfect''
-property.
-@item
-The actual memory allocated to store the keywords is precisely large
-enough for the keyword set, and @emph{no larger}. This is the
-``minimal'' property.
-@end itemize
-
-For most applications it is far easier to generate @emph{perfect} hash
-functions than @emph{minimal perfect} hash functions. Moreover,
-non-minimal perfect hash functions frequently execute faster than
-minimal ones in practice. This phenomena occurs since searching a
-sparse keyword table increases the probability of locating a ``null''
-entry, thereby reducing string comparisons. @code{gperf}'s default
-behavior generates @emph{near-minimal} perfect hash functions for
-keyword sets. However, @code{gperf} provides many options that permit
-user control over the degree of minimality and perfection.
-
-Static search sets often exhibit relative stability over time. For
-example, Ada's 63 reserved words have remained constant for nearly a
-decade. It is therefore frequently worthwhile to expend concerted
-effort building an optimal search structure @emph{once}, if it
-subsequently receives heavy use multiple times. @code{gperf} removes
-the drudgery associated with constructing time- and space-efficient
-search structures by hand. It has proven a useful and practical tool
-for serious programming projects. Output from @code{gperf} is currently
-used in several production and research compilers, including GNU C, GNU
-C++, GNU Pascal, and GNU Modula 3. The latter two compilers are not yet
-part of the official GNU distribution. Each compiler utilizes
-@code{gperf} to automatically generate static search structures that
-efficiently identify their respective reserved keywords.
-
-@node Description, Options, Search Structures, Top
-@chapter High-Level Description of GNU @code{gperf}
-
-@menu
-* Input Format:: Input Format to @code{gperf}
-* Output Format:: Output Format for Generated C Code with @code{gperf}
-@end menu
-
-The perfect hash function generator @code{gperf} reads a set of
-``keywords'' from a @dfn{keyfile} (or from the standard input by
-default). It attempts to derive a perfect hashing function that
-recognizes a member of the @dfn{static keyword set} with at most a
-single probe into the lookup table. If @code{gperf} succeeds in
-generating such a function it produces a pair of C source code routines
-that perform hashing and table lookup recognition. All generated C code
-is directed to the standard output. Command-line options described
-below allow you to modify the input and output format to @code{gperf}.
-
-By default, @code{gperf} attempts to produce time-efficient code, with
-less emphasis on efficient space utilization. However, several options
-exist that permit trading-off execution time for storage space and vice
-versa. In particular, expanding the generated table size produces a
-sparse search structure, generally yielding faster searches.
-Conversely, you can direct @code{gperf} to utilize a C @code{switch}
-statement scheme that minimizes data space storage size. Furthermore,
-using a C @code{switch} may actually speed up the keyword retrieval time
-somewhat. Actual results depend on your C compiler, of course.
-
-In general, @code{gperf} assigns values to the characters it is using
-for hashing until some set of values gives each keyword a unique value.
-A helpful heuristic is that the larger the hash value range, the easier
-it is for @code{gperf} to find and generate a perfect hash function.
-Experimentation is the key to getting the most from @code{gperf}.
-
-@node Input Format, Output Format, Description, Description
-@section Input Format to @code{gperf}
-
-You can control the input keyfile format by varying certain command-line
-arguments, in particular the @samp{-t} option. The input's appearance
-is similar to GNU utilities @code{flex} and @code{bison} (or UNIX
-utilities @code{lex} and @code{yacc}). Here's an outline of the general
-format:
-
-@example
-@group
-declarations
-%%
-keywords
-%%
-functions
-@end group
-@end example
-
-@emph{Unlike} @code{flex} or @code{bison}, all sections of @code{gperf}'s input
-are optional. The following sections describe the input format for each
-section.
-
-@menu
-* Declarations:: @code{struct} Declarations and C Code Inclusion.
-* Keywords:: Format for Keyword Entries.
-* Functions:: Including Additional C Functions.
-@end menu
-
-@node Declarations, Keywords, Input Format, Input Format
-@subsection @code{struct} Declarations and C Code Inclusion
-
-The keyword input file optionally contains a section for including
-arbitrary C declarations and definitions, as well as provisions for
-providing a user-supplied @code{struct}. If the @samp{-t} option
-@emph{is} enabled, you @emph{must} provide a C @code{struct} as the last
-component in the declaration section from the keyfile file. The first
-field in this struct must be a @code{char *} identifier called ``name,''
-although it is possible to modify this field's name with the @samp{-K}
-option described below.
-
-Here is simple example, using months of the year and their attributes as
-input:
-
-@example
-@group
-struct months @{ char *name; int number; int days; int leap_days; @};
-%%
-january, 1, 31, 31
-february, 2, 28, 29
-march, 3, 31, 31
-april, 4, 30, 30
-may, 5, 31, 31
-june, 6, 30, 30
-july, 7, 31, 31
-august, 8, 31, 31
-september, 9, 30, 30
-october, 10, 31, 31
-november, 11, 30, 30
-december, 12, 31, 31
-@end group
-@end example
-
-Separating the @code{struct} declaration from the list of key words and
-other fields are a pair of consecutive percent signs, @code{%%},
-appearing left justified in the first column, as in the UNIX utility
-@code{lex}.
-
-Using a syntax similar to GNU utilities @code{flex} and @code{bison}, it
-is possible to directly include C source text and comments verbatim into
-the generated output file. This is accomplished by enclosing the region
-inside left-justified surrounding @code{%@{}, @code{%@}} pairs. Here is
-an input fragment based on the previous example that illustrates this
-feature:
-
-@example
-@group
-%@{
-#include <assert.h>
-/* This section of code is inserted directly into the output. */
-int return_month_days (struct months *months, int is_leap_year);
-%@}
-struct months @{ char *name; int number; int days; int leap_days; @};
-%%
-january, 1, 31, 31
-february, 2, 28, 29
-march, 3, 31, 31
-...
-@end group
-@end example
-
-It is possible to omit the declaration section entirely. In this case
-the keyfile begins directly with the first keyword line, @emph{e.g.}:
-
-@example
-@group
-january, 1, 31, 31
-february, 2, 28, 29
-march, 3, 31, 31
-april, 4, 30, 30
-...
-@end group
-@end example
-
-@node Keywords, Functions, Declarations, Input Format
-@subsection Format for Keyword Entries
-
-The second keyfile format section contains lines of keywords and any
-associated attributes you might supply. A line beginning with @samp{#}
-in the first column is considered a comment. Everything following the
-@samp{#} is ignored, up to and including the following newline.
-
-The first field of each non-comment line is always the key itself. It
-should be given as a simple name, @emph{i.e.}, without surrounding
-string quotation marks, and be left-justified flush against the first
-column. In this context, a ``field'' is considered to extend up to, but
-not include, the first blank, comma, or newline. Here is a simple
-example taken from a partial list of C reserved words:
-
-@example
-@group
-# These are a few C reserved words, see the c.@code{gperf} file
-# for a complete list of ANSI C reserved words.
-unsigned
-sizeof
-switch
-signed
-if
-default
-for
-while
-return
-@end group
-@end example
-
-Note that unlike @code{flex} or @code{bison} the first @code{%%} marker
-may be elided if the declaration section is empty.
-
-Additional fields may optionally follow the leading keyword. Fields
-should be separated by commas, and terminate at the end of line. What
-these fields mean is entirely up to you; they are used to initialize the
-elements of the user-defined @code{struct} provided by you in the
-declaration section. If the @samp{-t} option is @emph{not} enabled
-these fields are simply ignored. All previous examples except the last
-one contain keyword attributes.
-
-@node Functions, , Keywords, Input Format
-@subsection Including Additional C Functions
-
-The optional third section also corresponds closely with conventions
-found in @code{flex} and @code{bison}. All text in this section,
-starting at the final @code{%%} and extending to the end of the input
-file, is included verbatim into the generated output file. Naturally,
-it is your responsibility to ensure that the code contained in this
-section is valid C.
-
-@node Output Format, , Input Format, Description
-@section Output Format for Generated C Code with @code{gperf}
-
-Several options control how the generated C code appears on the standard
-output. Two C function are generated. They are called @code{hash} and
-@code{in_word_set}, although you may modify the name for
-@code{in_word_set} with a command-line option. Both functions require
-two arguments, a string, @code{char *} @var{str}, and a length
-parameter, @code{int} @var{len}. Their default function prototypes are
-as follows:
-
-@example
-@group
-static int hash (char *str, int len);
-int in_word_set (char *str, int len);
-@end group
-@end example
-
-By default, the generated @code{hash} function returns an integer value
-created by adding @var{len} to several user-specified @var{str} key
-positions indexed into an @dfn{associated values} table stored in a
-local static array. The associated values table is constructed
-internally by @code{gperf} and later output as a static local C array called
-@var{hash_table}; its meaning and properties are described below.
-@xref{Implementation}. The relevant key positions are specified via the
-@samp{-k} option when running @code{gperf}, as detailed in the @emph{Options}
-section below. @xref{Options}.
-
-Two options, @samp{-g} (assume you are compiling with GNU C and its
-@code{inline} feature) and @samp{-a} (assume ANSI C-style function
-prototypes), alter the content of both the generated @code{hash} and
-@code{in_word_set} routines. However, function @code{in_word_set} may
-be modified more extensively, in response to your option settings. The
-options that affect the @code{in_word_set} structure are:
-
-@itemize @bullet
-@table @samp
-@item -p
-Have function @code{in_word_set} return a pointer rather than a boolean.
-
-@item -t
-Make use of the user-defined @code{struct}.
-
-@item -S @var{total switch statements}
-Generate 1 or more C @code{switch} statement rather than use a large,
-(and potentially sparse) static array. Although the exact time and
-space savings of this approach vary according to your C compiler's
-degree of optimization, this method often results in smaller and faster
-code.
-@end table
-@end itemize
-
-If the @samp{-t}, @samp{-S}, and @samp{-p} options are omitted the
-default action is to generate a @code{char *} array containing the keys,
-together with additional null strings used for padding the array. By
-experimenting with the various input and output options, and timing the
-resulting C code, you can determine the best option choices for
-different keyword set characteristics.
-
-@node Options, Bugs, Description, Top
-@chapter Options to the @code{gperf} Utility
-
-There are @emph{many} options to @code{gperf}. They were added to make
-the program more convenient for use with real applications. ``On-line''
-help is readily available via the @samp{-h} option. Other options
-include:
-
-@itemize @bullet
-@table @samp
-@item -a
-Generate ANSI Standard C code using function prototypes. The default is
-to use ``classic'' K&R C function declaration syntax.
-
-@item -c
-Generates C code that uses the @code{strncmp} function to perform
-string comparisons. The default action is to use @code{strcmp}.
-
-@item -C
-Makes the contents of all generated lookup tables constant, @emph{i.e.},
-``readonly.'' Many compilers can generate more efficient code for this
-by putting the tables in readonly memory.
-
-@item -d
-Enables the debugging option. This produces verbose diagnostics to
-``standard error'' when @code{gperf} is executing. It is useful both for
-maintaining the program and for determining whether a given set of
-options is actually speeding up the search for a solution. Some useful
-information is dumped at the end of the program when the @samp{-d}
-option is enabled.
-
-@item -D
-Handle keywords whose key position sets hash to duplicate values.
-Duplicate hash values occur for two reasons:
-
-@itemize @bullet
-@item
-Since @code{gperf} does not backtrack it is possible for it to process
-all your input keywords without finding a unique mapping for each word.
-However, frequently only a very small number of duplicates occur, and
-the majority of keys still require one probe into the table.
-@item
-Sometimes a set of keys may have the same names, but possess different
-attributes. With the -D option @code{gperf} treats all these keys as part of
-an equivalence class and generates a perfect hash function with multiple
-comparisons for duplicate keys. It is up to you to completely
-disambiguate the keywords by modifying the generated C code. However,
-@code{gperf} helps you out by organizing the output.
-@end itemize
-
-Option @samp{-D} is extremely useful for certain large or highly
-redundant keyword sets, @emph{i.e.}, assembler instruction opcodes.
-Using this option usually means that the generated hash function is no
-longer perfect. On the other hand, it permits @code{gperf} to work on
-keyword sets that it otherwise could not handle.
-
-@item -e @var{keyword delimiter list}
-Allows the user to provide a string containing delimiters used to
-separate keywords from their attributes. The default is ",\n". This
-option is essential if you want to use keywords that have embedded
-commas or newlines. One useful trick is to use -e'TAB', where TAB is
-the literal tab character.
-
-@item -E
-Define constant values using an enum local to the lookup function rather
-than with #defines. This also means that different lookup functions can
-reside in the same file. Thanks to James Clark (jjc at ai.mit.edu).
-
-@item -f @var{iteration amount}
-Generate the perfect hash function ``fast.'' This decreases @code{gperf}'s
-running time at the cost of minimizing generated table-size. The
-iteration amount represents the number of times to iterate when
-resolving a collision. `0' means `iterate by the number of keywords.
-This option is probably most useful when used in conjunction with options
-@samp{-D} and/or @samp{-S} for @emph{large} keyword sets.
-
-@item -g
-Assume a GNU compiler, @emph{e.g.}, @code{g++} or @code{gcc}. This
-makes all generated routines use the ``inline'' keyword to remove the
-cost of function calls. Note that @samp{-g} does @emph{not} imply
-@samp{-a}, since other non-ANSI C compilers may have provisions for a
-function @code{inline} feature.
-
-@item -G
-Generate the static table of keywords as a static global variable,
-rather than hiding it inside of the lookup function (which is the
-default behavior).
-
-@item -h
-Prints a short summary on the meaning of each program option. Aborts
-further program execution.
-
-@item -H @var{hash function name}
-Allows you to specify the name for the generated hash function. Default
-name is `hash.' This option permits the use of two hash tables in the
-same file.
-
-@item -i @var{initial value}
-Provides an initial @var{value} for the associate values array. Default
-is 0. Increasing the initial value helps inflate the final table size,
-possibly leading to more time efficient keyword lookups. Note that this
-option is not particularly useful when @samp{-S} is used. Also,
-@samp{-i} is overriden when the @samp{-r} option is used.
-
-@item -j @var{jump value}
-Affects the ``jump value,'' @emph{i.e.}, how far to advance the
-associated character value upon collisions. @var{Jump value} is rounded
-up to an odd number, the default is 5. If the @var{jump value} is 0 @code{gper
-f}
-jumps by random amounts.
-
-@item -k @var{keys}
-Allows selection of the character key positions used in the keywords'
-hash function. The allowable choices range between 1-126, inclusive.
-The positions are separated by commas, @emph{e.g.}, @samp{-k 9,4,13,14};
-ranges may be used, @emph{e.g.}, @samp{-k 2-7}; and positions may occur
-in any order. Furthermore, the meta-character '*' causes the generated
-hash function to consider @strong{all} character positions in each key,
-whereas '$' instructs the hash function to use the ``final character''
-of a key (this is the only way to use a character position greater than
-126, incidentally).
-
-For instance, the option @samp{-k 1,2,4,6-10,'$'} generates a hash
-function that considers positions 1,2,4,6,7,8,9,10, plus the last
-character in each key (which may differ for each key, obviously). Keys
-with length less than the indicated key positions work properly, since
-selected key positions exceeding the key length are simply not
-referenced in the hash function.
-
-@item -K @var{key name}
-By default, the program assumes the structure component identifier for
-the keyword is ``name.'' This option allows an arbitrary choice of
-identifier for this component, although it still must occur as the first
-field in your supplied @code{struct}.
-
-@item -l
-Compare key lengths before trying a string comparison. This might cut
-down on the number of string comparisons made during the lookup, since
-keys with different lengths are never compared via @code{strcmp}.
-However, using @samp{-l} might greatly increase the size of the
-generated C code if the lookup table range is large (which implies that
-the switch option @samp{-S} is not enabled), since the length table
-contains as many elements as there are entries in the lookup table.
-
-@item -L @var{generated language name}
-Instructs @code{gperf} to generate code in the language specified by the
-option's argument. Languages handled are currently C++ and C. The
-default is C.
-
-@item -n
-Instructs the generator not to include the length of a keyword when
-computing its hash value. This may save a few assembly instructions in
-the generated lookup table.
-
-@item -N @var{lookup function name}
-Allows you to specify the name for the generated lookup function.
-Default name is `in_word_set.' This option permits completely automatic
-generation of perfect hash functions, especially when multiple generated
-hash functions are used in the same application.
-
-@item -o
-Reorders the keywords by sorting the keywords so that frequently
-occuring key position set components appear first. A second reordering
-pass follows so that keys with ``already determined values'' are placed
-towards the front of the keylist. This may decrease the time required
-to generate a perfect hash function for many keyword sets, and also
-produce more minimal perfect hash functions. The reason for this is
-that the reordering helps prune the search time by handling inevitable
-collisions early in the search process. On the other hand, if the
-number of keywords is @emph{very} large using @samp{-o} may
-@emph{increase} @code{gperf}'s execution time, since collisions will begin
-earlier and continue throughout the remainder of keyword processing.
-See Cichelli's paper from the January 1980 Communications of the ACM for
-details.
-
-@item -p
-Changes the return value of the generated function @code{in_word_set}
-from boolean (@emph{i.e.}, 0 or 1), to either type ``pointer to
-user-defined struct,'' (if the @samp{-t} option is enabled), or simply
-to @code{char *}, if @samp{-t} is not enabled. This option is most
-useful when the @samp{-t} option (allowing user-defined structs) is
-used. For example, it is possible to automatically generate the GNU C
-reserved word lookup routine with the options @samp{-p} and @samp{-t}.
-
-@item -r
-Utilizes randomness to initialize the associated values table. This
-frequently generates solutions faster than using deterministic
-initialization (which starts all associated values at 0). Furthermore,
-using the randomization option generally increases the size of the
-table. If @code{gperf} has difficultly with a certain keyword set try using
-@samp{-r} or @samp{-D}.
-
-@item -s @var{size-multiple}
-Affects the size of the generated hash table. The numeric argument for
-this option indicates ``how many times larger or smaller'' the maximum
-associated value range should be, in relationship to the number of keys.
-If the @var{size-multiple} is negative the maximum associated value is
-calculated by @emph{dividing} it into the total number of keys. For
-example, a value of 3 means ``allow the maximum associated value to be
-about 3 times larger than the number of input keys.''
-
-Conversely, a value of -3 means ``allow the maximum associated value to
-be about 3 times smaller than the number of input keys.'' Negative
-values are useful for limiting the overall size of the generated hash
-table, though this usually increases the number of duplicate hash
-values.
-
-If `generate switch' option @samp{-S} is @emph{not} enabled, the maximum
-associated value influences the static array table size, and a larger
-table should decrease the time required for an unsuccessful search, at
-the expense of extra table space.
-
-The default value is 1, thus the default maximum associated value about
-the same size as the number of keys (for efficiency, the maximum
-associated value is always rounded up to a power of 2). The actual
-table size may vary somewhat, since this technique is essentially a
-heuristic. In particular, setting this value too high slows down
-@code{gperf}'s runtime, since it must search through a much larger range
-of values. Judicious use of the @samp{-f} option helps alleviate this
-overhead, however.
-
-@item -S @var{total switch statements}
-Causes the generated C code to use a @code{switch} statement scheme,
-rather than an array lookup table. This can lead to a reduction in both
-time and space requirements for some keyfiles. The argument to this
-option determines how many @code{switch} statements are generated. A
-value of 1 generates 1 @code{switch} containing all the elements, a
-value of 2 generates 2 tables with 1/2 the elements in each
-@code{switch}, etc. This is useful since many C compilers cannot
-correctly generate code for large @code{switch} statements. This option
-was inspired in part by Keith Bostic's original C program.
-
-@item -t
-Allows you to include a @code{struct} type declaration for generated
-code. Any text before a pair of consecutive %% is consider part of the
-type declaration. Key words and additional fields may follow this, one
-group of fields per line. A set of examples for generating perfect hash
-tables and functions for Ada, C, and G++, Pascal, and Modula 2 and 3
-reserved words are distributed with this release.
-
-@item -T
-Prevents the transfer of the type declaration to the output file. Use
-this option if the type is already defined elsewhere.
-
-@item -v
-Prints out the current version number.
-
-@item -Z @var{class name}
-Allow user to specify name of generated C++ class. Default name is
-@code{Perfect_Hash}.
-@end table
-@end itemize
-
-@node Bugs, Projects, Options, Top
-@chapter Known Bugs and Limitations with @code{gperf}
-
-The following are some limitations with the current release of
-@code{gperf}:
-
-@itemize @bullet
-@item
-The @code{gperf} utility is tuned to execute quickly, and works quickly
-for small to medium size data sets (around 1000 keywords). It is
-extremely useful for maintaining perfect hash functions for compiler
-keyword sets. Several recent enhancements now enable @code{gperf} to
-work efficiently on much larger keyword sets (over 15,000 keywords).
-When processing large keyword sets it helps greatly to have over 8 megs
-of RAM.
-
-However, since @code{gperf} does not backtrack no guaranteed solution
-occurs on every run. On the other hand, it is usually easy to obtain a
-solution by varying the option parameters. In particular, try the
-@samp{-r} option, and also try changing the default arguments to the
-@samp{-s} and @samp{-j} options. To @emph{guarantee} a solution, use
-the @samp{-D} and @samp{-S} options, although the final results are not
-likely to be a @emph{perfect} hash function anymore! Finally, use the
-@samp{-f} option if you want @code{gperf} to generate the perfect hash
-function @emph{fast}, with less emphasis on making it minimal.
-
-@item
-The size of the generate static keyword array can get @emph{extremely}
-large if the input keyword file is large or if the keywords are quite
-similar. This tends to slow down the compilation of the generated C
-code, and @emph{greatly} inflates the object code size. If this
-situation occurs, consider using the @samp{-S} option to reduce data
-size, potentially increasing keyword recognition time a negligible
-amount. Since many C compilers cannot correctly generated code for
-large switch statements it is important to qualify the @var{-S} option
-with an appropriate numerical argument that controls the number of
-switch statements generated.
-
-@item
-The maximum number of key positions selected for a given key has an
-arbitrary limit of 126. This restriction should be removed, and if
-anyone considers this a problem write me and let me know so I can remove
-the constraint.
-
-@item
-The C++ source code only compiles correctly with GNU G++, version 1.36
-(and hopefully later versions). Porting to AT&T cfront would be
-tedious, but possible (and desirable). There is also a K&R C version
-available now. This should compile without change on most BSD systems,
-but may require a bit of work to run on SYSV, since @code{gperf} uses
-@var{alloca} in several places. Send mail to schmidt at ics.uci.edu for
-information.
-@end itemize
-
-@node Projects, Implementation, Bugs, Top
-@chapter Things Still Left to Do
-
-It should be ``relatively'' easy to replace the current perfect hash
-function algorithm with a more exhaustive approach; the perfect hash
-module is essential independent from other program modules. Additional
-worthwhile improvements include:
-
-@itemize @bullet
-@item
-Make the algorithm more robust. At present, the program halts with an
-error diagnostic if it can't find a direct solution and the @samp{-D}
-option is not enabled. A more comprehensive, albeit computationally
-expensive, approach would employ backtracking or enable alternative
-options and retry. It's not clear how helpful this would be, in
-general, since most search sets are rather small in practice.
-
-@item
-Another useful extension involves modifying the program to generate
-``minimal'' perfect hash functions (under certain circumstances, the
-current version can be rather extravagant in the generated table size).
-Again, this is mostly of theoretical interest, since a sparse table
-often produces faster lookups, and use of the @samp{-S} @code{switch}
-option can minimize the data size, at the expense of slightly longer
-lookups (note that the gcc compiler generally produces good code for
-@code{switch} statements, reducing the need for more complex schemes).
-
-@item
-In addition to improving the algorithm, it would also be useful to
-generate a C++ class or Ada package as the code output, in addition to
-the current C routines.
-@end itemize
-
-@node Implementation, Bibliography, Projects, Top
-@chapter Implementation Details of GNU @code{gperf}
-
-A paper describing the high-level description of the data structures and
-algorithms used to implement @code{gperf} will soon be available. This
-paper is useful not only from a maintenance and enhancement perspective,
-but also because they demonstrate several clever and useful programming
-techniques, @emph{e.g.}, `Iteration Number' boolean arrays, double
-hashing, a ``safe'' and efficient method for reading arbitrarily long
-input from a file, and a provably optimal algorithm for simultaneously
-determining both the minimum and maximum elements in a list.
-
-@page
-
-@node Bibliography, , Implementation, Top
-@chapter Bibliography
-
-[1] Chang, C.C.: @i{A Scheme for Constructing Ordered Minimal Perfect
-Hashing Functions} Information Sciences 39(1986), 187-195.
-
-[2] Cichelli, Richard J. @i{Author's Response to ``On Cichelli's Minimal Perfec
-t Hash
-Functions Method''} Communications of the ACM, 23, 12(December 1980), 729.
-
-[3] Cichelli, Richard J. @i{Minimal Perfect Hash Functions Made Simple}
-Communications of the ACM, 23, 1(January 1980), 17-19.
-
-[4] Cook, C. R. and Oldehoeft, R.R. @i{A Letter Oriented Minimal
-Perfect Hashing Function} SIGPLAN Notices, 17, 9(September 1982), 18-27.
-
-[5] Cormack, G. V. and Horspool, R. N. S. and Kaiserwerth, M.
-@i{Practical Perfect Hashing} Computer Journal, 28, 1(January 1985), 54-58.
-
-[6] Jaeschke, G. @i{Reciprocal Hashing: A Method for Generating Minimal
-Perfect Hashing Functions} Communications of the ACM, 24, 12(December
-1981), 829-833.
-
-[7] Jaeschke, G. and Osterburg, G. @i{On Cichelli's Minimal Perfect
-Hash Functions Method} Communications of the ACM, 23, 12(December 1980),
-728-729.
-
-[8] Sager, Thomas J. @i{A Polynomial Time Generator for Minimal Perfect
-Hash Functions} Communications of the ACM, 28, 5(December 1985), 523-532
-
-[9] Schmidt, Douglas C. @i{GPERF: A Perfect Hash Function Generator}
-Second USENIX C++ Conference Proceedings, April 1990.
-
-[10] Sebesta, R.W. and Taylor, M.A. @i{Minimal Perfect Hash Functions
-for Reserved Word Lists} SIGPLAN Notices, 20, 12(September 1985), 47-53.
-
-[11] Sprugnoli, R. @i{Perfect Hashing Functions: A Single Probe
-Retrieving Method for Static Sets} Communications of the ACM, 20
-11(November 1977), 841-850.
-
-[12] Stallman, Richard M. @i{Using and Porting GNU CC} Free Software Foundation,
-1988.
-
-[13] Stroustrup, Bjarne @i{The C++ Programming Language.} Addison-Wesley, 1986.
-
-[14] Tiemann, Michael D. @i{User's Guide to GNU C++} Free Software
-Foundation, 1989.
-
-@contents
-@bye
diff --git a/apps/gperf/mdate-sh b/apps/gperf/mdate-sh
deleted file mode 100755
index 37171f21fbd..00000000000
--- a/apps/gperf/mdate-sh
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/bin/sh
-# Get modification time of a file or directory and pretty-print it.
-# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
-# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-# Prevent date giving response in another language.
-LANG=C
-export LANG
-LC_ALL=C
-export LC_ALL
-LC_TIME=C
-export LC_TIME
-
-# Get the extended ls output of the file or directory.
-# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
-if ls -L /dev/null 1>/dev/null 2>&1; then
- set - x`ls -L -l -d $1`
-else
- set - x`ls -l -d $1`
-fi
-# The month is at least the fourth argument
-# (3 shifts here, the next inside the loop).
-shift
-shift
-shift
-
-# Find the month. Next argument is day, followed by the year or time.
-month=
-until test $month
-do
- shift
- case $1 in
- Jan) month=January; nummonth=1;;
- Feb) month=February; nummonth=2;;
- Mar) month=March; nummonth=3;;
- Apr) month=April; nummonth=4;;
- May) month=May; nummonth=5;;
- Jun) month=June; nummonth=6;;
- Jul) month=July; nummonth=7;;
- Aug) month=August; nummonth=8;;
- Sep) month=September; nummonth=9;;
- Oct) month=October; nummonth=10;;
- Nov) month=November; nummonth=11;;
- Dec) month=December; nummonth=12;;
- esac
-done
-
-day=$2
-
-# Here we have to deal with the problem that the ls output gives either
-# the time of day or the year.
-case $3 in
- *:*) set `date`; eval year=\$$#
- case $2 in
- Jan) nummonthtod=1;;
- Feb) nummonthtod=2;;
- Mar) nummonthtod=3;;
- Apr) nummonthtod=4;;
- May) nummonthtod=5;;
- Jun) nummonthtod=6;;
- Jul) nummonthtod=7;;
- Aug) nummonthtod=8;;
- Sep) nummonthtod=9;;
- Oct) nummonthtod=10;;
- Nov) nummonthtod=11;;
- Dec) nummonthtod=12;;
- esac
- # For the first six month of the year the time notation can also
- # be used for files modified in the last year.
- if (expr $nummonth \> $nummonthtod) > /dev/null;
- then
- year=`expr $year - 1`
- fi;;
- *) year=$3;;
-esac
-
-# The result.
-echo $day $month $year
diff --git a/apps/gperf/src/Bool_Array.cpp b/apps/gperf/src/Bool_Array.cpp
deleted file mode 100644
index 926c9bc2ecd..00000000000
--- a/apps/gperf/src/Bool_Array.cpp
+++ /dev/null
@@ -1,105 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Fast lookup table abstraction implemented as an Iteration Number Array
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#include "Bool_Array.h"
-
-ACE_RCSID(src, Bool_Array, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
-// Prints out debugging diagnostics.
-
-Bool_Array::~Bool_Array (void)
-{
- if (option[DEBUG])
- ACE_DEBUG ((LM_DEBUG,
- "\ndumping boolean array information\n"
- "size = %u\niteration number = %u\nend of array dump\n",
- size_,
- generation_number_));
- delete [] this->storage_array_;
-}
-
-Bool_Array::Bool_Array (void)
- : storage_array_ (0),
- generation_number_ (0),
- size_ (0)
-{
-}
-
-int
-Bool_Array::open (u_long s)
-{
- this->generation_number_ = 1;
- this->size_ = s;
-
- ACE_NEW_RETURN (storage_array_,
- u_long[s],
- -1);
-
- ACE_OS::memset (storage_array_,
- 0,
- s * sizeof *storage_array_);
-
- if (option[DEBUG])
- ACE_DEBUG ((LM_DEBUG,
- "\nbool array size = %u, total bytes = %u\n",
- size_,
- size_ * (int) sizeof *storage_array_));
- return 0;
-}
-
-int
-Bool_Array::find (u_long slot)
-{
- if (storage_array_[slot] == generation_number_)
- return 1;
- else
- {
- storage_array_[slot] = generation_number_;
- return 0;
- }
-}
-
-void
-Bool_Array::reset (void)
-{
- if (++generation_number_ == 0)
- {
- if (option[DEBUG])
- ACE_DEBUG ((LM_DEBUG,
- "(re-initializing bool_array)..."));
-
- this->generation_number_ = 1;
- ACE_OS::memset (storage_array_,
- 0,
- size_ * sizeof *storage_array_);
- if (option[DEBUG])
- ACE_DEBUG ((LM_DEBUG,
- "done\n"));
- }
-}
-
-#endif /* ACE_HAS_GPERF */
diff --git a/apps/gperf/src/Bool_Array.h b/apps/gperf/src/Bool_Array.h
deleted file mode 100644
index 30902b10752..00000000000
--- a/apps/gperf/src/Bool_Array.h
+++ /dev/null
@@ -1,76 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#ifndef BOOL_ARRAY_H
-#define BOOL_ARRAY_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "Options.h"
-
-#if defined (ACE_HAS_GPERF)
-
-class Bool_Array
-{
- // = TITLE
- // Efficient lookup table abstraction implemented as a "Generation
- // Number" Array.
- //
- // = DESCRIPTION
- // Uses a "Generation Numbering" implementation to minimize
- // initialization time.
-public:
- // = Initialization and termination methods.
- Bool_Array (void);
- // Constructor
-
- int open (u_long);
- // Initialize the array (requires O(n) time).
-
- ~Bool_Array (void);
- // Destructor.
-
- int find (u_long value);
- // Locate the <value> in the array (requires O(1) time).
-
- void reset (void);
- // Reinitializes the array (requires O(1) time).
-
-private:
- u_long *storage_array_;
- // Initialization of the index space.
-
- u_long generation_number_;
- // Keep track of the current Generation.
-
- u_long size_;
- // Keep track of array size.
-};
-
-#endif /* ACE_HAS_GPERF */
-#endif /* BOOL_ARRAY_H */
-
diff --git a/apps/gperf/src/Gen_Perf.cpp b/apps/gperf/src/Gen_Perf.cpp
deleted file mode 100644
index 81458b44397..00000000000
--- a/apps/gperf/src/Gen_Perf.cpp
+++ /dev/null
@@ -1,454 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#include "Gen_Perf.h"
-
-ACE_RCSID(src, Gen_Perf, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
-#include "Vectors.h"
-
-// Current release version.
-extern const char *version_string;
-
-// Reads input keys, possibly applies the reordering heuristic, sets
-// the maximum associated value size (rounded up to the nearest power
-// of 2), may initialize the associated values array, and determines
-// the maximum hash table size. Note: using the random numbers is
-// often helpful, though not as deterministic, of course!
-
-Gen_Perf::Gen_Perf (void)
- : fewest_collisions (0),
- num_done (1)
-{
-}
-
-// Merge two disjoint hash key multisets to form the ordered disjoint
-// union of the sets. (In a multiset, an element can occur multiple
-// times). Precondition: both set1 and set2 must be
-// ordered. Returns the length of the combined set.
-
-int
-Gen_Perf::compute_disjoint_union (char *set1, char *set2, char *set3)
-{
- char *base = set3;
-
- while (*set1 && *set2)
- if (*set1 == *set2)
- set1++, set2++;
- else
- {
- *set3 = *set1 < *set2 ? *set1++ : *set2++;
- if (set3 == base || *set3 != *(set3 - 1))
- set3++;
- }
-
- while (*set1)
- {
- *set3 = *set1++;
- if (set3 == base || *set3 != *(set3 - 1))
- set3++;
- }
-
- while (*set2)
- {
- *set3 = *set2++;
- if (set3 == base || *set3 != *(set3 - 1))
- set3++;
- }
- *set3 = '\0';
- return set3 - base;
-}
-
-// Sort the UNION_SET in increasing frequency of occurrence. This
-// speeds up later processing since we may assume the resulting set
-// (Set_3, in this case), is ordered. Uses insertion sort, since the
-// UNION_SET is typically short.
-
-void
-Gen_Perf::sort_set (char *union_set, int len)
-{
- for (int i = 0, j = len - 1; i < j; i++)
- {
- char curr, tmp;
-
- for (curr = i + 1, tmp = union_set[curr];
- curr > 0
- && Vectors::occurrences[tmp] < Vectors::occurrences[union_set[curr-1]];
- curr--)
- union_set[curr] = union_set[curr - 1];
-
- union_set[curr] = tmp;
- }
-}
-
-// Generate a keysig's hash value.
-
-int
-Gen_Perf::hash (List_Node *key_node)
-{
- int sum = option[NOLENGTH] ? 0 : key_node->length;
-
- for (char *ptr = key_node->keysig; *ptr; ptr++)
- sum += Vectors::asso_values[*ptr];
-
- key_node->hash_value = sum;
- return sum;
-}
-
-// Find out how character value change affects successfully hash
-// items. Returns FALSE if no other hash values are affected, else
-// returns TRUE. Note that because Option.Get_Asso_Max is a power of
-// two we can guarantee that all legal Vectors::Asso_Values are
-// visited without repetition since Option.Get_Jump was forced to be
-// an odd value!
-
-inline int
-Gen_Perf::affects_prev (char c, List_Node *curr)
-{
- int original_char = Vectors::asso_values[c];
- int total_iterations;
-
- if (!option[FAST])
- total_iterations = option.asso_max ();
- else
- {
- total_iterations = option.iterations ();
-
- if (total_iterations == 0)
- total_iterations = this->key_list.keyword_list_length ();
- }
-
- // Try all legal associated values.
-
- for (int i = total_iterations - 1; i >= 0; i--)
- {
- int collisions = 0;
-
- Vectors::asso_values[c] = Vectors::asso_values[c] +
- (option.jump () ? option.jump () : ACE_OS::rand ()) & option.asso_max () - 1;
-
- // Iteration Number array is a win, O(1) intialization time!
- this->char_search.reset ();
-
- // See how this asso_value change affects previous keywords. If
- // it does better than before we'll take it!
-
- for (List_Node *ptr = this->key_list.head;
- this->char_search.find (this->hash (ptr)) == 0
- || ++collisions < fewest_collisions;
- ptr = ptr->next)
- if (ptr == curr)
- {
- fewest_collisions = collisions;
- if (option[DEBUG])
- ACE_DEBUG ((LM_DEBUG,
- "- resolved after %d iterations",
- total_iterations - i));
- return 0;
- }
- }
-
- // Restore original values, no more tries.
- Vectors::asso_values[c] = original_char;
- // If we're this far it's time to try the next character....
- return 1;
-}
-
-// Change a character value, try least-used characters first.
-
-int
-Gen_Perf::change (List_Node *prior, List_Node *curr)
-{
- if (option[DEBUG])
- ACE_DEBUG ((LM_DEBUG,
- "collision on keyword #%d, prior = \"%s\", curr = \"%s\" hash = %d\n",
- num_done,
- prior->key,
- curr->key,
- curr->hash_value));
- Gen_Perf::sort_set (this->union_set,
- compute_disjoint_union (prior->keysig,
- curr->keysig,
- this->union_set));
-
- // Try changing some values, if change doesn't alter other values
- // continue normal action.
- fewest_collisions++;
-
- for (char *temp = union_set; *temp != '\0'; temp++)
- if (affects_prev (*temp, curr) == 0)
- {
- if (option[DEBUG])
- ACE_DEBUG ((LM_DEBUG,
- " by changing asso_value['%c'] (char #%d) to %d\n",
- *temp,
- temp - union_set + 1,
- Vectors::asso_values[*temp]));
- // Good, doesn't affect previous hash values, we'll take it.
- return 0;
- }
-
- for (List_Node *ptr = this->key_list.head;
- ptr != curr;
- ptr = ptr->next)
- this->hash (ptr);
-
- this->hash (curr);
-
- if (option[DEBUG])
- ACE_DEBUG ((LM_DEBUG,
- "** collision not resolved after %d iterations, %d duplicates remain, continuing...\n",
- !option[FAST] ? option.asso_max () : option.iterations () ? option.iterations () : this->key_list.keyword_list_length (),
- fewest_collisions + this->key_list.total_duplicates));
- return 0;
-}
-
-int
-Gen_Perf::open (void)
-{
- if (this->key_list.read_keys () == -1)
- return -1;
-
- if (option[ORDER])
- this->key_list.reorder ();
-
- int asso_value_max = option.asso_max ();
- int non_linked_length = this->key_list.keyword_list_length ();
-
- if (asso_value_max == 0)
- asso_value_max = non_linked_length;
- else if (asso_value_max > 0)
- asso_value_max *= non_linked_length;
- else // if (asso_value_max < 0)
- asso_value_max = non_linked_length / -asso_value_max;
-
- option.asso_max (ACE_POW (asso_value_max));
-
- if (option[RANDOM])
- {
- ACE_OS::srand (ACE_OS::time (0));
-
- for (int i = 0; i < ACE_STANDARD_CHARACTER_SET_SIZE; i++)
- Vectors::asso_values[i] = (ACE_OS::rand () & asso_value_max - 1);
- }
- else
- {
- int asso_value = option.initial_value ();
-
- // Initialize array if user requests non-zero default.
- if (asso_value)
- for (int i = ACE_STANDARD_CHARACTER_SET_SIZE - 1; i >= 0; i--)
- Vectors::asso_values[i] = asso_value & option.asso_max () - 1;
- }
-
- this->max_hash_value = this->key_list.max_key_length ()
- + option.asso_max ()
- * option.max_keysig_size ();
-
- ACE_NEW_RETURN (this->union_set,
- char[2 * option.max_keysig_size () + 1],
- -1);
- printf ("/* ");
-
- if (option[C])
- printf ("C");
-
- else if (option[CPLUSPLUS])
- printf ("C++");
-
- printf (" code produced by gperf version %s */\n",
- version_string);
- Options::print_options ();
-
- if (option[DEBUG])
- ACE_DEBUG ((LM_DEBUG,
- "total non-linked keys = %d\n"
- "total duplicates = %d\n"
- "maximum associated value is %d\n"
- "maximum size of generated hash table is %d\n",
- non_linked_length,
- this->key_list.total_duplicates,
- asso_value_max,
- max_hash_value));
- if (this->char_search.open (max_hash_value + 1) == -1)
- return -1;
- return 0;
-}
-
-// For binary search, do normal string sort on the keys, and then
-// assign hash values from 0 to N-1. Then go ahead with the normal
-// logic that is there for perfect hashing.
-int
-Gen_Perf::compute_binary_search (void)
-{
- // Do a string sort.
- this->key_list.string_sort ();
-
- // Assign hash values.
- List_Node *curr;
- int hash_value;
- for (hash_value = 0, curr = this->key_list.head;
- curr != 0;
- curr = curr->next, hash_value++)
- {
- curr->hash_value = hash_value;
- }
-
- return 0;
-}
-
-int
-Gen_Perf::compute_linear_search (void)
-{
- // Convert the list of keys to a linear list without
- // equivalence classes.
- this->key_list.string_sort ();
-
- // Assign hash values.
- List_Node *curr;
- int hash_value;
- for (hash_value = 0, curr = this->key_list.head;
- curr != 0;
- curr = curr->next, hash_value++)
- {
- curr->hash_value = hash_value;
- }
- return 0;
-}
-
-int
-Gen_Perf::compute_perfect_hash (void)
-{
- List_Node *curr;
-
- for (curr = this->key_list.head;
- curr != 0;
- curr = curr->next)
- {
- this->hash (curr);
-
- for (List_Node *ptr = this->key_list.head;
- ptr != curr;
- ptr = ptr->next)
- if (ptr->hash_value == curr->hash_value)
- {
- if (this->change (ptr, curr) == -1)
- return -1;
- break;
- }
- num_done++;
- }
-
- // Make one final check, just to make sure nothing weird happened...
-
- this->char_search.reset ();
-
- for (curr = this->key_list.head;
- curr;
- curr = curr->next)
- if (this->char_search.find (this->hash (curr)) != 0)
- if (option[DUP])
- // Keep track of the number of "dynamic" links (i.e., keys
- // that hash to the same value) so that we can use it later
- // when generating the output.
- this->key_list.total_duplicates++;
- else
- {
- // Yow, big problems. we're outta here!
- ACE_ERROR ((LM_ERROR,
- "\nInternal error, duplicate value %d:\n"
- "try options -D or -r, or use new key positions.\n\n",
- this->hash (curr)));
- return -1;
- }
-
- return 0;
-}
-
-// Does the hard stuff.... Initializes the Bool Array, and attempts
-// to find a perfect function that will hash all the key words without
-// getting any duplications. This is made much easier since we aren't
-// attempting to generate *minimum* functions, only perfect ones. If
-// we can't generate a perfect function in one pass *and* the user
-// hasn't enabled the DUP option, we'll inform the user to try the
-// randomization option, use -D, or choose alternative key positions.
-// The alternatives (e.g., back-tracking) are too time-consuming, i.e,
-// exponential in the number of keys.
-
-int
-Gen_Perf::run (void)
-{
- if (this->open () == -1)
- return 1;
-
- if (option[BINARYSEARCH])
- {
- if (this->compute_binary_search () == -1)
- return 1;
- }
- else if (option[LINEARSEARCH])
- {
- if (this->compute_linear_search () == -1)
- return 1;
- }
- else
- {
- if (this->compute_perfect_hash () == -1)
- return 1;
-
- // Sorts the key word list by hash value, and then outputs the
- // list. The generated hash table code is only output if the
- // early stage of processing turned out O.K.
- this->key_list.sort ();
- }
-
- this->key_list.output ();
- return 0;
-}
-
-// Prints out some diagnostics upon completion.
-
-Gen_Perf::~Gen_Perf (void)
-{
- if (option[DEBUG])
- {
- ACE_DEBUG ((LM_DEBUG,
- "\ndumping occurrence and associated values tables\n"));
- for (int i = 0; i < ACE_STANDARD_CHARACTER_SET_SIZE; i++)
- if (Vectors::occurrences[i])
- ACE_DEBUG ((LM_DEBUG,
- "Vectors::asso_values[%c] = %6d, Vectors::occurrences[%c] = %6d\n",
- i,
- Vectors::asso_values[i],
- i,
- Vectors::occurrences[i]));
- ACE_DEBUG ((LM_DEBUG,
- "end table dumping\n"));
- }
-
- delete [] this->union_set;
-}
-
-#endif /* ACE_HAS_GPERF */
diff --git a/apps/gperf/src/Gen_Perf.h b/apps/gperf/src/Gen_Perf.h
deleted file mode 100644
index b9038face7a..00000000000
--- a/apps/gperf/src/Gen_Perf.h
+++ /dev/null
@@ -1,81 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#ifndef GEN_PERF_H
-#define GEN_PERF_H
-
-#include "Options.h"
-#include "Key_List.h"
-#include "Bool_Array.h"
-
-#if defined (ACE_HAS_GPERF)
-
-class Gen_Perf
-{
- // = TITLE
- // Provides high-level routines to manipulate the keyword list
- // structures the code generation output.
-public:
- // = Initialization and termination methods.
- Gen_Perf (void);
- // Constructor.
-
- ~Gen_Perf (void);
- // Destructor
-
- int run (void);
- // Attempt to generate a perfect hash function.
-
-private:
- int open (void);
- int change (List_Node *prior, List_Node *curr);
- int affects_prev (char c, List_Node *curr);
- int compute_perfect_hash (void);
- int compute_binary_search (void);
- int compute_linear_search (void);
- static int hash (List_Node *key_node);
- static int compute_disjoint_union (char *s1, char *s2, char *s3);
- static void sort_set (char *union_set, int len);
-
- int max_hash_value;
- // Maximum possible hash value.
-
- int fewest_collisions;
- // Records fewest # of collisions for asso value.
-
- int num_done;
- // Number of keywords processed without a collision.
-
- char *union_set;
- // Disjoint union.
-
- Key_List key_list;
- // List of the keys we're trying to map into a perfect hash
- // function.
-
- Bool_Array char_search;
- // Table that keeps track of key collisions.
-};
-
-#endif /* ACE_HAS_GPERF */
-#endif /* GEN_PERF_H */
diff --git a/apps/gperf/src/Hash_Table.cpp b/apps/gperf/src/Hash_Table.cpp
deleted file mode 100644
index c66b0b4f948..00000000000
--- a/apps/gperf/src/Hash_Table.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#include "Hash_Table.h"
-
-ACE_RCSID(src, Hash_Table, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
-#include "ace/ACE.h"
-
-// The size of the hash table is always the smallest power of 2 >= the
-// size indicated by the user. This allows several optimizations,
-// including the use of double hashing and elimination of the mod
-// instruction. Note that the size had better be larger than the
-// number of items in the hash table, else there's trouble!!!
-
-Hash_Table::Hash_Table (size_t s)
- : size_ (ACE_POW (s)),
- collisions_ (0)
-{
- if (this->size_ == 0)
- this->size_ = 1;
- ACE_NEW (this->table_,
- List_Node*[this->size_]);
- ACE_OS::memset ((char *) this->table_,
- 0,
- this->size_ * sizeof *this->table_);
-}
-
-Hash_Table::~Hash_Table (void)
-{
- if (option[DEBUG])
- {
- u_int keysig_width = option.max_keysig_size () > ACE_OS::strlen ("keysig")
- ? option.max_keysig_size ()
- : ACE_OS::strlen ("keysig");
-
- ACE_DEBUG ((LM_DEBUG,
- "\ndumping the hash table\ntotal available table slots = %d, total bytes = %d, total collisions = %d\n"
- "location, %*s, keyword\n",
- this->size_,
- this->size_ * (int) sizeof *this->table_,
- this->collisions_,
- keysig_width,
- "keysig"));
-
- for (int i = this->size_ - 1; i >= 0; i--)
- if (this->table_[i])
- ACE_DEBUG ((LM_DEBUG,
- "%8d, %*s, %s\n",
- i,
- keysig_width,
- this->table_[i]->keysig,
- this->table_[i]->key));
- ACE_DEBUG ((LM_DEBUG,
- "end dumping hash table\n\n"));
- }
-
- delete [] this->table_;
-}
-
-// If the ITEM is already in the hash table return the item found in
-// the table. Otherwise inserts the ITEM, and returns FALSE. Uses
-// double hashing.
-
-List_Node *
-Hash_Table::find (List_Node *item,
- int ignore_length)
-{
- u_int hash_val = ACE::hash_pjw (item->keysig);
- // The following works since the hash table size_ is always a power
- // of 2...
- size_t size = this->size_ - 1;
- int probe;
- int increment = (hash_val ^ (ignore_length == 0 ? item->length : 0) | 1) & size;
-
- for (probe = hash_val & size;
- this->table_[probe]
- && (ACE_OS::strcmp (this->table_[probe]->keysig, item->keysig) != 0
- || (ignore_length == 0 && this->table_[probe]->length != item->length));
- probe = probe + increment & size)
- this->collisions_++;
-
- if (this->table_[probe])
- return this->table_[probe];
- else
- {
- this->table_[probe] = item;
- return 0;
- }
-}
-
-#endif /* ACE_HAS_GPERF */
diff --git a/apps/gperf/src/Hash_Table.h b/apps/gperf/src/Hash_Table.h
deleted file mode 100644
index dba0c478eff..00000000000
--- a/apps/gperf/src/Hash_Table.h
+++ /dev/null
@@ -1,66 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#ifndef HASH_TABLE_H
-#define HASH_TABLE_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "Options.h"
-#include "List_Node.h"
-
-#if defined (ACE_HAS_GPERF)
-// @@ This class should be replaced by something in ACE, e.g.,
-// ACE_Hash_Map_Manager. Perhaps we should implement a new
-// ACE_Hash_Map that uses double hashing, however!
-class Hash_Table
-{
- // = TITLE
- // Hash table used to check for duplicate keyword entries.
- //
- // = DESCRIPTION
- // This implementation uses "double hashing."
-public:
- Hash_Table (size_t s);
-
- ~Hash_Table (void);
-
- List_Node *find (List_Node *item, int ignore_length);
-
-private:
- List_Node **table_;
- // Vector of pointers to linked lists of List_Node's.
-
- size_t size_;
- // Size of the vector.
-
- int collisions_;
- // Find out how well our double hashing is working!
-};
-
-#endif /* ACE_HAS_GPERF */
-#endif /* HASH_TABLE_H */
diff --git a/apps/gperf/src/Iterator.cpp b/apps/gperf/src/Iterator.cpp
deleted file mode 100644
index 75d6e40ddef..00000000000
--- a/apps/gperf/src/Iterator.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#include "Iterator.h"
-
-ACE_RCSID(src, Iterator, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
-// Constructor for Iterator.
-
-Iterator::Iterator (char *s,
- int lo,
- int hi,
- int word_end,
- int bad_val,
- int key_end)
- : str (s),
- end (key_end),
- end_word (word_end),
- error_value (bad_val),
- hi_bound (hi),
- lo_bound (lo)
-{
-}
-
-// Provide an Iterator, returning the ``next'' value from the list of
-// valid values given in the constructor.
-
-int
-Iterator::operator() (void)
-{
- // Variables to record the Iterator's status when handling ranges,
- // e.g., 3-12.
-
- static int size;
- static int curr_value;
- static int upper_bound;
-
- if (size)
- {
- if (++curr_value >= upper_bound)
- size = 0;
- return curr_value;
- }
- else
- {
- while (*str)
- switch (*str)
- {
- default: return error_value;
- case ',': str++; break;
- case '$': str++; return end_word;
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- for (curr_value = 0; isdigit (*str); str++)
- curr_value = curr_value * 10 + *str - '0';
-
- if (*str == '-')
- {
-
- for (size = 1, upper_bound = 0;
- isdigit (*++str);
- upper_bound = upper_bound * 10 + *str - '0');
-
- if (upper_bound <= curr_value || upper_bound > hi_bound)
- return error_value;
- }
- return curr_value >= lo_bound && curr_value <= hi_bound
- ? curr_value : error_value;
- }
-
- return end;
- }
-}
-
-#endif /* ACE_HAS_GPERF */
diff --git a/apps/gperf/src/Iterator.h b/apps/gperf/src/Iterator.h
deleted file mode 100644
index 67fbd8e4603..00000000000
--- a/apps/gperf/src/Iterator.h
+++ /dev/null
@@ -1,80 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#ifndef ITERATOR_H
-#define ITERATOR_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "Options.h"
-
-#if defined (ACE_HAS_GPERF)
-class Iterator
-{
- // = TITLE
- // Provides an Iterator that expands and decodes a control string
- // containing digits and ranges, returning an integer every time the
- // generator function is called.
- //
- // = DESCRIPTION
- // This class is used to decode the user's key position requests.
- // For example: "-k 1,2,5-10,$" will return 1, 2, 5, 6, 7, 8, 9,
- // 10, and 0 ( representing the abstract ``last character of the
- // key'' on successive calls to the member function operator ().
- // No errors are handled in these routines, they are passed back
- // to the calling routines via a user-supplied Error_Value */
-public:
- Iterator (char *s,
- int lo,
- int hi,
- int word_end,
- int bad_val,
- int key_end);
- int operator () (void);
-
-private:
- char *str;
- // A pointer to the string provided by the user.
-
- int end;
- // Value returned after last key is processed.
-
- int end_word;
- // A value marking the abstract ``end of word'' (usually '$').
-
- int error_value;
- // Error value returned when input is syntactically erroneous.
-
- int hi_bound;
- // Greatest possible value, inclusive.
-
- int lo_bound;
- // Smallest possible value, inclusive.
-};
-
-#endif /* ACE_HAS_GPERF */
-#endif /* ITERATOR_H */
diff --git a/apps/gperf/src/Key_List.cpp b/apps/gperf/src/Key_List.cpp
deleted file mode 100644
index f1e27daeeff..00000000000
--- a/apps/gperf/src/Key_List.cpp
+++ /dev/null
@@ -1,1929 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#include "Key_List.h"
-
-ACE_RCSID(src, Key_List, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
-#include "ace/Read_Buffer.h"
-#include "Hash_Table.h"
-
-// Default type for generated code.
-const char *const Key_List::default_array_type = "char *";
-
-// in_word_set return type, by default.
-const char *const Key_List::default_return_type = "char *";
-
-// How wide the printed field width must be to contain the maximum
-// hash value.
-int Key_List::field_width = 0;
-int Key_List::determined_[ACE_STANDARD_CHARACTER_SET_SIZE];
-
-// Destructor dumps diagnostics during debugging.
-
-Key_List::~Key_List (void)
-{
- if (option[DEBUG])
- this->dump ();
-
- // Free up all the nodes in the list.
- while (this->head != 0)
- {
- List_Node *temp;
-
- // Make sure to delete the linked nodes, as well.
- for (List_Node *ptr = this->head->link;
- ptr != 0;
- ptr = temp)
- {
- temp = ptr->link;
- delete ptr;
- }
-
- temp = this->head->next;
- delete this->head;
- this->head = temp;
- }
-}
-
-// Gathers the input stream into a buffer until one of two things occur:
-//
-// 1. We read a '%' followed by a '%'
-// 2. We read a '%' followed by a '}'
-//
-// The first symbolizes the beginning of the keyword list proper, The
-// second symbolizes the end of the C source code to be generated
-// verbatim in the output file.
-//
-// I assume that the keys are separated from the optional preceding
-// struct declaration by a consecutive % followed by either % or }
-// starting in the first column. The code below uses an expandible
-// buffer to scan off and return a pointer to all the code (if any)
-// appearing before the delimiter.
-
-char *
-Key_List::special_input (char delimiter)
-{
- int size = 80;
- char *buf = 0;
- ACE_NEW_RETURN (buf,
- char[size],
- 0);
- int c;
-
- for (int i = 0; (c = getchar ()) != EOF; i++)
- {
- if (c == '%')
- {
- c = getchar ();
- if (c == delimiter)
- {
- // Discard newline...
- while ((c = getchar ()) != '\n')
- continue;
-
- if (i == 0)
- {
- buf[0] = '\0';
- return buf;
- }
- else
- {
- buf[delimiter == '%' && buf[i - 2] == ';'
- ? i - 2
- : i - 1] = '\0';
- return buf;
- }
- }
- else
- buf[i++] = '%';
- }
- else if (i >= size)
- {
- // Yikes, time to grow the buffer!
-
- char *temp = 0;
- ACE_NEW_RETURN (temp,
- char[size *= 2],
- 0);
- for (int j = 0; j < i; j++)
- temp[j] = buf[j];
-
- delete [] buf;
- buf = temp;
- }
- buf[i] = c;
- }
-
- return 0;
-}
-
-// Stores any C/C++ source code that must be included verbatim into
-// the generated code output.
-
-char *
-Key_List::save_include_src (void)
-{
- int c = getchar ();
-
- if (c != '%')
- ungetc (c, stdin);
- else if ((c = getchar ()) != '{')
- ACE_ERROR_RETURN ((LM_ERROR,
- "internal error, %c != '{' on line %l in file %N",
- c),
- 0);
- else
- return special_input ('}');
- return (char *) "";
-}
-
-// Determines from the input file whether the user wants to build a
-// table from a user-defined struct, or whether the user is content to
-// simply use the default array of keys.
-
-char *
-Key_List::array_type (void)
-{
- return special_input ('%');
-}
-
-// Sets up the Return_Type, the Struct_Tag type and the Array_Type
-// based upon various user Options.
-
-int
-Key_List::output_types (void)
-{
- if (option[TYPE])
- {
- array_type_ = array_type ();
- if (array_type_ == 0)
- // Something's wrong, but we'll catch it later on....
- return -1;
- else
- {
- // Yow, we've got a user-defined type...
- int struct_tag_length = ACE_OS::strcspn (array_type_,
- "{\n\0");
- if (option[POINTER]) // And it must return a pointer...
- {
- ACE_NEW_RETURN (return_type,
- char[struct_tag_length + 2],
- -1);
- ACE_OS::strncpy (return_type,
- array_type_,
- struct_tag_length);
- return_type[struct_tag_length] = '*';
- return_type[struct_tag_length + 1] = '\0';
- }
-
- ACE_NEW_RETURN (struct_tag,
- char[struct_tag_length + 2],
- -1);
- ACE_OS::strncpy (struct_tag,
- array_type_,
- struct_tag_length);
- if (struct_tag[struct_tag_length] != ' ')
- {
- struct_tag[struct_tag_length] = ' ';
- struct_tag_length++;
- }
- struct_tag[struct_tag_length] = '\0';
- }
- }
- else if (option[POINTER]) // Return a char *.
- return_type = (char *) Key_List::default_array_type;
- return 0;
-}
-
-// Reads in all keys from standard input and creates a linked list
-// pointed to by Head. This list is then quickly checked for
-// ``links,'' i.e., unhashable elements possessing identical key sets
-// and lengths.
-
-int
-Key_List::read_keys (void)
-{
- this->include_src = this->save_include_src ();
- if (this->include_src == 0)
- return -1;
- else if (this->output_types () == -1)
- return -1;
- else
- {
- ACE_Read_Buffer input (stdin);
-
- char *buffer = input.read ('\n');
-
- if (buffer == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "No words in input file, did you forget to prepend %%%%"
- " or use -t accidentally?\n"),
- -1);
- // Read in all the keywords from the input file.
- else
- {
- List_Node *temp;
- const char *delimiter = option.delimiter ();
- ACE_NEW_RETURN (this->head,
- List_Node (buffer,
- ACE_OS::strcspn (buffer,
- delimiter)),
- -1);
- for (temp = this->head;
- (buffer = input.read ('\n'))
- && ACE_OS::strcmp (buffer, "%%");
- temp = temp->next)
- {
- ACE_NEW_RETURN (temp->next,
- List_Node (buffer,
- ACE_OS::strcspn (buffer,
- delimiter)),
- -1);
- this->total_keys++;
- }
-
- // See if any additional source code is included at end of
- // this file.
- if (buffer)
- additional_code = 1;
-
- this->list_len = this->total_keys;
-
- // Make large hash table for efficiency.
- Hash_Table table (this->list_len * Key_List::TABLE_MULTIPLE);
- List_Node *trail = 0;
-
- // Test whether there are any links and also set the maximum
- // length an identifier in the keyword list.
-
- for (temp = head;
- temp != 0;
- temp = temp->next)
- {
- List_Node *ptr = table.find (temp, option[NOLENGTH]);
-
- // Check for links. We deal with these by building an
- // equivalence class of all duplicate values (i.e.,
- // links) so that only 1 keyword is representative of
- // the entire collection. This *greatly* simplifies
- // processing during later stages of the program.
-
- if (ptr == 0)
- trail = temp;
- else
- {
- total_duplicates++;
- list_len--;
- trail->next = temp->next;
- temp->link = ptr->link;
- ptr->link = temp;
-
- // Complain if user hasn't enabled the duplicate
- // option.
- if (!option[DUP] || option[DEBUG])
- ACE_ERROR ((LM_ERROR,
- "Key link: \"%s\" = \"%s\", with key set \"%s\".\n",
- temp->key,
- ptr->key,
- temp->keysig));
- }
-
- // Update minimum and maximum keyword length, if needed.
- if (max_key_len < temp->length)
- max_key_len = temp->length;
- if (min_key_len > temp->length)
- min_key_len = temp->length;
- }
- }
-
- // Exit program if links exists and option[DUP] not set, since
- // we can't continue.
- if (total_duplicates)
- {
- if (option[DUP])
- {
- if (!option[MUTE])
- ACE_ERROR_RETURN ((LM_ERROR,
- "%d input keysigs have identical hash values, examine output carefully...\n",
- total_duplicates),
- 0);
- }
- else
- ACE_ERROR_RETURN ((LM_ERROR,
- "%d input keysigs have identical hash values,\ntry different key positions or use option -D.\n",
- total_duplicates),
- -1);
- }
- if (option[ALLCHARS])
- option.keysig_size (max_key_len);
- }
-
- return 0;
-}
-
-// Recursively merges two sorted lists together to form one sorted
-// list. The ordering criteria is by frequency of occurrence of
-// elements in the key set or by the hash value. This is a kludge,
-// but permits nice sharing of almost identical code without incurring
-// the overhead of a function call comparison.
-
-List_Node *
-Key_List::merge (List_Node *list1, List_Node *list2)
-{
- if (!list1)
- return list2;
- else if (!list2)
- return list1;
- else if (occurrence_sort && list1->occurrence < list2->occurrence
- || hash_sort && list1->hash_value > list2->hash_value
- || key_sort && strcmp (list1->key, list2->key) >= 0)
- {
- list2->next = merge (list2->next, list1);
- return list2;
- }
- else
- {
- list1->next = merge (list1->next, list2);
- return list1;
- }
-}
-
-// Applies the merge sort algorithm to recursively sort the key list
-// by frequency of occurrence of elements in the key set.
-
-List_Node *
-Key_List::merge_sort (List_Node *a_head)
-{
- if (!a_head || !a_head->next)
- return a_head;
- else
- {
- List_Node *middle = a_head;
- List_Node *temp = a_head->next->next;
-
- while (temp)
- {
- temp = temp->next;
- middle = middle->next;
- if (temp)
- temp = temp->next;
- }
-
- temp = middle->next;
- middle->next = 0;
- return merge (merge_sort (a_head), merge_sort (temp));
- }
-}
-
-// Returns the frequency of occurrence of elements in the key set.
-
-inline int
-Key_List::occurrence (List_Node *ptr)
-{
- int value = 0;
-
- for (char *temp = ptr->keysig; *temp; temp++)
- value += Vectors::occurrences[*temp];
-
- return value;
-}
-
-// Sets the index location for all keysig characters that are now
-// determined.
-
-inline void
-Key_List::determined (List_Node *ptr)
-{
- for (char *temp = ptr->keysig; *temp; temp++)
- Key_List::determined_[*temp] = 1;
-}
-
-// Returns TRUE if PTR's key set is already completely determined.
-
-inline int
-Key_List::already_determined (List_Node *ptr)
-{
- int is_determined = 1;
-
- for (char *temp = ptr->keysig; is_determined && *temp; temp++)
- is_determined = determined_[*temp];
-
- return is_determined;
-}
-
-// Reorders the table by first sorting the list so that frequently
-// occuring keys appear first, and then the list is reorded so that
-// keys whose values are already determined will be placed towards the
-// front of the list. This helps prune the search time by handling
-// inevitable collisions early in the search process. See Cichelli's
-// paper from Jan 1980 JACM for details....
-
-void
-Key_List::reorder (void)
-{
- List_Node *ptr;
-
- for (ptr = head; ptr; ptr = ptr->next)
- ptr->occurrence = occurrence (ptr);
-
- // Switch to sorting by occurrence.
- hash_sort = 0;
- occurrence_sort = 1;
-
- for (ptr = head = merge_sort (head); ptr->next; ptr = ptr->next)
- {
- determined (ptr);
-
- if (already_determined (ptr->next))
- continue;
- else
- {
- List_Node *trail_ptr = ptr->next;
- List_Node *run_ptr = trail_ptr->next;
-
- for (; run_ptr; run_ptr = trail_ptr->next)
- {
-
- if (already_determined (run_ptr))
- {
- trail_ptr->next = run_ptr->next;
- run_ptr->next = ptr->next;
- ptr = ptr->next = run_ptr;
- }
- else
- trail_ptr = run_ptr;
- }
- }
- }
-}
-
-// Outputs the maximum and minimum hash values. Since the list is
-// already sorted by hash value all we need to do is find the final
-// item!
-
-void
-Key_List::output_min_max (void)
-{
- List_Node *temp;
- for (temp = head; temp->next; temp = temp->next)
- continue;
-
- min_hash_value = head->hash_value;
- max_hash_value = temp->hash_value;
-
- if (!option[ENUM])
- ACE_OS::printf ("\n#define TOTAL_KEYWORDS %d\n#define MIN_WORD_LENGTH %d"
- "\n#define MAX_WORD_LENGTH %d\n#define MIN_HASH_VALUE %d"
- "\n#define MAX_HASH_VALUE %d\n#define HASH_VALUE_RANGE %d"
- "\n#define DUPLICATES %d\n\n",
- total_keys, min_key_len, max_key_len, min_hash_value,
- max_hash_value, max_hash_value - min_hash_value + 1,
- total_duplicates ? total_duplicates + 1 : 0);
- else if (option[GLOBAL])
- ACE_OS::printf ("enum\n{\n"
- " TOTAL_KEYWORDS = %d,\n"
- " MIN_WORD_LENGTH = %d,\n"
- " MAX_WORD_LENGTH = %d,\n"
- " MIN_HASH_VALUE = %d,\n"
- " MAX_HASH_VALUE = %d,\n"
- " HASH_VALUE_RANGE = %d,\n"
- " DUPLICATES = %d\n};\n\n",
- total_keys, min_key_len, max_key_len, min_hash_value,
- max_hash_value, max_hash_value - min_hash_value + 1,
- total_duplicates ? total_duplicates + 1 : 0);
-}
-
-// Generates the output using a C switch. This trades increased
-// search time for decreased table space (potentially *much* less
-// space for sparse tables). It the user has specified their own
-// struct in the keyword file *and* they enable the POINTER option we
-// have extra work to do. The solution here is to maintain a local
-// static array of user defined struct's, as with the
-// Output_Lookup_Function. Then we use for switch statements to
-// perform either a strcmp or strncmp, returning 0 if the str fails to
-// match, and otherwise returning a pointer to appropriate index
-// location in the local static array.
-
-void
-Key_List::output_switch (int use_keyword_table)
-{
- if (!option[GLOBAL] && use_keyword_table == 0)
- {
- if (option[LENTABLE] && option[DUP])
- output_keylength_table ();
- if (option[POINTER] && option[TYPE])
- output_keyword_table ();
- }
-
- char *comp_buffer;
- List_Node *curr = head;
- int pointer_and_type_enabled = option[POINTER] && option[TYPE];
- int total_switches = option.total_switches ();
- int switch_size = keyword_list_length () / total_switches;
-
- if (pointer_and_type_enabled)
- {
- // Keep track of the longest string we'll need!
- const char *s = "charmap[*str] == *resword->%s && !strncasecmp (str + 1, resword->%s + 1, len - 1)";
- comp_buffer =
- new char [strlen (s) + 2 * strlen (option.key_name ()) + 1];
- if (option[COMP])
- sprintf (comp_buffer, "%s == *resword->%s && !%s (str + 1, resword->%s + 1, len - 1)",
- option[STRCASECMP] ? "charmap[*str]" : "*str", option.key_name (),
- option[STRCASECMP] ? "strncasecmp" : "strncmp", option.key_name ());
- else
- sprintf (comp_buffer, "%s == *resword->%s && !%s (str + 1, resword->%s + 1)",
- option[STRCASECMP] ? "charmap[*str]" : "*str", option.key_name (),
- option[STRCASECMP] ? "strcasecmp" : "strcmp", option.key_name ());
- }
- else
- {
- if (option[COMP])
- comp_buffer = option[STRCASECMP]
- ? (char *) "charmap[*str] == *resword && !strncasecmp (str + 1, resword + 1, len - 1)"
- : (char *) "*str == *resword && !strncmp (str + 1, resword + 1, len - 1)";
- else
- comp_buffer = option[STRCASECMP]
- ? (char *) "charmap[*str] == *resword && !strncasecmp (str + 1, resword + 1, len - 1)"
- : (char *) "*str == *resword && !strcmp (str + 1, resword + 1)";
- }
- if (!option[OPTIMIZE])
- ACE_OS::printf (" if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)\n {\n");
- ACE_OS::printf (" unsigned int key = %s (str, len);\n\n", option.hash_name ());
- if (!option[OPTIMIZE])
- ACE_OS::printf (" if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)\n");
-
- ACE_OS::printf (" {\n");
-
- // Properly deal with user's who request multiple switch statements.
-
- while (curr)
- {
- List_Node *temp = curr;
- int lowest_case_value = curr->hash_value;
- int number_of_cases = 0;
-
- // Figure out a good cut point to end this switch.
-
- for (; temp && ++number_of_cases < switch_size; temp = temp->next)
- if (temp->next && temp->hash_value == temp->next->hash_value)
- while (temp->next && temp->hash_value == temp->next->hash_value)
- temp = temp->next;
-
- if (temp && total_switches != 1)
- ACE_OS::printf (" if (key <= %d)\n {\n", temp->hash_value);
- else
- ACE_OS::printf (" {\n");
-
- // Output each keyword as part of a switch statement indexed by
- // hash value.
-
- if (option[POINTER] || option[DUP] || use_keyword_table)
- {
- int i = 0;
-
- ACE_OS::printf (" %s%s *resword; %s\n\n",
- option[CONSTANT] || pointer_and_type_enabled == 0 ? "const " : "",
- pointer_and_type_enabled ? struct_tag : "char",
- option[LENTABLE] && !option[DUP] ? "unsigned int key_len;" : "");
- if (total_switches == 1)
- {
- ACE_OS::printf (" switch (key)\n {\n");
- lowest_case_value = 0;
- }
- else
- ACE_OS::printf (" switch (key - %d)\n {\n", lowest_case_value);
-
- for (temp = curr; temp && ++i <= number_of_cases; temp = temp->next)
- {
- ACE_OS::printf (" case %*d:\n",
- Key_List::field_width,
- temp->hash_value - lowest_case_value);
-
- // Handle `static links,' i.e., those that occur during
- // the initial preprocessing.
-
- if (temp->link == 0)
- {
- if (option[DEBUG])
- ACE_OS::printf (" /* hash value = %4d, keyword = \"%s\" */\n",
- temp->hash_value,
- temp->key);
- }
- else
- {
- List_Node *links;
-
- for (links = temp; links; links = links->link)
- {
- if (option[DEBUG])
- ACE_OS::printf (" /* hash value = %4d, keyword = \"%s\" */\n",
- temp->hash_value,
- links->key);
- if (pointer_and_type_enabled)
- ACE_OS::printf (" resword = &wordlist[%d];\n", links->slot);
- else if (use_keyword_table)
- ACE_OS::printf (" resword = wordlist[%d];\n", links->slot);
- else
- ACE_OS::printf (" resword = \"%s\";\n", links->key);
- ACE_OS::printf (" if (%s) return resword;\n", comp_buffer);
- }
- }
-
- // Handle unresolved duplicate hash values. These are
- // guaranteed to be adjacent since we sorted the keyword
- // list by increasing hash values.
- if (temp->next && temp->hash_value == temp->next->hash_value)
- {
-
- for ( ; temp->next && temp->hash_value == temp->next->hash_value;
- temp = temp->next)
- {
- if (pointer_and_type_enabled)
- ACE_OS::printf (" resword = &wordlist[%d];\n", temp->slot);
- else if (use_keyword_table)
- ACE_OS::printf (" resword = wordlist[%d];", temp->slot);
- else
- ACE_OS::printf (" resword = \"%s\";\n", temp->key);
- ACE_OS::printf (" if (%s) return resword;\n", comp_buffer);
- }
- if (pointer_and_type_enabled)
- ACE_OS::printf (" resword = &wordlist[%d];\n", temp->slot);
- else if (use_keyword_table)
- ACE_OS::printf (" resword = wordlist[%d];", temp->slot);
- else
- ACE_OS::printf (" resword = \"%s\";\n", temp->key);
- ACE_OS::printf (" return %s ? resword : 0;\n", comp_buffer);
- }
- else if (temp->link)
- ACE_OS::printf (" return 0;\n");
- else
- {
- if (pointer_and_type_enabled)
- ACE_OS::printf (" resword = &wordlist[%d];", temp->slot);
- else if (use_keyword_table)
- ACE_OS::printf (" resword = wordlist[%d];", temp->slot);
- else
- ACE_OS::printf (" resword = \"%s\";", temp->key);
- if (option[LENTABLE] && !option[DUP])
- ACE_OS::printf (" key_len = %d;", temp->length);
- ACE_OS::printf (" break;\n");
- }
- }
- ACE_OS::printf (" default: return 0;\n }\n");
- if (option[OPTIMIZE])
- ACE_OS::printf (" return resword;\n");
- else
- {
- ACE_OS::printf (option[LENTABLE] && !option[DUP]
- ? " if (len == key_len && %s)\n return resword;\n"
- : " if (%s)\n return resword;\n", comp_buffer);
- ACE_OS::printf (" return 0;\n");
- }
- ACE_OS::printf (" }\n");
- curr = temp;
- }
- else // Nothing special required here.
- {
- int i = 0;
- ACE_OS::printf (" char *s;\n\n switch (key - %d)\n {\n",
- lowest_case_value);
-
- for (temp = curr; temp && ++i <= number_of_cases; temp = temp->next)
- if (option[LENTABLE])
- ACE_OS::printf (" case %*d: if (len == %d) s = \"%s\"; else return 0; break;\n",
- Key_List::field_width,
- temp->hash_value - lowest_case_value,
- temp->length,
- temp->key);
- else
- ACE_OS::printf (" case %*d: s = \"%s\"; break;\n",
- Key_List::field_width,
- temp->hash_value - lowest_case_value,
- temp->key);
-
- ACE_OS::printf (" default: return 0;\n }\n ");
- if (option[COMP])
- ACE_OS::printf ("return %s == *s && !%s;\n }\n",
- option[STRCASECMP] ? "charmap[*str]" : "*str",
- option[STRCASECMP] ? "strncasecmp (s + 1, str + 1, len - 1)" : "strcmp (s + 1, str + 1)");
- else
- ACE_OS::printf ("return %s == *s && !%s;\n }\n",
- option[STRCASECMP] ? "charmap[*str]" : "*str",
- option[STRCASECMP] ? "strcasecmp (s + 1, str + 1, len - 1)" : "strcmp (s + 1, str + 1)");
- curr = temp;
- }
- }
- ACE_OS::printf (" }\n %s\n}\n", option[OPTIMIZE] ? "" : "}\n return 0;");
-}
-
-// Prints out a table of keyword lengths, for use with the comparison
-// code in generated function ``in_word_set.''
-
-void
-Key_List::output_keylength_table (void)
-{
- const int max_column = 15;
- int slot = 0;
- int column = 0;
- const char *indent = option[GLOBAL] ? "" : " ";
- List_Node *temp;
-
- if (!option[DUP] && !option[SWITCH])
- {
- ACE_OS::printf ("\n%sstatic %sunsigned %s lengthtable[] =\n%s%s{\n ",
- indent,
- option[CONSTANT] ? "const " : "",
- max_key_len <= UCHAR_MAX ? "char" : (max_key_len <= USHRT_MAX ? "short" : "long"),
- indent,
- indent);
-
- for (temp = head; temp; temp = temp->next, slot++)
- {
-
- if (slot < temp->hash_value)
- for ( ; slot < temp->hash_value; slot++)
- ACE_OS::printf ("%3d,%s", 0, ++column % (max_column - 1) ? "" : "\n ");
-
- ACE_OS::printf ("%3d,%s", temp->length, ++column % (max_column - 1 ) ? "" : "\n ");
- }
-
- ACE_OS::printf ("\n%s%s};\n",
- indent,
- indent);
- }
-}
-
-// Prints out the array containing the key words for the Gen_Perf hash
-// function.
-
-void
-Key_List::output_keyword_table (void)
-{
- const char *l_brace = *head->rest ? "{" : "";
- const char *r_brace = *head->rest ? "}," : "";
- const char *indent = option[GLOBAL] ? "" : " ";
- int slot = 0;
- List_Node *temp;
-
- int pointer_and_type_enabled = option[POINTER] && option[TYPE];
- ACE_OS::printf ("%sstatic %s%swordlist[] =\n%s%s{\n",
- indent,
- option[CONSTANT] || pointer_and_type_enabled == 0 ? "const " : "",
- struct_tag,
- indent,
- indent);
-
- // Skip over leading blank entries if there are no duplicates.
-
- if (0 < head->hash_value)
- ACE_OS::printf (" ");
-
-
- int column;
-
- for (column = 1; slot < head->hash_value; column++)
- {
- ACE_OS::printf ("%s\"\",%s%s%s",
- l_brace,
- option.fill_default (),
- r_brace,
- column % 9 ? "" : "\n ");
- slot++;
- }
-
- if (0 < head->hash_value && column % 10)
- ACE_OS::printf ("\n");
-
- // Generate an array of reserved words at appropriate locations.
-
- for (temp = head ; temp; temp = temp->next, slot++)
- {
- temp->slot = slot;
-
- if (!option[SWITCH] && (total_duplicates == 0 || !option[DUP]) && slot < temp->hash_value)
- {
- int column;
-
- ACE_OS::printf (" ");
-
- for (column = 1; slot < temp->hash_value; slot++, column++)
- ACE_OS::printf ("%s\"\",%s%s%s",
- l_brace,
- option.fill_default (),
- r_brace,
- column % 9 ? "" : "\n ");
-
- if (column % 10)
- ACE_OS::printf ("\n");
- else
- {
- ACE_OS::printf ("%s\"%s\", %s%s", l_brace, temp->key, temp->rest, r_brace);
- if (option[DEBUG])
- ACE_OS::printf (" /* hash value = %d, slot = %d */",
- temp->hash_value,
- temp->slot);
- putchar ('\n');
- continue;
- }
- }
-
- ACE_OS::printf (" %s\"%s\", %s%s", l_brace, temp->key, temp->rest, r_brace);
- if (option[DEBUG])
- ACE_OS::printf (" /* hash value = %d, slot = %d */",
- temp->hash_value,
- temp->slot);
- putchar ('\n');
-
- // Deal with links specially.
- if (temp->link)
- for (List_Node *links = temp->link; links; links = links->link)
- {
- links->slot = ++slot;
- ACE_OS::printf (" %s\"%s\", %s%s", l_brace, links->key, links->rest, r_brace);
- if (option[DEBUG])
- ACE_OS::printf (" /* hash value = %d, slot = %d */",
- links->hash_value,
- links->slot);
- putchar ('\n');
- }
-
- }
- ACE_OS::printf ("%s%s};\n\n", indent, indent);
-}
-
-// Generates C code for the binary search algorithm that returns
-// the proper encoding for each key word
-
-int
-Key_List::output_binary_search_function (void)
-{
- ACE_OS::printf ("%s\n", include_src);
-
- // Get prototype for strncmp() and strcmp().
- if (!option[SKIPSTRINGH])
- ACE_OS::printf ("#include <string.h>\n");
-
- // Output type declaration now, reference it later on....
- if (option[TYPE] && !option[NOTYPE])
- ACE_OS::printf ("%s;\n",
- array_type_);
-
- output_min_max ();
-
- if (option[STRCASECMP])
- output_strcasecmp ();
-
- // Class definition if -M is *not* enabled.
- if (option[CPLUSPLUS] && !option[SKIPCLASS])
- ACE_OS::printf ("class %s {\npublic:\n"
- " static %s%s%s (const char *str);\n};\n\n",
- option.class_name (),
- option[CONSTANT] ? "const " : "",
- return_type,
- option.function_name ());
-
- // Use the inline keyword to remove function overhead.
- if (option[INLINE])
- ACE_OS::printf ("inline\n");
-
- ACE_OS::printf ("%s%s\n", option[CONSTANT] ? "const " : "", return_type);
- if (option[CPLUSPLUS])
- ACE_OS::printf ("%s::", option.class_name ());
-
- ACE_OS::printf (option[ANSI]
- ? "%s (const char *str)\n{\n"
- : "%s (str)\n char *str;\n{\n",
- option.function_name ());
-
-// Use the switch in place of lookup table.
-
- if (option[SWITCH])
- output_switch ();
-
- // Use the lookup table, in place of switch.
- else
- {
- if (!option[GLOBAL])
- {
- if (option[LENTABLE])
- output_keylength_table ();
- output_keyword_table ();
- }
- }
-
- // Logic to handle the Binary Search.
-
- ACE_OS::printf ("int first = 0, last = 0, middle;\n");
- ACE_OS::printf ("%s*base;\n",struct_tag);
- ACE_OS::printf ("\nlast = %d;\n",total_keys - 1);
- ACE_OS::printf ("while (last >= first)\n");
- ACE_OS::printf ("\t{\n");
- ACE_OS::printf ("\t middle = (last + first) / 2;\n");
- ACE_OS::printf ("\t if (strcmp (wordlist[middle].opname_, str) == 0)\n break;\n");
- ACE_OS::printf ("\t if (strcmp (wordlist[middle].opname_, str) < 0)\n first = middle + 1;\n");
- ACE_OS::printf ("\t else last = middle - 1;\n");
- ACE_OS::printf ("\t}\n");
- ACE_OS::printf ("if (last < first)\n return 0;\n");
- ACE_OS::printf ("else\n return (&wordlist[middle]);\n}\n");
-
- if (additional_code)
- {
- for (;;)
- {
- int c = getchar ();
-
- if (c == EOF)
- break;
- else
- putchar (c);
- }
- }
-
- fflush(stdout);
-
- return 0;
-
-}
-
-// Generates C code for the linear search algorithm that returns
-// the proper encoding for each key word
-
-int
-Key_List::output_linear_search_function (void)
-{
- ACE_OS::printf ("%s\n", include_src);
-
- // Get prototype for strncmp() and strcmp().
- if (!option[SKIPSTRINGH])
- ACE_OS::printf ("#include <string.h>\n");
-
- // Output type declaration now, reference it later on....
- if (option[TYPE] && !option[NOTYPE])
- ACE_OS::printf ("%s;\n",
- array_type_);
-
- output_min_max ();
-
- if (option[STRCASECMP])
- output_strcasecmp ();
-
- // Class definition if -M is *not* enabled.
- if (option[CPLUSPLUS] && !option[SKIPCLASS])
- ACE_OS::printf ("class %s {\npublic:\n"
- " static %s%s%s (const char *str);\n};\n\n",
- option.class_name (),
- option[CONSTANT] ? "const " : "",
- return_type,
- option.function_name ());
-
- // Use the inline keyword to remove function overhead.
- if (option[INLINE])
- ACE_OS::printf ("inline\n");
-
- ACE_OS::printf ("%s%s\n",
- option[CONSTANT] ? "const " : "",
- return_type);
- if (option[CPLUSPLUS])
- ACE_OS::printf ("%s::", option.class_name ());
-
- ACE_OS::printf (option[ANSI]
- ? "%s (const char *str)\n{\n"
- : "%s (str)\n char *str;\n{\n",
- option.function_name ());
-
- // Use the switch in place of lookup table.
-
- if (option[SWITCH])
- output_switch ();
- // Use the lookup table, in place of switch.
- else
- {
- if (!option[GLOBAL])
- {
- if (option[LENTABLE])
- output_keylength_table ();
- output_keyword_table ();
- }
- }
-
- // Logic to handle the Linear Search.
-
- ACE_OS::printf ("for (int i=0; i<=%d; i++)",total_keys-1);
- ACE_OS::printf ("\t{\n");
- ACE_OS::printf ("\t if (strcmp (wordlist[i].opname_, str) == 0)\n");
- ACE_OS::printf ("\t return &wordlist[i];\n");
- ACE_OS::printf ("\t}\n");
- ACE_OS::printf ("return 0;\n}\n");
-
- if (additional_code)
- {
- for (;;)
- {
- int c = getchar ();
-
- if (c == EOF)
- break;
- else
- putchar (c);
- }
- }
-
- ACE_OS::fflush (stdout);
-
- return 0;
-
-}
-// Generates C code for the hash function that returns the proper
-// encoding for each key word.
-
-void
-Key_List::output_hash_function (void)
-{
- const int max_column = 10;
- int count = max_hash_value;
-
- // Lookup table for converting ASCII to EBCDIC.
- static const int ascii_to_ebcdic[ACE_ASCII_SIZE] =
- {
- 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F,
- 0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26,
- 0x18, 0x19, 0x3F, 0x27, 0x22, 0x1D, 0x1E, 0x1F,
-
- 0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D,
- 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
- 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
-
- 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
- 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
- 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6,
- 0xE7, 0xE8, 0xE9, 0xAD, 0xE0, 0xBD, 0x5F, 0x6D,
-
- 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
- 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
- 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6,
- 0xA7, 0xA8, 0xA9, 0xC0, 0x6A, 0xD0, 0xA1, 0x07};
-
- int ebcdic_to_ascii[ACE_EBCDIC_SIZE];
- int target;
-
- // Calculate maximum number of digits required for MAX_HASH_VALUE.
-
- for (Key_List::field_width = 2;
- (count /= 10) > 0;
- Key_List::field_width++)
- continue;
-
- if (option[INLINE])
- ACE_OS::printf ("inline\n");
-
- if (option[C])
- ACE_OS::printf ("static ");
- ACE_OS::printf ("unsigned int\n");
- if (option[CPLUSPLUS])
- ACE_OS::printf ("%s::", option.class_name ());
-
- ACE_OS::printf (option[ANSI]
- ? "%s (const char *str, unsigned int len)\n{\n"
- : "%s (str, len)\n char *str;\n unsigned int len;\n{\n",
- option.hash_name ());
-
- // Generate the asso_values table.
- ACE_OS::printf (" static %sunsigned %s asso_values[] =\n {",
- option[CONSTANT] ? "const " : "",
- max_hash_value <= UCHAR_MAX ? "char" : (max_hash_value <= USHRT_MAX ? "short" : "int"));
-
- ACE_OS::printf ("\n#if defined (ACE_MVS)");
-#if ACE_STANDARD_CHARACTER_SET_SIZE == ACE_EBCDIC_SIZE
- {
- // We are running in EBCDIC environment.
- for (count = 0; count < ACE_EBCDIC_SIZE; ++count)
- {
- if (!(count % max_column))
- ACE_OS::printf ("\n ");
-
- ACE_OS::printf ("%*d,",
- Key_List::field_width,
- Vectors::occurrences[count] ? Vectors::asso_values[count] : max_hash_value + 1);
- }
-
- ACE_OS::printf ("\n#else");
-
- for (count = 0; count < ACE_ASCII_SIZE; ++count)
- {
- if (!(count % max_column))
- ACE_OS::printf ("\n ");
-
- target = ascii_to_ebcdic[count];
- ACE_OS::printf ("%*d,",
- Key_List::field_width,
- Vectors::occurrences[target] ? Vectors::asso_values[target] : max_hash_value + 1);
- }
- }
-# else
- {
- // We are running in ASCII environment.
- for (count = 0; count < ACE_EBCDIC_SIZE; ++count)
- ebcdic_to_ascii[count] = 0;
-
- for (count = 0; count < ACE_ASCII_SIZE; ++count)
- {
- target = ascii_to_ebcdic[count];
- ebcdic_to_ascii[target] = count;
- }
-
- for (count = 0; count < ACE_EBCDIC_SIZE; ++count)
- {
- if (!(count % max_column))
- ACE_OS::printf ("\n ");
-
- target = ebcdic_to_ascii[count];
- ACE_OS::printf ("%*d,",
- Key_List::field_width,
- Vectors::occurrences[target] ? Vectors::asso_values[target] : max_hash_value + 1);
- }
- ACE_OS::printf ("\n#else");
-
- for (count = 0; count < ACE_ASCII_SIZE; ++count)
- {
- if (!(count % max_column))
- ACE_OS::printf ("\n ");
-
- ACE_OS::printf ("%*d,",
- Key_List::field_width,
- Vectors::occurrences[count] ? Vectors::asso_values[count] : max_hash_value + 1);
- }
- }
-#endif /* ACE_STANDARD_CHARACTER_SET_SIZE == ACE_EBCDIC_SIZE */
- ACE_OS::printf ("\n#endif /* ACE_MVS */");
-
- // Optimize special case of ``-k 1,$''
- if (option[DEFAULTCHARS])
- {
- if (option[STRCASECMP])
- ACE_OS::printf ("\n };\n return %sasso_values[charmap[str[len - 1]]] + asso_values[charmap[str[0]]];\n}\n\n",
- option[NOLENGTH] ? "" : "len + ");
- else
- ACE_OS::printf ("\n };\n return %sasso_values[str[len - 1]] + asso_values[str[0]];\n}\n\n",
- option[NOLENGTH] ? "" : "len + ");
- }
- else
- {
- int key_pos;
-
- option.reset ();
-
- // Get first (also highest) key position.
- key_pos = option.get ();
-
- // We can perform additional optimizations here.
- if (!option[ALLCHARS] && key_pos <= min_key_len)
- {
- ACE_OS::printf ("\n };\n return %s", option[NOLENGTH] ? "" : "len + ");
-
- for (; key_pos != WORD_END; )
- {
- ACE_OS::printf (option[STRCASECMP] ? "asso_values[charmap[str[%d]]]" : "asso_values[str[%d]]", key_pos - 1);
- if ((key_pos = option.get ()) != EOS)
- ACE_OS::printf (" + ");
- else
- break;
- }
-
- ACE_OS::printf ("%s;\n}\n\n", key_pos == WORD_END
- ? (option[STRCASECMP] ? "asso_values[charmap[str[len - 1]]]" : "asso_values[str[len - 1]]")
- : "");
- }
-
- // We've got to use the correct, but brute force, technique.
- else
- {
- ACE_OS::printf ("\n };\n unsigned int hval = %s;\n\n switch (%s)\n {\n default:\n",
- option[NOLENGTH] ? "0" : "len", option[NOLENGTH] ? "len" : "hval");
-
- // User wants *all* characters considered in hash.
- if (option[ALLCHARS])
- {
- int i;
-
- // Break these options up for speed (gee, is this misplaced efficiency or what?!
- if (option[STRCASECMP])
-
- for (i = max_key_len; i > 0; i--)
- ACE_OS::printf (" case %d:\n hval += asso_values[charmap[str[%d]]];\n", i, i - 1);
-
- else
-
- for (i = max_key_len; i > 0; i--)
- ACE_OS::printf (" case %d:\n hval += asso_values[str[%d]];\n", i, i - 1);
-
- ACE_OS::printf (" }\n return hval;\n}\n\n");
- }
- else // do the hard part...
- {
- count = key_pos + 1;
-
- do
- {
-
- while (--count > key_pos)
- ACE_OS::printf (" case %d:\n", count);
-
- ACE_OS::printf (option[STRCASECMP]
- ? " case %d:\n hval += asso_values[charmap[str[%d]]];\n"
- : " case %d:\n hval += asso_values[str[%d]];\n",
- key_pos, key_pos - 1);
- }
- while ((key_pos = option.get ()) != EOS && key_pos != WORD_END);
-
- ACE_OS::printf (" }\n return hval%s;\n}\n\n",
- key_pos == WORD_END
- ? (option[STRCASECMP] ? " + asso_values[charmap[str[len - 1]]]" : " + asso_values[str[len - 1]]")
- : "");
- }
- }
- }
-}
-
-int
-Key_List::count_duplicates (List_Node *link,
- const char *type)
-{
- int count = 0;
-
- // Count the number of "static" duplicates for this hash value.
- for (List_Node *ptr = link;
- ptr != 0;
- ptr = ptr->link)
- {
- count++;
-
- if (option[DEBUG])
- ACE_DEBUG ((LM_DEBUG,
- "%s linked keyword = %s, slot = %d, hash_value = %d\n",
- type,
- ptr->key,
- ptr->slot,
- ptr->hash_value));
- }
-
- return count;
-}
-
-void
-Key_List::update_lookup_array (int lookup_array[],
- int i1,
- int i2,
- Duplicate_Entry *dup_ptr,
- int value)
-{
- lookup_array[i1] = -dup_ptr->slot;
- lookup_array[i2] = -dup_ptr->count;
- lookup_array[dup_ptr->hash_value] = value;
-}
-
-// Generates the large, sparse table that maps hash values in the
-// smaller, contiguous range of the keyword table.
-
-int
-Key_List::output_lookup_array (void)
-{
- if (total_duplicates > 0)
- {
- const int DEFAULT_VALUE = -1;
-
- Duplicate_Entry *duplicates = 0;
- ACE_NEW_RETURN (duplicates,
- Duplicate_Entry[total_duplicates],
- -1);
-
- int *lookup_array = 0;
- ACE_NEW_RETURN (lookup_array,
- int[max_hash_value + 1],
- -1);
-
- Duplicate_Entry *dup_ptr = duplicates;
- int *lookup_ptr = lookup_array + max_hash_value + 1;
-
- // Initialize the lookup array to the DEFAULT_VALUE (-1).
- while (lookup_ptr > lookup_array)
- *--lookup_ptr = DEFAULT_VALUE;
-
- // Iterate through the keylist and handle the static and dynamic
- // duplicate entries.
- for (List_Node *temp = head; temp; temp = temp->next)
- {
- int hash_value = temp->hash_value;
- // Store the keyword's slot location into the
- // <lookup_array> at the <hash_value>. If this is a
- // non-duplicate, then this value will point directly to the
- // keyword.
- lookup_array[hash_value] = temp->slot;
-
- if (option[DEBUG])
- ACE_DEBUG ((LM_DEBUG,
- "keyword = %s, slot = %d, hash_value = %d, lookup_array[hash_value] = %d\n",
- temp->key,
- temp->slot,
- temp->hash_value,
- lookup_array[temp->hash_value]));
-
- if (temp->link == 0 &&
- (temp->next == 0 || hash_value != temp->next->hash_value))
- // This isn't a duplicate. Note that we know this because
- // we sorted the keys by their hash value.
- continue;
- else
- {
- // We'll handle the duplicates here.
- dup_ptr->hash_value = hash_value;
- dup_ptr->slot = temp->slot;
- dup_ptr->count = 1;
-
- // Count the number of "static" duplicates, i.e.,
- // keywords that had the same keysig when the keyfile
- // was first read.
- dup_ptr->count += this->count_duplicates (temp->link,
- "static");
-
- // Count the number of "dynamic" duplicates, i.e.,
- // keywords that ended up with the same hash value as a
- // result of the <asso_values> contents.
- for (;
- temp->next && hash_value == temp->next->hash_value;
- temp = temp->next)
- dup_ptr->count += this->count_duplicates (temp->next,
- "dynamic");
- dup_ptr++;
- }
- }
-
- // Compute the values in the lookup array.
- while (--dup_ptr >= duplicates)
- {
- if (option[DEBUG])
- ACE_DEBUG ((LM_DEBUG,
- "dup_ptr[%d]: hash_value = %d, slot = %d, count = %d\n",
- dup_ptr - duplicates,
- dup_ptr->hash_value,
- dup_ptr->slot,
- dup_ptr->count));
- int i;
-
- // Look to the left first.
- for (i = dup_ptr->hash_value; i > 0; i--)
- if (lookup_array[i] == DEFAULT_VALUE && lookup_array[i - 1] == DEFAULT_VALUE)
- {
- this->update_lookup_array (lookup_array,
- i - 1,
- i,
- dup_ptr,
- -(max_hash_value + (dup_ptr->hash_value - i + 1)));
- break;
- }
-
- // If we didn't find it to the left look to the right
- // instead...
- if (i == 0)
- {
- for (i = dup_ptr->hash_value; i < max_hash_value; i++)
- if (lookup_array[i] == DEFAULT_VALUE && lookup_array[i + 1] == DEFAULT_VALUE)
- {
- this->update_lookup_array (lookup_array,
- i,
- i + 1,
- dup_ptr,
- max_hash_value + (i - dup_ptr->hash_value));
- break;
- }
-
- // If this happens, we can't use the output array scheme...
- if (i >= max_hash_value)
- {
- option = SWITCH;
- ACE_DEBUG ((LM_DEBUG,
- "GPERF: Automatically changing to -S1 switch option\n"));
- // Since we've already generated the keyword table
- // we need to use it!
- this->output_switch (1);
- return 1; // 1 indicates that we've changed our mind...
- }
- }
- }
-
- int max = INT_MIN;
- lookup_ptr = lookup_array + max_hash_value + 1;
-
- while (lookup_ptr > lookup_array)
- {
- int val = abs (*--lookup_ptr);
- if (max < val)
- max = val;
- }
-
- const char *indent = option[GLOBAL] ? "" : " ";
-
- ACE_OS::printf ("%sstatic %ssigned %s lookup[] =\n%s%s{\n ", indent, option[CONSTANT] ? "const " : "",
- max <= SCHAR_MAX ? "char" : (max <= SHRT_MAX ? "short" : "int"),
- indent, indent);
-
- int count = max;
-
- // Calculate maximum number of digits required for
- // MAX_HASH_VALUE.
-
- for (Key_List::field_width = 2; (count /= 10) > 0; Key_List::field_width++)
- continue;
-
- const int max_column = 15;
- int column = 0;
-
- for (lookup_ptr = lookup_array;
- lookup_ptr < lookup_array + max_hash_value + 1;
- lookup_ptr++)
- ACE_OS::printf ("%*d, %s",
- Key_List::field_width,
- *lookup_ptr,
- ++column % (max_column - 1) ? "" : "\n ");
-
- ACE_OS::printf ("\n%s%s};\n\n", indent, indent);
-
- delete [] duplicates;
- delete [] lookup_array;
- }
- return 0;
-}
-
-// Generates C code to perform the keyword lookup.
-
-void
-Key_List::output_lookup_function (void)
-{
- if (!option[OPTIMIZE])
- ACE_OS::printf (" if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)\n {\n");
- ACE_OS::printf (" unsigned int key = %s (str, len);\n\n", option.hash_name ());
- if (!option[OPTIMIZE])
- ACE_OS::printf (" if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)\n");
- ACE_OS::printf (" {\n");
-
- if (option[DUP] && total_duplicates > 0)
- {
- int pointer_and_type_enabled = option[POINTER] && option[TYPE];
-
- ACE_OS::printf (" int slot = lookup[key];\n\n"
- " if (slot >= 0 && slot < MAX_HASH_VALUE)\n");
- if (option[OPTIMIZE])
- ACE_OS::printf (" return %swordlist[slot];\n", option[TYPE] && option[POINTER] ? "&" : "");
- else
- {
- ACE_OS::printf (" {\n"
- " %schar *s = wordlist[slot]", option[CONSTANT] || pointer_and_type_enabled == 0 ? "const " : "");
- if (array_type_ != Key_List::default_array_type)
- ACE_OS::printf (".%s", option.key_name ());
-
- ACE_OS::printf (";\n\n if (%s%s == *s && !%s)\n return %s;\n }\n",
- option[LENTABLE] ? "len == lengthtable[key]\n && " : "",
- option[STRCASECMP] ? "charmap[*str]" : "*str",
- option[COMP] ? (option[STRCASECMP] ? "strncasecmp (str + 1, s + 1, len - 1)" : "strncmp (str + 1, s + 1, len - 1)")
- : (option[STRCASECMP] ? "strcasecmp (str + 1, s + 1)" : "strcmp (str + 1, s + 1)"),
- option[TYPE] && option[POINTER] ? "&wordlist[slot]" : "s");
- ACE_OS::printf (" else if (slot < 0 && slot >= -MAX_HASH_VALUE)\n"
- " return 0;\n");
- }
- ACE_OS::printf (" else\n {\n"
- " unsigned int offset = key + slot + (slot > 0 ? -MAX_HASH_VALUE : MAX_HASH_VALUE);\n"
- " %s%s*base = &wordlist[-lookup[offset]];\n"
- " %s%s*ptr = base + -lookup[offset + 1];\n\n"
- " while (--ptr >= base)\n ",
- option[CONSTANT] || pointer_and_type_enabled == 0 ? "const " : "", struct_tag,
- option[CONSTANT] || pointer_and_type_enabled == 0 ? "const " : "", struct_tag);
- if (array_type_ != Key_List::default_array_type)
- {
- if (option[COMP])
- ACE_OS::printf ("if (%s == *ptr->%s && !%s (str + 1, ptr->%s + 1, len - 1",
- option[STRCASECMP] ? "charmap[*str]" : "*str", option.key_name (),
- option[STRCASECMP] ? "strncasecmp" : "strncmp", option.key_name ());
- else
- ACE_OS::printf ("if (%s == *ptr->%s && !%s (str + 1, ptr->%s + 1",
- option[STRCASECMP] ? "charmap[*str]" : "*str", option.key_name (),
- option[STRCASECMP] ? "strcasecmp" : "strcmp", option.key_name ());
- }
- else
- ACE_OS::printf (option[STRCASECMP] ? "if (charmap[*str] == **ptr && !%s" : "if (*str == **ptr && !%s",
- option[COMP]
- ? (option[STRCASECMP] ? "strncasecmp (str + 1, *ptr + 1, len - 1" : "strncmp (str + 1, *ptr + 1, len - 1")
- : (option[STRCASECMP] ? "strcasecmp (str + 1, *ptr + 1" : "strcmp (str + 1, *ptr + 1"));
- ACE_OS::printf ("))\n return %sptr;"
- "\n }\n }\n %s\n}\n", array_type_ ==
- Key_List::default_array_type ? "*" : "", option[OPTIMIZE] ? "" : "}\n return 0;");
- }
- else
- {
- if (option[OPTIMIZE])
- ACE_OS::printf (" return %swordlist[key]", option[TYPE] && option[POINTER] ? "&" : "");
- else
- {
- int pointer_and_type_enabled = option[POINTER] && option[TYPE];
-
- ACE_OS::printf (" %schar *s = wordlist[key]", option[CONSTANT] || pointer_and_type_enabled == 0 ? "const " : "");
-
- if (array_type_ != Key_List::default_array_type)
- ACE_OS::printf (".%s", option.key_name ());
-
- ACE_OS::printf (";\n\n if (%s%s == *s && !%s)\n return %s",
- option[LENTABLE] ? "len == lengthtable[key]\n && " : "",
- option[STRCASECMP] ? "charmap[*str]" : "*str",
- option[COMP]
- ? (option[STRCASECMP] ? "strncasecmp (str + 1, s + 1, len - 1)" : "strncmp (str + 1, s + 1, len - 1)")
- : (option[STRCASECMP] ? "strcasecmp (str + 1, s + 1)" : "strcmp (str + 1, s + 1)"),
- option[TYPE] && option[POINTER] ? "&wordlist[key]" : "s");
- }
- ACE_OS::printf (";\n }\n %s\n}\n", option[OPTIMIZE] ? "" : "}\n return 0;");
- }
-}
-
-// Output the table and the functions that map upper case into lower case!
-
-void
-Key_List::output_strcasecmp (void)
-{
- ACE_OS::printf ("%s",
- "/* This array is designed for mapping upper and lower case letter\n"
- " * together for a case independent comparison. The mappings are\n"
- " * based upon ascii character sequences.\n */"
- "static char charmap[] = {\n"
- " '\\000', '\\001', '\\002', '\\003', '\\004', '\\005', '\\006', '\\007',\n"
- " '\\010', '\\011', '\\012', '\\013', '\\014', '\\015', '\\016', '\\017',\n"
- " '\\020', '\\021', '\\022', '\\023', '\\024', '\\025', '\\026', '\\027',\n"
- " '\\030', '\\031', '\\032', '\\033', '\\034', '\\035', '\\036', '\\037',\n"
- " '\\040', '\\041', '\\042', '\\043', '\\044', '\\045', '\\046', '\\047',\n"
- " '\\050', '\\051', '\\052', '\\053', '\\054', '\\055', '\\056', '\\057',\n"
- " '\\060', '\\061', '\\062', '\\063', '\\064', '\\065', '\\066', '\\067',\n"
- " '\\070', '\\071', '\\072', '\\073', '\\074', '\\075', '\\076', '\\077',\n"
- " '\\100', '\\141', '\\142', '\\143', '\\144', '\\145', '\\146', '\\147',\n"
- " '\\150', '\\151', '\\152', '\\153', '\\154', '\\155', '\\156', '\\157',\n"
- " '\\160', '\\161', '\\162', '\\163', '\\164', '\\165', '\\166', '\\167',\n"
- " '\\170', '\\171', '\\172', '\\133', '\\134', '\\135', '\\136', '\\137',\n"
- " '\\140', '\\141', '\\142', '\\143', '\\144', '\\145', '\\146', '\\147',\n"
- " '\\150', '\\151', '\\152', '\\153', '\\154', '\\155', '\\156', '\\157',\n"
- " '\\160', '\\161', '\\162', '\\163', '\\164', '\\165', '\\166', '\\167',\n"
- " '\\170', '\\171', '\\172', '\\173', '\\174', '\\175', '\\176', '\\177',\n"
- " '\\200', '\\201', '\\202', '\\203', '\\204', '\\205', '\\206', '\\207',\n"
- " '\\210', '\\211', '\\212', '\\213', '\\214', '\\215', '\\216', '\\217',\n"
- " '\\220', '\\221', '\\222', '\\223', '\\224', '\\225', '\\226', '\\227',\n"
- " '\\230', '\\231', '\\232', '\\233', '\\234', '\\235', '\\236', '\\237',\n"
- " '\\240', '\\241', '\\242', '\\243', '\\244', '\\245', '\\246', '\\247',\n"
- " '\\250', '\\251', '\\252', '\\253', '\\254', '\\255', '\\256', '\\257',\n"
- " '\\260', '\\261', '\\262', '\\263', '\\264', '\\265', '\\266', '\\267',\n"
- " '\\270', '\\271', '\\272', '\\273', '\\274', '\\275', '\\276', '\\277',\n"
- " '\\300', '\\341', '\\342', '\\343', '\\344', '\\345', '\\346', '\\347',\n"
- " '\\350', '\\351', '\\352', '\\353', '\\354', '\\355', '\\356', '\\357',\n"
- " '\\360', '\\361', '\\362', '\\363', '\\364', '\\365', '\\366', '\\367',\n"
- " '\\370', '\\371', '\\372', '\\333', '\\334', '\\335', '\\336', '\\337',\n"
- " '\\340', '\\341', '\\342', '\\343', '\\344', '\\345', '\\346', '\\347',\n"
- " '\\350', '\\351', '\\352', '\\353', '\\354', '\\355', '\\356', '\\357',\n"
- " '\\360', '\\361', '\\362', '\\363', '\\364', '\\365', '\\366', '\\367',\n"
- " '\\370', '\\371', '\\372', '\\373', '\\374', '\\375', '\\376', '\\377',\n};\n\nstatic int\n");
- if (option[COMP])
- {
- ACE_OS::printf ("%s", option[ANSI]
- ? "strncasecmp (char *s1, char *s2, int n)"
- : "strncasecmp (s1, s2, n)\n char *s1, *s2;\n int n;");
- ACE_OS::printf ("\n{\n char *cm = charmap;\n\n while (--n >= 0 && cm[*s1] == cm[*s2++])\n"
- " if (*s1++ == '\\0')\n return 0;\n"
- "\n return n < 0 ? 0 : cm[*s1] - cm[*--s2];\n}\n\n");
- }
- else
- {
- ACE_OS::printf ("%s", option[ANSI]
- ? "strcasecmp (char *s1, char *s2)"
- : "strcasecmp (s1, s2)\n char *s1, *s2;");
- ACE_OS::printf ("\n{\n char *cm = charmap;\n\n while (cm[*s1] == cm[*s2++])\n"
- " if (*s1++ == '\\0')\n return 0;\n"
- "\n return cm[*s1] - cm[*--s2];\n}\n\n");
- }
-}
-
-// Generates the hash function and the key word recognizer function
-// based upon the user's Options.
-
-int
-Key_List::output (void)
-{
- if (option[BINARYSEARCH])
- // Generate code binary search.
- this->output_binary_search_function ();
- else if (option[LINEARSEARCH])
- // Generate code for linear search.
- this->output_linear_search_function ();
- else
- {
- // Generate the usual GPERF things.
- ACE_OS::printf ("%s\n", include_src);
-
- // Get prototype for strncmp() and strcmp().
- if (!option[SKIPSTRINGH])
- ACE_OS::printf ("#include <string.h>\n");
-
- // Output type declaration now, reference it later on....
- if (option[TYPE] && !option[NOTYPE])
- ACE_OS::printf ("%s;\n",
- array_type_);
-
- output_min_max ();
-
- if (option[STRCASECMP])
- output_strcasecmp ();
-
- // Class definition if -M is *not* enabled.
- if (option[CPLUSPLUS] && !option[SKIPCLASS])
- ACE_OS::printf ("class %s\n{\nprivate:\n"
- " static unsigned int %s (const char *str, unsigned int len);\npublic:\n"
- " static %s%s%s (const char *str, unsigned int len);\n};\n\n",
- option.class_name (),
- option.hash_name (),
- option[CONSTANT] ? "const " : "",
- return_type,
- option.function_name ());
-
- output_hash_function ();
-
- if (option[GLOBAL])
- if (option[SWITCH])
- {
- if (option[LENTABLE] && option[DUP])
- output_keylength_table ();
- if (option[POINTER] && option[TYPE])
- output_keyword_table ();
- }
- else
- {
- if (option[LENTABLE])
- output_keylength_table ();
- output_keyword_table ();
- if (output_lookup_array () == -1)
- ACE_ERROR_RETURN ((LM_DEBUG,
- "%p\n",
- "output_lookup_array"),
- -1);
- }
-
- // Use the inline keyword to remove function overhead.
- if (option[INLINE])
- ACE_OS::printf ("inline\n");
-
- int pointer_and_type_enabled = option[POINTER] && option[TYPE];
-
- ACE_OS::printf ("%s%s\n",
- option[CONSTANT] || pointer_and_type_enabled == 0 ? "const " : "",
- return_type);
- if (option[CPLUSPLUS])
- ACE_OS::printf ("%s::", option.class_name ());
-
- ACE_OS::printf (option[ANSI]
- ? "%s (const char *str, unsigned int len)\n{\n"
- : "%s (str, len)\n char *str;\n unsigned int len;\n{\n",
- option.function_name ());
-
- if (option[ENUM] && !option[GLOBAL])
- ACE_OS::printf (" enum\n {\n"
- " TOTAL_KEYWORDS = %d,\n"
- " MIN_WORD_LENGTH = %d,\n"
- " MAX_WORD_LENGTH = %d,\n"
- " MIN_HASH_VALUE = %d,\n"
- " MAX_HASH_VALUE = %d,\n"
- " HASH_VALUE_RANGE = %d,\n"
- " DUPLICATES = %d\n };\n\n",
- total_keys, min_key_len, max_key_len, min_hash_value,
- max_hash_value, max_hash_value - min_hash_value + 1,
- total_duplicates ? total_duplicates + 1 : 0);
- // Use the switch in place of lookup table.
- if (option[SWITCH])
- output_switch ();
- // Use the lookup table, in place of switch.
- else
- {
- if (!option[GLOBAL])
- {
- if (option[LENTABLE])
- output_keylength_table ();
- output_keyword_table ();
- }
- if (!option[GLOBAL])
- {
- switch (output_lookup_array ())
- {
- case -1:
- ACE_ERROR_RETURN ((LM_DEBUG,
- "%p\n",
- "output_lookup_array"),
- -1);
- /* NOTREACHED */
- case 0:
- output_lookup_function ();
- break;
- /* NOTREACHED */
- default:
- break;
- /* NOTREACHED */
- }
- }
- }
-
- if (additional_code)
- {
- for (;;)
- {
- int c = getchar ();
-
- if (c == EOF)
- break;
- else
- putchar (c);
- }
- }
- fflush (stdout);
- }
- return 0;
- }
-
-// Sorts the keys by hash value.
-
-void
-Key_List::sort (void)
-{
- // By default, we sort via hashing.
- hash_sort = 1;
- occurrence_sort = 0;
-
- this->head = merge_sort (this->head);
-}
-
-// Sorts the keys by normal strcmp.
-void
-Key_List::string_sort (void)
-{
-
- // Flatten the equivalence class list to a linear list.
-
- List_Node *ptr;
- for(ptr=head;ptr;ptr=ptr->next)
- {
- List_Node *curr;
- if(ptr->link)
- {
- List_Node *last_node = 0;
-
- for(curr = ptr->link; curr; curr = curr->link)
- {
- // Chnage the link to next pointer.
- curr->next = curr->link;
-
- // Save the pointer for the last node.
- if (curr->link == 0)
- last_node = curr;
- }
-
- // Set the pointers, correctly.
- last_node->next = ptr->next;
- ptr->next = ptr->link;
- ptr = last_node;
- }
- }
-
- // Set all links to Null.
-
- for(ptr=head;ptr;ptr=ptr->next)
- {
- ptr->link = 0;
- }
-
- // Set the sorting options.
-
- key_sort = 1;
- hash_sort = 0;
- occurrence_sort = 0;
-
- // Sort.
-
- this->head = merge_sort (head);
- key_sort = 0;
-}
-
-
-// Dumps the key list to stderr stream.
-
-void
-Key_List::dump (void)
-{
- ACE_DEBUG ((LM_DEBUG,
- "\nDumping key list information:\ntotal non-static linked keywords = %d"
- "\ntotal keywords = %d\ntotal duplicates = %d\nmaximum key length = %d\n",
- list_len,
- total_keys,
- total_duplicates ? total_duplicates + 1 : 0,
- max_key_len));
-
- u_int keysig_width = option.max_keysig_size () > ACE_OS::strlen ("keysig")
- ? option.max_keysig_size ()
- : ACE_OS::strlen ("keysig");
-
- u_int key_length = this->max_key_length ();
- u_int keyword_width = key_length > ACE_OS::strlen ("keysig")
- ? key_length
- : ACE_OS::strlen ("keysig");
-
- ACE_DEBUG ((LM_DEBUG,
- "\nList contents are:\n(hash value, key length, slot, %*s, %*s, duplicates):\n",
- keysig_width,
- "keysig",
- keyword_width,
- "keyword"));
-
- for (List_Node *ptr = head; ptr; ptr = ptr->next)
- {
- ACE_DEBUG ((LM_DEBUG,
- "%11d,%11d,%6d, %*s, %*s",
- ptr->hash_value,
- ptr->length,
- ptr->slot,
- keysig_width,
- ptr->keysig,
- keyword_width,
- ptr->key));
-
- List_Node *dup = ptr->link;
- if (dup)
- {
- for (;
- dup != 0;
- dup = dup->link)
- ACE_DEBUG ((LM_DEBUG,
- " %s",
- dup->key));
- }
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
- ACE_DEBUG ((LM_DEBUG,
- "End dumping list.\n\n"));
-}
-
-// Simple-minded constructor action here...
-
-Key_List::Key_List (void)
- : head (0),
- total_duplicates (0),
- array_type_ ((char *) Key_List::default_array_type),
- return_type ((char *) Key_List::default_return_type),
- struct_tag ((char *) Key_List::default_array_type),
- max_key_len (INT_MIN),
- min_key_len (INT_MAX),
- key_sort (0),
- additional_code (0),
- total_keys (1)
-{
-}
-
-// Returns the length of entire key list.
-
-int
-Key_List::keyword_list_length (void)
-{
- return list_len;
-}
-
-// Returns length of longest key read.
-
-int
-Key_List::max_key_length (void)
-{
- return max_key_len;
-}
-
-#endif /* ACE_HAS_GPERF */
diff --git a/apps/gperf/src/Key_List.h b/apps/gperf/src/Key_List.h
deleted file mode 100644
index 34f8e2c05bf..00000000000
--- a/apps/gperf/src/Key_List.h
+++ /dev/null
@@ -1,173 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#ifndef KEY_LIST_H
-#define KEY_LIST_H
-
-#include "Options.h"
-#include "List_Node.h"
-#include "Vectors.h"
-
-#if defined (ACE_HAS_GPERF)
-
-class Duplicate_Entry
-{
- // = TITLE
- // Describes a duplicate entry.
- //
- // = DESCRIPTION
- // This is used for generating code by the <Key_List>.
-public:
- int hash_value;
- // Hash value for this particular duplicate set.
-
- int slot;
- // Slot into the main keyword storage array.
-
- int count;
- // Number of consecutive duplicates at this slot.
-};
-
-class Key_List
-{
- // = TITLE
- // Data and function member declarations for the keyword list class.
- //
- // = DESCRIPTION
- // The key word list is a useful abstraction that keeps track of
- // various pieces of information that enable that fast generation of
- // the Gen_Perf.hash function. A Key_List is a singly-linked list
- // of List_Nodes.
-public:
- Key_List (void);
- ~Key_List (void);
- int keyword_list_length (void);
- int max_key_length (void);
- void reorder (void);
- void sort (void);
- void string_sort (void);
- int read_keys (void);
- int output (void);
-
- List_Node *head;
- // Points to the head of the linked list.
-
- int total_duplicates;
- // Total number of duplicate hash values.
-
-private:
- // = Make hash table 10 times larger than # of keyword entries.
- enum
- {
- TABLE_MULTIPLE = 10
- };
-
- static int occurrence (List_Node *ptr);
- static int already_determined (List_Node *ptr);
- static void determined (List_Node *ptr);
-
- // @@ All of the following methods should be factored out and
- // replaced by the use of the Strategy/Bridge pattern so that we can
- // easily add new languages.
- void output_min_max (void);
- void output_switch (int use_keyword_table = 0);
- void output_keyword_table (void);
- void output_keylength_table (void);
- void output_hash_function (void);
- void output_lookup_function (void);
- int output_binary_search_function(void);
- int output_linear_search_function (void);
- int output_lookup_array (void);
- void output_strcasecmp (void);
- int output_types (void);
- void dump (void);
- char *array_type (void);
- char *save_include_src (void);
- char *special_input (char delimiter);
- List_Node *merge (List_Node *list1, List_Node *list2);
- List_Node *merge_sort (List_Node *head);
- int count_duplicates (List_Node *link, const char *type);
- void update_lookup_array (int lookup_array[],
- int i1,
- int i2,
- Duplicate_Entry *dup_ptr,
- int value);
- char *array_type_;
- // Pointer to the type for word list.
-
- char *return_type;
- // Pointer to return type for lookup function.
-
- char *struct_tag;
- // Shorthand for user-defined struct tag type.
-
- char *include_src;
- // C source code to be included verbatim.
-
- int max_key_len;
- // Maximum length of the longest keyword.
-
- int min_key_len;
- // Minimum length of the shortest keyword.
-
- int min_hash_value;
- // Minimum hash value for all keywords.
-
- int max_hash_value;
- // Maximum hash value for all keywords.
-
- int occurrence_sort;
- // True if sorting by occurrence.
-
- int hash_sort;
- // True if sorting by hash value.
-
- int key_sort;
- // True if sorting by key value.
-
- int additional_code;
- // True if any additional C code is included.
-
- int list_len;
- // Length of head's Key_List, not counting duplicates.
-
- int total_keys;
- // Total number of keys, counting duplicates.
-
- static const char *const default_array_type;
- // Default type for generated code.
-
- static const char *const default_return_type;
- // in_word_set return type, by default.
-
- static int field_width;
- // How wide the printed field width must be to contain the maximum
- // hash value.
-
- static int determined_[ACE_STANDARD_CHARACTER_SET_SIZE];
- // Sets the slot location for all keysig characters that are now
- // determined.
-};
-
-#endif /* ACE_HAS_GPERF */
-#endif /* KEY_LIST_H */
diff --git a/apps/gperf/src/List_Node.cpp b/apps/gperf/src/List_Node.cpp
deleted file mode 100644
index 0f5fb5052ff..00000000000
--- a/apps/gperf/src/List_Node.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#include "List_Node.h"
-
-ACE_RCSID(src, List_Node, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
-#include "Vectors.h"
-
-// Sorts the key set alphabetically to speed up subsequent operation
-// Uses insertion sort since the set is probably quite small.
-
-inline void
-List_Node::sort (char *base, int len)
-{
- int i, j;
-
- for (i = 0, j = len - 1; i < j; i++)
- {
- char curr, tmp;
-
- for (curr = i + 1, tmp = base[curr];
- curr > 0 && tmp < base[curr-1];
- curr--)
- base[curr] = base[curr - 1];
-
- base[curr] = tmp;
-
- }
-}
-
-// Initializes a List_Node. This requires obtaining memory for the
-// CHAR_SET initializing them using the information stored in the
-// KEY_POSITIONS array in Options, and checking for simple errors.
-// It's important to note that KEY and REST are both pointers to the
-// different offsets into the same block of dynamic memory pointed to
-// by parameter K. The data member REST is used to store any
-// additional fields of the input file (it is set to the "" string if
-// Option[TYPE] is not enabled). This is useful if the user wishes to
-// incorporate a lookup structure, rather than just an array of keys.
-// Finally, KEY_NUMBER contains a count of the total number of keys
-// seen so far. This is used to initialize the INDEX field to some
-// useful value.
-
-List_Node::List_Node (char *k, int len)
- : link (0),
- next (0),
- key (k),
- rest (option[TYPE] ? k + len + 1 : ACE_const_cast(char*, "")),
- length (len),
- slot (0)
-{
- char *ptr = new char[(option[ALLCHARS] ? len : option.max_keysig_size ()) + 1];
- keysig = ptr;
- k[len] = '\0'; // Null terminate KEY to separate it from REST.
-
- // Lower case if STRCASECMP option is enabled.
- if (option[STRCASECMP])
- for (char *p = k; *p; p++)
- if (isupper (*p))
- *p = tolower (*p);
-
- if (option[ALLCHARS]) // Use all the character position in the KEY.
- for (; *k; k++, ptr++)
- ++Vectors::occurrences[*ptr = *k];
- else
- {
- // Only use those character positions specified by the user.
-
- option.reset ();
-
- // Iterate thru the list of key_positions, initializing
- // occurrences table and keysig (via char * pointer ptr).
-
- for (int i; (i = option.get ()) != EOS; )
- {
- if (i == WORD_END) // Special notation for last KEY position, i.e. '$'.
- *ptr = key[len - 1];
- else if (i <= len) // Within range of KEY length, so we'll keep it.
- *ptr = key[i - 1];
- else // Out of range of KEY length, so we'll just skip it.
- continue;
- ++Vectors::occurrences[*ptr++];
- }
-
- // Didn't get any hits and user doesn't want to consider the
- // keylength, so there are essentially no usable hash positions!
- if (ptr == keysig && option[NOLENGTH])
- ACE_ERROR ((LM_ERROR,
- "Can't hash keyword %s with chosen key positions.\n%a",
- key,
- 1));
- }
- // Terminate this string.
- *ptr = '\0';
-
- // Sort the KEYSIG items alphabetically.
- sort (keysig, ptr - keysig);
-}
-
-List_Node::~List_Node (void)
-{
- delete [] this->key;
- delete [] this->keysig;
-}
-
-#endif /* ACE_HAS_GPERF */
diff --git a/apps/gperf/src/List_Node.h b/apps/gperf/src/List_Node.h
deleted file mode 100644
index 1665099740d..00000000000
--- a/apps/gperf/src/List_Node.h
+++ /dev/null
@@ -1,80 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#ifndef LIST_NODE_H
-#define LIST_NODE_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "Options.h"
-
-#if defined (ACE_HAS_GPERF)
-class List_Node
-{
- // = TITLE
- // Data and function members for defining values and operations of
- // a list node.
-public:
- // = Initialization and termination methods.
- List_Node (char *key, int len);
- // Constructor.
-
- ~List_Node (void);
- // Destructor.
-
- static void sort (char *base, int len);
-
- List_Node *link;
- // TRUE if key has an identical KEY_SET as another key.
-
- List_Node *next;
- // Points to next element on the list.
-
- char *key;
- // Each keyword string stored here.
-
- char *rest;
- // Additional information for building hash function.
-
- char *keysig;
- // Set of characters to hash, specified by user.
-
- int length;
- // Length of the key.
-
- int hash_value;
- // Hash value for the key.
-
- int occurrence;
- // A metric for frequency of key set occurrences.
-
- int slot;
- // Position of this node relative to other nodes.
-};
-
-#endif /* ACE_HAS_GPERF */
-#endif /* LIST_NODE_H */
diff --git a/apps/gperf/src/Makefile b/apps/gperf/src/Makefile
deleted file mode 100644
index fe300f9d21b..00000000000
--- a/apps/gperf/src/Makefile
+++ /dev/null
@@ -1,224 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for GPERF release
-#----------------------------------------------------------------------------
-
-BIN = gperf
-INSBIN = $ACE_ROOT/bin/gperf
-
-FILES = Options \
- Iterator \
- Gen_Perf \
- Key_List \
- List_Node \
- Hash_Table \
- Bool_Array \
- Vectors \
- Version
-
-SRC = $(addsuffix .cpp,$(FILES))
-OBJ = $(addsuffix .o,$(FILES))
-
-BUILD = $(VBIN)
-
-INSTALL = $(VBIN:%=$(INSBIN)/%)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/Options.o .obj/Options.so .shobj/Options.o .shobj/Options.so: Options.cpp Options.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/Get_Opt.i \
- Iterator.h
-.obj/Iterator.o .obj/Iterator.so .shobj/Iterator.o .shobj/Iterator.so: Iterator.cpp Iterator.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Options.h
-.obj/Gen_Perf.o .obj/Gen_Perf.so .shobj/Gen_Perf.o .shobj/Gen_Perf.so: Gen_Perf.cpp Gen_Perf.h Options.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Key_List.h List_Node.h Vectors.h Bool_Array.h
-.obj/Key_List.o .obj/Key_List.so .shobj/Key_List.o .shobj/Key_List.so: Key_List.cpp Key_List.h Options.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- List_Node.h Vectors.h \
- $(ACE_ROOT)/ace/Read_Buffer.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Read_Buffer.i \
- Hash_Table.h
-.obj/List_Node.o .obj/List_Node.so .shobj/List_Node.o .shobj/List_Node.so: List_Node.cpp List_Node.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Options.h Vectors.h
-.obj/Hash_Table.o .obj/Hash_Table.so .shobj/Hash_Table.o .shobj/Hash_Table.so: Hash_Table.cpp Hash_Table.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Options.h List_Node.h
-.obj/Bool_Array.o .obj/Bool_Array.so .shobj/Bool_Array.o .shobj/Bool_Array.so: Bool_Array.cpp Bool_Array.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Options.h
-.obj/Vectors.o .obj/Vectors.so .shobj/Vectors.o .shobj/Vectors.so: Vectors.cpp Vectors.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i
-.obj/Version.o .obj/Version.so .shobj/Version.o .shobj/Version.so: Version.cpp \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/gperf/src/Makefile.am b/apps/gperf/src/Makefile.am
deleted file mode 100644
index 9a6a7fdb629..00000000000
--- a/apps/gperf/src/Makefile.am
+++ /dev/null
@@ -1,40 +0,0 @@
-##---------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for GPERF release
-##---------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)
-
-bin_PROGRAMS = gperf
-
-gperf_SOURCES = \
- gperf.cpp \
- Bool_Array.cpp \
- Gen_Perf.cpp \
- Hash_Table.cpp \
- Iterator.cpp \
- Key_List.cpp \
- List_Node.cpp \
- Options.cpp \
- Vectors.cpp \
- Version.cpp
-gperf_LDADD = $(top_builddir)/ace/libACE.la
-
-noinst_HEADERS = \
- Bool_Array.h \
- Gen_Perf.h \
- Hash_Table.h \
- Iterator.h \
- Key_List.h \
- List_Node.h \
- Options.h \
- Vectors.h
diff --git a/apps/gperf/src/Makefile.bor b/apps/gperf/src/Makefile.bor
deleted file mode 100644
index 95b6cf73277..00000000000
--- a/apps/gperf/src/Makefile.bor
+++ /dev/null
@@ -1,23 +0,0 @@
-
-NAME = gperf
-
-OBJFILES = \
- $(OBJDIR)\Options.obj \
- $(OBJDIR)\Iterator.obj \
- $(OBJDIR)\Gen_Perf.obj \
- $(OBJDIR)\Key_List.obj \
- $(OBJDIR)\List_Node.obj \
- $(OBJDIR)\Hash_Table.obj \
- $(OBJDIR)\Bool_Array.obj \
- $(OBJDIR)\Vectors.obj \
- $(OBJDIR)\Version.obj \
- $(OBJDIR)\gperf.obj
-
-CFLAGS = $(ACE_CFLAGS)
-
-CPPDIR = .
-
-LIBFILES = $(ACE_LIB)
-
-!include <$(ACE_ROOT)\include\makeinclude\build_core_exe.bor>
-
diff --git a/apps/gperf/src/Options.cpp b/apps/gperf/src/Options.cpp
deleted file mode 100644
index 27c75b9f6be..00000000000
--- a/apps/gperf/src/Options.cpp
+++ /dev/null
@@ -1,864 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Handles parsing the Options provided to the user.
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#include "Options.h"
-
-ACE_RCSID(src, Options, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
-#include "ace/Get_Opt.h"
-#include "Iterator.h"
-
-// Global option coordinator for the entire program.
-Options option;
-
-// Current program version.
-extern const char *version_string;
-
-// Size to jump on a collision.
-static const int DEFAULT_JUMP_VALUE = 5;
-
-// Default name for generated lookup function.
-static const char *const DEFAULT_NAME = "in_word_set";
-
-// Default filler for keyword table.
-static const char *const DEFAULT_FILL = "";
-
-// Default name for the key component.
-static const char *const DEFAULT_KEY = "name";
-
-// Default name for the generated class.
-static const char *const DEFAULT_CLASS_NAME = "Perfect_Hash";
-
-// Default name for generated hash function.
-static const char *const DEFAULT_HASH_NAME = "hash";
-
-// Default delimiters that separate keywords from their attributes.
-static const char *const DEFAULT_DELIMITERS = ",\n";
-
-int Options::option_word_;
-int Options::total_switches_;
-u_int Options::total_keysig_size_;
-int Options::size_;
-int Options::key_pos_;
-int Options::jump_;
-int Options::initial_asso_value_;
-int Options::argc_;
-char **Options::argv_;
-int Options::iterations_;
-const char *Options::function_name_;
-const char *Options::fill_default_;
-const char *Options::key_name_;
-const char *Options::class_name_;
-const char *Options::hash_name_;
-const char *Options::delimiters_;
-char Options::key_positions_[MAX_KEY_POS];
-
-// Prints program usage to standard error stream.
-
-void
-Options::usage (void)
-{
- ACE_ERROR ((LM_ERROR,
- "Usage: %n [-abBcCdDef[num]gGhH<hashname>i<init>IjJ"
- "k<keys>K<keyname>lL<language>mMnN<function name>o"
- "Oprs<size>S<switches>tTvVZ<class name>].\n"
- "(type %n -h for help)\n"));
-}
-
-// Output command-line Options.
-
-void
-Options::print_options (void)
-{
- int i;
-
- ACE_OS::printf ("/* Command-line: ");
-
- for (i = 0; i < argc_; i++)
- ACE_OS::printf ("%s ",
- argv_[i]);
-
- ACE_OS::printf (" */");
-}
-
-// Sorts the key positions *IN REVERSE ORDER!!* This makes further
-// routines more efficient. Especially when generating code. Uses a
-// simple Insertion Sort since the set is probably ordered. Returns 1
-// if there are no duplicates, 0 otherwise.
-
-int
-Options::key_sort (char *base, int len)
-{
- int i, j;
-
- for (i = 0, j = len - 1; i < j; i++)
- {
- int curr, tmp;
-
- for (curr = i + 1, tmp = base[curr];
- curr > 0 && tmp >= base[curr - 1];
- curr--)
- if ((base[curr] = base[curr - 1]) == tmp)
- // Oh no, a duplicate!!!
- return 0;
-
- base[curr] = tmp;
- }
-
- return 1;
-}
-
-// Sets the default Options.
-
-Options::Options (void)
-{
- key_positions_[0] = WORD_START;
- key_positions_[1] = WORD_END;
- key_positions_[2] = EOS;
- total_keysig_size_ = 2;
- delimiters_ = DEFAULT_DELIMITERS;
- jump_ = DEFAULT_JUMP_VALUE;
- option_word_ = DEFAULTCHARS | C;
- function_name_ = DEFAULT_NAME;
- fill_default_ = DEFAULT_FILL;
- key_name_ = DEFAULT_KEY;
- hash_name_ = DEFAULT_HASH_NAME;
- class_name_ = DEFAULT_CLASS_NAME;
- total_switches_ = size_ = 1;
- initial_asso_value_ = iterations_ = 0;
-}
-
-// Dumps option status when debug is set.
-
-Options::~Options (void)
-{
- if (ACE_BIT_ENABLED (option_word_, DEBUG))
- {
- char *ptr;
-
- ACE_OS::fprintf (stderr,
- "\ndumping Options:"
- "\nDEBUG is.......: %s"
- "\nORDER is.......: %s"
- "\nANSI is........: %s"
- "\nTYPE is........: %s"
- "\nINLINE is......: %s"
- "\nRANDOM is......: %s"
- "\nDEFAULTCHARS is: %s"
- "\nSWITCH is......: %s"
- "\nPOINTER is.....: %s"
- "\nNOLENGTH is....: %s"
- "\nLENTABLE is....: %s"
- "\nDUP is.........: %s"
- "\nFAST is........: %s"
- "\nCOMP is........: %s"
- "\nNOTYPE is......: %s"
- "\nGLOBAL is......: %s"
- "\nCONSTANT is....: %s"
- "\nCPLUSPLUS is...: %s"
- "\nC is...........: %s"
- "\nENUM is........: %s"
- "\nSTRCASECMP is..: %s"
- "\nOPTIMIZE is....: %s"
- "\nLINEARSEARCH is: %s"
- "\nBINARYSEARCH is: %s"
- "\niterations = %d"
- "\nlookup function name = %s"
- "\nfill default = %s"
- "\nhash function name = %s"
- "\nkey name = %s"
- "\njump value = %d"
- "\nmax associcated value = %d"
- "\ninitial associated value = %d"
- "\ndelimiters = %s"
- "\nnumber of switch statements = %d"
- "\n",
- ACE_BIT_ENABLED (option_word_, DEBUG) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, ORDER) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, ANSI) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, TYPE) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, INLINE) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, RANDOM) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, DEFAULTCHARS) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, SWITCH) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, POINTER) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, NOLENGTH) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, LENTABLE) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, DUP) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, FAST) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, COMP) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, NOTYPE) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, GLOBAL) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, CONSTANT) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, CPLUSPLUS) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, C) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, ENUM) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, STRCASECMP) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, OPTIMIZE) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, LINEARSEARCH) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, BINARYSEARCH) ? "enabled" : "disabled",
- iterations_,
- function_name_,
- fill_default_,
- hash_name_,
- key_name_,
- jump_,
- size_ - 1,
- initial_asso_value_,
- delimiters_,
- total_switches_);
- if (ACE_BIT_ENABLED (option_word_, ALLCHARS))
- ACE_OS::fprintf (stderr,
- "all characters are used in the hash function\n");
-
- ACE_OS::fprintf (stderr,
- "maximum keysig size = %d\nkey positions are: \n",
- total_keysig_size_);
-
- for (ptr = key_positions_; *ptr != EOS; ptr++)
- if (*ptr == WORD_END)
- ACE_OS::fprintf (stderr, "$\n");
- else
- ACE_OS::fprintf (stderr, "%d\n", *ptr);
-
- ACE_OS::fprintf (stderr, "finished dumping Options\n");
- }
-}
-
-// Parses the command line Options and sets appropriate flags in
-// option_word_.
-
-int
-Options::parse_args (int argc, char *argv[])
-{
- if (ACE_LOG_MSG->open (argv[0]) == -1)
- return -1;
-
- ACE_Get_Opt getopt (argc, argv, "abBcCdDe:Ef:F:gGhH:i:IJj:k:K:lL:mMnN:oOprs:S:tTvVZ:");
- int option_char;
-
- argc_ = argc;
- argv_ = argv;
-
- while ((option_char = getopt ()) != -1)
- {
- switch (option_char)
- {
- // Generated coded uses the ANSI prototype format.
- case 'a':
- {
- ACE_SET_BITS (option_word_, ANSI);
- break;
- }
- // Generate code for Linear Search.
- case 'b':
- {
- ACE_SET_BITS (option_word_, LINEARSEARCH);
- break;
- }
- // Generate code for Binary Search.
- case 'B':
- {
- ACE_SET_BITS (option_word_, BINARYSEARCH);
- break;
- }
- // Generate strncmp rather than strcmp.
- case 'c':
- {
- ACE_SET_BITS (option_word_, COMP);
- break;
- }
- // Make the generated tables readonly (const).
- case 'C':
- {
- ACE_SET_BITS (option_word_, CONSTANT);
- break;
- }
- // Enable debugging option.
- case 'd':
- {
- ACE_SET_BITS (option_word_, DEBUG);
- ACE_ERROR ((LM_ERROR,
- "Starting program %n, version %s, with debuggin on.\n",
- version_string));
- break;
- }
- // Enable duplicate option.
- case 'D':
- {
- ACE_SET_BITS (option_word_, DUP);
- break;
- }
- // Allows user to provide keyword/attribute separator
- case 'e':
- {
- delimiters_ = getopt.optarg;
- break;
- }
- case 'E':
- {
- ACE_SET_BITS (option_word_, ENUM);
- break;
- }
- // Generate the hash table ``fast.''
- case 'f':
- {
- ACE_SET_BITS (option_word_, FAST);
- iterations_ = atoi (getopt.optarg);
- if (iterations_ < 0)
- {
- ACE_ERROR ((LM_ERROR, "iterations value must not be negative, assuming 0\n"));
- iterations_ = 0;
- }
- break;
- }
- // Use the ``inline'' keyword for generated sub-routines.
- case 'g':
- {
- ACE_SET_BITS (option_word_, INLINE);
- break;
- }
- // Make the keyword table a global variable.
- case 'G':
- {
- ACE_SET_BITS (option_word_, GLOBAL);
- break;
- }
- // Displays a list of helpful Options to the user.
- case 'h':
- {
- ACE_OS::fprintf (stderr,
- "-a\tGenerate ANSI standard C output code, i.e., function prototypes.\n"
- "-b\tGenerate code for Linear Search.\n"
- "-B\tGenerate code for Binary Search.\n"
- "-c\tGenerate comparison code using strncmp rather than strcmp.\n"
- "-C\tMake the contents of generated lookup tables constant, i.e., readonly.\n"
- "-d\tEnables the debugging option (produces verbose output to the standard\n"
- "\terror).\n"
- "-D\tHandle keywords that hash to duplicate values. This is useful\n"
- "\tfor certain highly redundant keyword sets.\n"
- "-e\tAllow user to provide a string containing delimiters used to separate\n"
- "\tkeywords from their attributes. Default is \",\\n\"\n"
- "-E\tDefine constant values using an enum local to the lookup function\n"
- "\trather than with defines\n"
- "-f\tGenerate the gen-perf.hash function ``fast.'' This decreases GPERF's\n"
- "\trunning time at the cost of minimizing generated table-size.\n"
- "\tThe numeric argument represents the number of times to iterate when\n"
- "\tresolving a collision. `0' means ``iterate by the number of keywords.''\n"
- "-F\tProvided expression will be used to assign default values in keyword\n"
- "\ttable, i.e., the fill value. Default is \"\".\n"
- "-g\tMake generated routines use ``inline'' to remove function overhead.\n"
- "-G\tGenerate the static table of keywords as a static global variable,\n"
- "\trather than hiding it inside of the lookup function (which is the\n"
- "\tdefault behavior).\n"
- "-h\tPrints this message.\n"
- "-H\tAllow user to specify name of generated hash function. Default\n"
- "\tis `hash'.\n"
- "-i\tProvide an initial value for the associate values array. Default is 0.\n"
- "-I\tGenerate comparison code using case insensitive string comparison, e.g.,\n"
- "\tstrncasecmp or strcasecmp.\n"
- "\tSetting this value larger helps inflate the size of the final table.\n"
- "-j\tAffects the ``jump value,'' i.e., how far to advance the associated\n"
- "\tcharacter value upon collisions. Must be an odd number, default is %d.\n"
- "-J\tSkips '#include <string.h>' part in the output.\n"
- "-k\tAllows selection of the key positions used in the hash function.\n"
- "\tThe allowable choices range between 1-%d, inclusive. The positions\n"
- "\tare separated by commas, ranges may be used, and key positions may\n"
- "\toccur in any order. Also, the meta-character '*' causes the generated\n"
- "\thash function to consider ALL key positions, and $ indicates the\n"
- "\t``final character'' of a key, e.g., $,1,2,4,6-10.\n"
- "-K\tAllow use to select name of the keyword component in the keyword\n"
- "\tstructure.\n"
- "-l\tCompare key lengths before trying a string comparison. This helps\n"
- "\tcut down on the number of string comparisons made during the lookup.\n"
- "-L\tGenerates code in the language specified by the option's argument.\n"
- "\tLanguages handled are currently C++ and C. The default is C.\n"
- "-m\tAvoids the warning about identical hash values. This is valid\n"
- "\tonly if the -D option is enabled.\n"
- "-M\tSkips class definition in the output. This is valid only in C++ mode.\n"
- "-n\tDo not include the length of the keyword when computing the hash\n"
- "\tfunction.\n"
- "-N\tAllow user to specify name of generated lookup function. Default\n"
- "\tname is `in_word_set.'\n"
- "-o\tReorders input keys by frequency of occurrence of the key sets.\n"
- "\tThis should decrease the search time dramatically.\n"
- "-O\tOptimize the generated lookup function by assuming that all input\n"
- "\tkeywords are members of the keyset from the keyfile.\n"
- "-p\tChanges the return value of the generated function ``in_word_set''\n"
- "\tfrom its default boolean value (i.e., 0 or 1), to type ``pointer\n"
- "\tto wordlist array'' This is most useful when the -t option, allowing\n"
- "\tuser-defined structs, is used.\n"
- "-r\tUtilizes randomness to initialize the associated values table.\n"
- "-s\tAffects the size of the generated hash table. The numeric argument\n"
- "\tfor this option indicates ``how many times larger or smaller'' the\n"
- "\tassociated value range should be, in relationship to the number of\n"
- "\tkeys, e.g. a value of 3 means ``allow the maximum associated value\n"
- "\tto be about 3 times larger than the number of input keys.''\n"
- "\tConversely, a value of -3 means ``make the maximum associated\n"
- "\tvalue about 3 times smaller than the number of input keys. A\n"
- "\tlarger table should decrease the time required for an unsuccessful\n"
- "\tsearch, at the expense of extra table space. Default value is 1.\n"
- "-S\tCauses the generated C code to use a switch statement scheme, rather\n"
- "\tthan an array lookup table. This can lead to a reduction in both\n"
- "\ttime and space requirements for some keyfiles. The argument to\n"
- "\tthis option determines how many switch statements are generated.\n"
- "\tA value of 1 generates 1 switch containing all the elements, a value\n"
- "\tof 2 generates 2 tables with 1/2 the elements in each table, etc.\n"
- "\tThis is useful since many C compilers cannot correctly generate code\n"
- "\tfor large switch statements.\n"
- "-t\tAllows the user to include a structured type declaration for \n"
- "\tgenerated code. Any text before %%%% is consider part of the type\n"
- "\tdeclaration. Key words and additional fields may follow this, one\n"
- "\tgroup of fields per line.\n"
- "-T\tPrevents the transfer of the type declaration to the output file.\n"
- "\tUse this option if the type is already defined elsewhere.\n"
- "-v\tPrints out the current version number and exits with a value of 0\n"
- "-V\tExits silently with a value of 0.\n"
- "-Z\tAllow user to specify name of generated C++ class. Default\n"
- "\tname is `Perfect_Hash.'\n",
- DEFAULT_JUMP_VALUE,
- MAX_KEY_POS - 1);
- Options::usage ();
- return -1;
- }
- // Sets the name for the hash function.
- case 'H':
- {
- hash_name_ = getopt.optarg;
- break;
- }
- // Sets the initial value for the associated values array.
- case 'i':
- {
- initial_asso_value_ = atoi (getopt.optarg);
- if (initial_asso_value_ < 0)
- ACE_ERROR ((LM_ERROR,
- "Initial value %d should be non-zero, ignoring and continuing.\n",
- initial_asso_value_));
- if (option[RANDOM])
- ACE_ERROR ((LM_ERROR,
- "warning, -r option superceeds -i, ignoring -i option and continuing\n"));
- break;
- }
- case 'I':
- {
- ACE_SET_BITS (option_word_, STRCASECMP);
- break;
- }
- // Sets the jump value, must be odd for later algorithms.
- case 'j':
- {
- jump_ = atoi (getopt.optarg);
- if (jump_ < 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Jump value %d must be a positive number.\n%r",
- jump_,
- &Options::usage),
- -1);
- else if (jump_ && ACE_EVEN (jump_))
- ACE_ERROR ((LM_ERROR,
- "Jump value %d should be odd, adding 1 and continuing...\n",
- jump_++));
- break;
- }
- // Skip including the header file string.h.
- case 'J':
- {
- ACE_SET_BITS (option_word_, SKIPSTRINGH);
- break;
- }
- // Sets key positions used for hash function.
- case 'k':
- {
- const int BAD_VALUE = -1;
- int value;
- Iterator expand (getopt.optarg,
- 1,
- MAX_KEY_POS - 1,
- WORD_END,
- BAD_VALUE,
- EOS);
-
- // Use all the characters for hashing!!!!
- if (*getopt.optarg == '*')
- option_word_ = (option_word_ & ~DEFAULTCHARS) | ALLCHARS;
- else
- {
- char *l_key_pos;
-
- for (l_key_pos = key_positions_;
- (value = expand ()) != EOS;
- l_key_pos++)
- if (value == BAD_VALUE)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Illegal key value or range, use 1,2,3-%d,'$' or '*'.\n%r",
- MAX_KEY_POS - 1,
- usage),
- -1);
- else
- *l_key_pos = value;;
-
- *l_key_pos = EOS;
-
- total_keysig_size_ = (l_key_pos - key_positions_);
- if (total_keysig_size_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "No keys selected.\n%r",
- &Options::usage),
- -1);
- else if (key_sort (key_positions_, total_keysig_size_) == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Duplicate keys selected\n%r",
- &Options::usage),
- -1);
- if (total_keysig_size_ != 2
- || (key_positions_[0] != 1
- || key_positions_[1] != WORD_END))
- ACE_CLR_BITS (option_word_, DEFAULTCHARS);
- }
- break;
- }
- // Make this the keyname for the keyword component field.
- case 'K':
- {
- key_name_ = getopt.optarg;
- break;
- }
- // Create length table to avoid extra string compares.
- case 'l':
- {
- ACE_SET_BITS (option_word_, LENTABLE);
- break;
- }
- // Deal with different generated languages.
- case 'L':
- {
- option_word_ &= ~C;
- if (!ACE_OS::strcmp (getopt.optarg, "C++"))
- ACE_SET_BITS (option_word_, (CPLUSPLUS | ANSI));
- else if (!ACE_OS::strcmp (getopt.optarg, "C"))
- ACE_SET_BITS (option_word_, C);
- else
- {
- ACE_ERROR ((LM_ERROR,
- "unsupported language option %s, defaulting to C\n",
- getopt.optarg));
- ACE_SET_BITS (option_word_, C);
- }
- break;
- }
- // Don't print the warnings.
- case 'm':
- {
- ACE_SET_BITS (option_word_, MUTE);
- break;
- }
- // Skip the class definition while in C++ mode.
- case 'M':
- {
- ACE_SET_BITS (option_word_, SKIPCLASS);
- break;
- }
- // Don't include the length when computing hash function.
- case 'n':
- {
- ACE_SET_BITS (option_word_, NOLENGTH);
- break;
- }
- // Make generated lookup function name be optarg
- case 'N':
- {
- function_name_ = getopt.optarg;
- break;
- }
- // Make fill_default be optarg
- case 'F':
- {
- fill_default_ = getopt.optarg;
- break;
- }
- // Order input by frequency of key set occurrence.
- case 'o':
- {
- ACE_SET_BITS (option_word_, ORDER);
- break;
- }
- case 'O':
- {
- ACE_SET_BITS (option_word_, OPTIMIZE);
- break;
- }
- // Generated lookup function now a pointer instead of int.
- case 'p':
- {
- ACE_SET_BITS (option_word_, POINTER);
- break;
- }
- // Utilize randomness to initialize the associated values
- // table.
- case 'r':
- {
- ACE_SET_BITS (option_word_, RANDOM);
- if (initial_asso_value_ != 0)
- ACE_ERROR ((LM_ERROR,
- "warning, -r option superceeds -i, disabling -i option and continuing\n"));
- break;
- }
- // Range of associated values, determines size of final table.
- case 's':
- {
- size_ = atoi (getopt.optarg);
- if (abs (size_) > 50)
- ACE_ERROR ((LM_ERROR,
- "%d is excessive, did you really mean this?! (type %n -h for help)\n",
- size_));
- break;
- }
- // Generate switch statement output, rather than lookup table.
- case 'S':
- {
- ACE_SET_BITS (option_word_, SWITCH);
- total_switches_ = atoi (getopt.optarg);
- if (total_switches_ <= 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "number of switches %s must be a positive number\n%r",
- getopt.optarg,
- &Options::usage),
- -1);
- break;
- }
- // Enable the TYPE mode, allowing arbitrary user structures.
- case 't':
- {
- ACE_SET_BITS (option_word_, TYPE);
- break;
- }
- // Don't print structure definition.
- case 'T':
- {
- ACE_SET_BITS (option_word_, NOTYPE);
- break;
- }
- // Print out the version and quit.
- case 'v':
- ACE_ERROR ((LM_ERROR,
- "%n: version %s\n%r\n",
- version_string,
- &Options::usage));
- ACE_OS::exit (0);
- /* NOTREACHED */
- break;
- // Exit with value of 0 (this is useful to check if gperf exists)
- case 'V':
- ACE_OS::exit (0);
- /* NOTREACHED */
- break;
- // Set the class name.
- case 'Z':
- {
- class_name_ = getopt.optarg;
- break;
- }
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "%r",
- &Options::usage),
- -1);
- }
-
- }
-
- if (argv[getopt.optind] &&
- freopen (argv[getopt.optind],
- "r",
- stdin) == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Cannot open keyword file %p\n%r",
- argv[getopt.optind],
- &Options::usage),
- -1);
- if (++getopt.optind < argc)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Extra trailing arguments to %n.\n%r",
- usage),
- -1);
- return 0;
-}
-
-// True if option enable, else false.
-
-int
-Options::operator[] (Option_Type option)
-{
- return ACE_BIT_ENABLED (option_word_, option);
-}
-
-// Enables option OPT.
-
-void
-Options::operator = (enum Option_Type opt)
-{
- ACE_SET_BITS (option_word_, opt);
-}
-
-// Disables option OPT.
-
-void
-Options::operator != (enum Option_Type opt)
-{
- ACE_CLR_BITS (option_word_, opt);
-}
-
-// Initializes the key Iterator.
-
-void
-Options::reset (void)
-{
- key_pos_ = 0;
-}
-
-// Returns current key_position and advanced index.
-
-int
-Options::get (void)
-{
- return key_positions_[key_pos_++];
-}
-
-// Sets the size of the table size.
-
-void
-Options::asso_max (int r)
-{
- size_ = r;
-}
-
-// Returns the size of the table size.
-
-int
-Options::asso_max (void)
-{
- return size_;
-}
-
-// Returns total distinct key positions.
-
-u_int
-Options::max_keysig_size (void)
-{
- return total_keysig_size_;
-}
-
-// Sets total distinct key positions.
-
-void
-Options::keysig_size (u_int a_size)
-{
- total_keysig_size_ = a_size;
-}
-
-// Returns the jump value.
-
-int
-Options::jump (void)
-{
- return jump_;
-}
-
-// Returns the generated function name.
-
-const char *
-Options::function_name (void)
-{
- return function_name_;
-}
-
-// Returns the fill default
-
-const char *
-Options::fill_default (void)
-{
- return fill_default_;
-}
-
-// Returns the keyword key name.
-
-const char *
-Options::key_name (void)
-{
- return key_name_;
-}
-
-// Returns the hash function name.
-
-const char *
-Options::hash_name (void)
-{
- return hash_name_;
-}
-
-// Returns the generated class name.
-
-const char *
-Options::class_name (void)
-{
- return class_name_;
-}
-
-// Returns the initial associated character value.
-
-int
-Options::initial_value (void)
-{
- return initial_asso_value_;
-}
-
-// Returns the iterations value.
-
-int
-Options::iterations (void)
-{
- return iterations_;
-}
-
-// Returns the string used to delimit keywords from other attributes.
-
-const char *
-Options::delimiter (void)
-{
- return delimiters_;
-}
-
-// Gets the total number of switch statements to generate.
-
-int
-Options::total_switches (void)
-{
- return total_switches_;
-}
-
-#endif /* ACE_HAS_GPERF */
diff --git a/apps/gperf/src/Options.h b/apps/gperf/src/Options.h
deleted file mode 100644
index 88962561038..00000000000
--- a/apps/gperf/src/Options.h
+++ /dev/null
@@ -1,190 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#ifndef OPTIONS_H
-#define OPTIONS_H
-
-#include "ace/Log_Msg.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_GPERF)
-
-// Enumerate the potential debugging Options.
-
-enum Option_Type
-{
- DEBUG = 01, // Enable debugging (prints diagnostics to stderr).
- ORDER = 02, // Apply ordering heuristic to speed-up search time.
- ANSI = 04, // Generate ANSI prototypes.
- ALLCHARS = 010, // Use all characters in hash function.
- INLINE = 020, // Generate code for inline functions.
- TYPE = 040, // Handle user-defined type structured keyword input.
- RANDOM = 0100, // Randomly initialize the associated values table.
- DEFAULTCHARS = 0200, // Make default char positions be 1,$ (end of keyword).
- SWITCH = 0400, // Generate switch output to save space.
- POINTER = 01000, // Have in_word_set function return pointer, not boolean.
- NOLENGTH = 02000, // Don't include keyword length in hash computations.
- LENTABLE = 04000, // Generate a length table for string comparison.
- DUP = 010000, // Handle duplicate hash values for keywords.
- FAST = 020000, // Generate the hash function ``fast.''
- NOTYPE = 040000, // Don't include user-defined type definition in output -- it's already defined elsewhere.
- COMP = 0100000, // Generate strncmp rather than strcmp.
- GLOBAL = 0200000, // Make the keyword table a global variable.
- CONSTANT = 0400000, // Make the generated tables readonly (const).
- CPLUSPLUS = 01000000, // Generate C++ code.
- C = 02000000, // Generate C code.
- ENUM = 04000000, // Use enum for constants.
- STRCASECMP = 010000000, // Use the case insensitive comparison.
- OPTIMIZE = 020000000, // Assume all input keywords are in the keyset.
- ADA = 040000000, // Generate Ada code.
- MUTE = 0100000000, // Dont print the warnings.
- SKIPCLASS = 0200000000, // Skip the class definition part in the output while in C++ mode.
- SKIPSTRINGH = 0400000000, // Skip including the header file string.h.
- BINARYSEARCH = 01000000000, // Generates Binary Search code.
- LINEARSEARCH = 02000000000 // Generates Linear Search code.
-};
-
-// Define some useful constants (these don't really belong here, but
-// I'm not sure where else to put them!). These should be consts, but
-// g++ doesn't seem to do the right thing with them at the
-// moment... ;-(
-
-// PharLap ETS defines EOS as well... so if building for ETS, clear out
-// their EOS.
-#if defined (ACE_HAS_PHARLAP) && defined (EOS)
-# undef EOS
-#endif /* ACE_HAS_PHARLAP && EOS */
-
-enum
-{
- MAX_KEY_POS = 128 - 1, // Max size of each word's key set.
- WORD_START = 1, // Signals the start of a word.
- WORD_END = 0, // Signals the end of a word.
- EOS = MAX_KEY_POS // Signals end of the key list.
-};
-
-// @@ The Options class should be changed to use the Singleton pattern.
-class Options
-{
- // = TITLE
- // This class provides a uniform interface to the various options
- // available to a user of the gperf hash function generator.
- //
- // = DESCRIPTION
- // In addition to the run-time options, found in the <Option_Type>
- // there is also the hash table Size and the Keys to be used in
- // the hashing. The overall design of this module was an
- // experiment in using C++ classes as a mechanism to enhance
- // centralization of option and and error handling.
-public:
- Options (void);
- ~Options (void);
- int operator[] (Option_Type option);
- int parse_args (int argc, char *argv[]);
- void operator= (enum Option_Type);
- void operator!= (enum Option_Type);
- static void print_options (void);
- static void asso_max (int r);
- static int asso_max (void);
- static void reset (void);
- static int get (void);
- static int iterations (void);
- static u_int max_keysig_size (void);
- static void keysig_size (u_int);
- static int jump (void);
- static int initial_value (void);
- static int total_switches (void);
- static const char *function_name (void);
- static const char *fill_default (void);
- static const char *key_name (void);
- static const char *class_name (void);
- static const char *hash_name (void);
- static const char *delimiter (void);
-
-private:
- static int option_word_;
- // Holds the user-specified Options.
-
- static int total_switches_;
- // Number of switch statements to generate.
-
- static u_int total_keysig_size_;
- // Total number of distinct key_positions.
-
- static int size_;
- // Range of the hash table.
-
- static int key_pos_;
- // Tracks current key position for Iterator.
-
- static int jump_;
- // Jump length when trying alternative values.
-
- static int initial_asso_value_;
- // Initial value for asso_values table.
-
- static int iterations_;
- // Amount to iterate when a collision occurs.
-
- static int argc_;
- // Records count of command-line arguments.
-
- static char **argv_;
- // Stores a pointer to command-line vector.
-
- static const char *function_name_;
- // Names used for generated lookup function.
-
- static const char *fill_default_;
- // Expression used to assign default values in keyword table.
-
- static const char *key_name_;
- // Name used for keyword key.
-
- static const char *class_name_;
- // Name used for generated C++ class.
-
- static const char *hash_name_;
- // Name used for generated hash function.
-
- static const char *delimiters_;
- // Separates keywords from other attributes.
-
- static char key_positions_[MAX_KEY_POS];
- // Contains user-specified key choices.
-
- static int key_sort (char *base, int len);
- // Sorts key positions in REVERSE order.
-
- static void usage (void);
- // Prints proper program usage.
-};
-
-// Global option coordinator for the entire program.
-extern Options option;
-
-#endif /* ACE_HAS_GPERF */
-#endif /* OPTIONS_H */
diff --git a/apps/gperf/src/Vectors.cpp b/apps/gperf/src/Vectors.cpp
deleted file mode 100644
index 95706725549..00000000000
--- a/apps/gperf/src/Vectors.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#include "Vectors.h"
-
-ACE_RCSID(src, Vectors, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
-// Counts occurrences of each key set character.
-int Vectors::occurrences[ACE_STANDARD_CHARACTER_SET_SIZE];
-
-// Value associated with each character.
-int Vectors::asso_values[ACE_STANDARD_CHARACTER_SET_SIZE];
-
-#endif /* ACE_HAS_GPERF */
diff --git a/apps/gperf/src/Vectors.h b/apps/gperf/src/Vectors.h
deleted file mode 100644
index e6eec45d355..00000000000
--- a/apps/gperf/src/Vectors.h
+++ /dev/null
@@ -1,49 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#ifndef VECTORS_H
-#define VECTORS_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_GPERF)
-
-class Vectors
-{
- // = TITLE
- // Static class data members that are shared between several
- // classes via inheritance.
-public:
- static int occurrences[ACE_STANDARD_CHARACTER_SET_SIZE];
- // Counts occurrences of each key set character.
-
- static int asso_values[ACE_STANDARD_CHARACTER_SET_SIZE];
- // Value associated with each character.
-};
-
-#endif /* ACE_HAS_GPERF */
-#endif /* VECTORS_H */
diff --git a/apps/gperf/src/Version.cpp b/apps/gperf/src/Version.cpp
deleted file mode 100644
index d2967050e43..00000000000
--- a/apps/gperf/src/Version.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Current program version number.
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#include "ace/ACE.h"
-
-ACE_RCSID(src, Version, "$Id$")
-
-const char *version_string = "2.8 (ACE version)";
diff --git a/apps/gperf/src/gperf.cpp b/apps/gperf/src/gperf.cpp
deleted file mode 100644
index 1c1304d185e..00000000000
--- a/apps/gperf/src/gperf.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Driver program for the gperf hash function generator.
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-// Simple driver program for the gperf hash function generator. All
-// the hard work is done in class Gen_Perf and its class methods.
-
-#include "Gen_Perf.h"
-
-ACE_RCSID(src, gperf, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
-#include "Options.h"
-
-int
-main (int argc, char *argv[])
-{
- struct tm *tm;
- time_t clock;
-
- // Sets the Options.
- if (option.parse_args (argc, argv) == -1)
- return 1;
-
- ACE_OS::time (&clock);
- tm = ACE_OS::localtime (&clock);
-
- ACE_OS::printf ("/* starting time is %d:%02d:%02d */\n",
- tm->tm_hour,
- tm->tm_min,
- tm->tm_sec);
-
- // Initializes the key word list.
- Gen_Perf gperf;
-
- // Generates and prints the gperf hash table. Don't use exit here,
- // it skips the destructors.
- int status = gperf.run ();
-
- ACE_OS::time (&clock);
- tm = ACE_OS::localtime (&clock);
-
- ACE_OS::printf ("/* ending time is %d:%02d:%02d */\n",
- tm->tm_hour,
- tm->tm_min,
- tm->tm_sec);
- return status;
-}
-#else /* ! ACE_HAS_GPERF */
-int
-main (int argc, char *argv[])
-{
- ACE_UNUSED_ARG (argc);
- ACE_UNUSED_ARG (argv);
-
- ACE_ERROR_RETURN ((LM_ERROR,
- "gperf is not operational because "
- "ACE_HAS_GPERF was not enabled for the build\n"),
- 1);
-}
-#endif /* ! ACE_HAS_GPERF */
diff --git a/apps/gperf/src/gperf.dsp b/apps/gperf/src/gperf.dsp
deleted file mode 100644
index ce67bb20bde..00000000000
--- a/apps/gperf/src/gperf.dsp
+++ /dev/null
@@ -1,219 +0,0 @@
-# Microsoft Developer Studio Project File - Name="gperf" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-# TARGTYPE "Win32 (ALPHA) Console Application" 0x0603
-
-CFG=gperf - Win32 Alpha Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "gperf.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "gperf.mak" CFG="gperf - Win32 Alpha Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "gperf - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "gperf - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE "gperf - Win32 Alpha Debug" (based on\
- "Win32 (ALPHA) Console Application")
-!MESSAGE "gperf - Win32 Alpha Release" (based on\
- "Win32 (ALPHA) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-
-!IF "$(CFG)" == "gperf - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir ".\Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 gperf.lib ace.lib /nologo /subsystem:console /machine:I386 /out:"..\..\..\bin\Release\gperf.exe" /libpath:"..\..\..\ace" /libpath:".\lib"
-# SUBTRACT LINK32 /nodefaultlib
-
-!ELSEIF "$(CFG)" == "gperf - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 gperfd.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\..\..\bin\gperf.exe" /pdbtype:sept /libpath:"..\..\..\ace" /libpath:".\lib\\"
-# SUBTRACT LINK32 /nodefaultlib
-
-!ELSEIF "$(CFG)" == "gperf - Win32 Alpha Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "gperf__0"
-# PROP BASE Intermediate_Dir "gperf__0"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /Gt0 /W3 /GX /Zi /Od /I "..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /FD /c
-# SUBTRACT BASE CPP /YX
-# ADD CPP /nologo /MDd /Gt0 /W3 /GX /Zi /Od /I "..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /FD /c
-# SUBTRACT CPP /YX
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 gperfd.lib aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:ALPHA /out:"..\..\..\bin\gperf.exe" /pdbtype:sept /libpath:"..\..\..\ace" /libpath:".\lib\\"
-# SUBTRACT BASE LINK32 /incremental:no /nodefaultlib
-# ADD LINK32 gperfd.lib aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:ALPHA /out:"..\..\..\bin\gperf.exe" /pdbtype:sept /libpath:"..\..\..\ace" /libpath:".\lib\\"
-# SUBTRACT LINK32 /incremental:no /nodefaultlib
-
-!ELSEIF "$(CFG)" == "gperf - Win32 Alpha Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "gperf__1"
-# PROP BASE Intermediate_Dir "gperf__1"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /Gt0 /W3 /GX /O2 /I "..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /FD /c
-# SUBTRACT BASE CPP /YX
-# ADD CPP /nologo /MD /Gt0 /W3 /GX /O2 /I "..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /FD /c
-# SUBTRACT CPP /YX
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 gperf.lib ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /machine:ALPHA /out:"..\..\..\bin\Release\gperf.exe" /libpath:"..\..\..\ace" /libpath:".\lib"
-# SUBTRACT BASE LINK32 /nodefaultlib
-# ADD LINK32 gperf.lib ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /machine:ALPHA /out:"..\..\..\bin\Release\gperf.exe" /libpath:"..\..\..\ace" /libpath:".\lib"
-# SUBTRACT LINK32 /nodefaultlib
-
-!ENDIF
-
-# Begin Target
-
-# Name "gperf - Win32 Release"
-# Name "gperf - Win32 Debug"
-# Name "gperf - Win32 Alpha Debug"
-# Name "gperf - Win32 Alpha Release"
-# Begin Group "Source Files"
-
-# PROP Default_Filter ".cpp"
-# Begin Source File
-
-SOURCE=.\gperf.cpp
-
-!IF "$(CFG)" == "gperf - Win32 Release"
-
-!ELSEIF "$(CFG)" == "gperf - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "gperf - Win32 Alpha Debug"
-
-!ELSEIF "$(CFG)" == "gperf - Win32 Alpha Release"
-
-DEP_CPP_GPERF=\
- "..\..\..\ace\ACE.h"\
- "..\..\..\ace\ACE.i"\
- "..\..\..\ace\Auto_Ptr.cpp"\
- "..\..\..\ace\Auto_Ptr.h"\
- "..\..\..\ace\Auto_Ptr.i"\
- "..\..\..\ace\Basic_Types.h"\
- "..\..\..\ace\Basic_Types.i"\
- "..\..\..\ace\config-win32-borland.h"\
- "..\..\..\ace\config-win32-common.h"\
- "..\..\..\ace\config-win32.h"\
- "..\..\..\ace\config-WinCE.h"\
- "..\..\..\ace\config.h"\
- "..\..\..\ace\inc_user_config.h"\
- "..\..\..\ace\iosfwd.h"\
- "..\..\..\ace\Log_Msg.h"\
- "..\..\..\ace\Log_Priority.h"\
- "..\..\..\ace\Log_Record.h"\
- "..\..\..\ace\Log_Record.i"\
- "..\..\..\ace\Malloc_Base.h"\
- "..\..\..\ace\Managed_Object.cpp"\
- "..\..\..\ace\Managed_Object.h"\
- "..\..\..\ace\Managed_Object.i"\
- "..\..\..\ace\Object_Manager.h"\
- "..\..\..\ace\Object_Manager.i"\
- "..\..\..\ace\OS.h"\
- "..\..\..\ace\OS.i"\
- "..\..\..\ace\SString.h"\
- "..\..\..\ace\SString.i"\
- "..\..\..\ace\streams.h"\
- "..\..\..\ace\Trace.h"\
- "..\..\..\ace\ws2tcpip.h"\
- ".\Bool_Array.h"\
- ".\Gen_Perf.h"\
- ".\Key_List.h"\
- ".\List_Node.h"\
- ".\Options.h"\
- ".\Vectors.h"\
-
-
-!ENDIF
-
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/apps/gperf/src/gperf.dsw b/apps/gperf/src/gperf.dsw
deleted file mode 100644
index 6342ab5a626..00000000000
--- a/apps/gperf/src/gperf.dsw
+++ /dev/null
@@ -1,44 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "gperf"=.\gperf.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name gperf_lib
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "gperf_lib"=.\gperf_lib.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/apps/gperf/src/gperf_lib.dsp b/apps/gperf/src/gperf_lib.dsp
deleted file mode 100644
index f7c807f0a3a..00000000000
--- a/apps/gperf/src/gperf_lib.dsp
+++ /dev/null
@@ -1,684 +0,0 @@
-# Microsoft Developer Studio Project File - Name="gperf_lib" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (ALPHA) Static Library" 0x0604
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=gperf_lib - Win32 Alpha Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "gperf_lib.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "gperf_lib.mak" CFG="gperf_lib - Win32 Alpha Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "gperf_lib - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "gperf_lib - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE "gperf_lib - Win32 Alpha Debug" (based on\
- "Win32 (ALPHA) Static Library")
-!MESSAGE "gperf_lib - Win32 Alpha Release" (based on\
- "Win32 (ALPHA) Static Library")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-
-!IF "$(CFG)" == "gperf_lib - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "gperf_li"
-# PROP BASE Intermediate_Dir "gperf_li"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ".\lib"
-# PROP Intermediate_Dir ".\lib\Release"
-# PROP Target_Dir ""
-RSC=rc.exe
-# ADD BASE RSC /l 0x409
-# ADD RSC /l 0x409
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# SUBTRACT CPP /YX
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:".\lib\gperf.lib"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "gperf_l0"
-# PROP BASE Intermediate_Dir "gperf_l0"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ".\lib"
-# PROP Intermediate_Dir ".\lib\Debug"
-# PROP Target_Dir ""
-RSC=rc.exe
-# ADD BASE RSC /l 0x409
-# ADD RSC /l 0x409
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Z7 /Od /I "..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# SUBTRACT CPP /YX
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:".\lib\gperfd.lib"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "gperf_l0"
-# PROP BASE Intermediate_Dir "gperf_l0"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ".\lib"
-# PROP Intermediate_Dir ".\lib\Debug"
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /Gt0 /W3 /GX /Z7 /Od /I "..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# SUBTRACT BASE CPP /YX
-# ADD CPP /nologo /MDd /Gt0 /W3 /GX /Z7 /Od /I "..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# SUBTRACT CPP /YX
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:".\lib\gperfd.lib"
-# ADD LIB32 /nologo /out:".\lib\gperfd.lib"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "gperf_l1"
-# PROP BASE Intermediate_Dir "gperf_l1"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ".\lib"
-# PROP Intermediate_Dir ".\lib\Release"
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /Gt0 /W3 /GX /O2 /I "..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# SUBTRACT BASE CPP /YX
-# ADD CPP /nologo /MD /Gt0 /W3 /GX /O2 /I "..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# SUBTRACT CPP /YX
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:".\lib\gperf.lib"
-# ADD LIB32 /nologo /out:".\lib\gperf.lib"
-
-!ENDIF
-
-# Begin Target
-
-# Name "gperf_lib - Win32 Release"
-# Name "gperf_lib - Win32 Debug"
-# Name "gperf_lib - Win32 Alpha Debug"
-# Name "gperf_lib - Win32 Alpha Release"
-# Begin Group "Source Files"
-
-# PROP Default_Filter ".cpp"
-# Begin Source File
-
-SOURCE=.\Bool_Array.cpp
-
-!IF "$(CFG)" == "gperf_lib - Win32 Release"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Debug"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Release"
-
-DEP_CPP_BOOL_=\
- "..\..\..\ace\ACE.h"\
- "..\..\..\ace\ACE.i"\
- "..\..\..\ace\Auto_Ptr.cpp"\
- "..\..\..\ace\Auto_Ptr.h"\
- "..\..\..\ace\Auto_Ptr.i"\
- "..\..\..\ace\Basic_Types.h"\
- "..\..\..\ace\Basic_Types.i"\
- "..\..\..\ace\config-win32-borland.h"\
- "..\..\..\ace\config-win32-common.h"\
- "..\..\..\ace\config-win32.h"\
- "..\..\..\ace\config-WinCE.h"\
- "..\..\..\ace\config.h"\
- "..\..\..\ace\inc_user_config.h"\
- "..\..\..\ace\iosfwd.h"\
- "..\..\..\ace\Log_Msg.h"\
- "..\..\..\ace\Log_Priority.h"\
- "..\..\..\ace\Log_Record.h"\
- "..\..\..\ace\Log_Record.i"\
- "..\..\..\ace\Malloc_Base.h"\
- "..\..\..\ace\Managed_Object.cpp"\
- "..\..\..\ace\Managed_Object.h"\
- "..\..\..\ace\Managed_Object.i"\
- "..\..\..\ace\Object_Manager.h"\
- "..\..\..\ace\Object_Manager.i"\
- "..\..\..\ace\OS.h"\
- "..\..\..\ace\OS.i"\
- "..\..\..\ace\SString.h"\
- "..\..\..\ace\SString.i"\
- "..\..\..\ace\streams.h"\
- "..\..\..\ace\Trace.h"\
- "..\..\..\ace\ws2tcpip.h"\
- ".\Bool_Array.h"\
- ".\Options.h"\
-
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\Gen_Perf.cpp
-
-!IF "$(CFG)" == "gperf_lib - Win32 Release"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Debug"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Release"
-
-DEP_CPP_GEN_P=\
- "..\..\..\ace\ACE.h"\
- "..\..\..\ace\ACE.i"\
- "..\..\..\ace\Auto_Ptr.cpp"\
- "..\..\..\ace\Auto_Ptr.h"\
- "..\..\..\ace\Auto_Ptr.i"\
- "..\..\..\ace\Basic_Types.h"\
- "..\..\..\ace\Basic_Types.i"\
- "..\..\..\ace\config-win32-borland.h"\
- "..\..\..\ace\config-win32-common.h"\
- "..\..\..\ace\config-win32.h"\
- "..\..\..\ace\config-WinCE.h"\
- "..\..\..\ace\config.h"\
- "..\..\..\ace\inc_user_config.h"\
- "..\..\..\ace\iosfwd.h"\
- "..\..\..\ace\Log_Msg.h"\
- "..\..\..\ace\Log_Priority.h"\
- "..\..\..\ace\Log_Record.h"\
- "..\..\..\ace\Log_Record.i"\
- "..\..\..\ace\Malloc_Base.h"\
- "..\..\..\ace\Managed_Object.cpp"\
- "..\..\..\ace\Managed_Object.h"\
- "..\..\..\ace\Managed_Object.i"\
- "..\..\..\ace\Object_Manager.h"\
- "..\..\..\ace\Object_Manager.i"\
- "..\..\..\ace\OS.h"\
- "..\..\..\ace\OS.i"\
- "..\..\..\ace\SString.h"\
- "..\..\..\ace\SString.i"\
- "..\..\..\ace\streams.h"\
- "..\..\..\ace\Trace.h"\
- "..\..\..\ace\ws2tcpip.h"\
- ".\Bool_Array.h"\
- ".\Gen_Perf.h"\
- ".\Key_List.h"\
- ".\List_Node.h"\
- ".\Options.h"\
- ".\Vectors.h"\
-
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Table.cpp
-
-!IF "$(CFG)" == "gperf_lib - Win32 Release"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Debug"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Release"
-
-DEP_CPP_HASH_=\
- "..\..\..\ace\ACE.h"\
- "..\..\..\ace\ACE.i"\
- "..\..\..\ace\Auto_Ptr.cpp"\
- "..\..\..\ace\Auto_Ptr.h"\
- "..\..\..\ace\Auto_Ptr.i"\
- "..\..\..\ace\Basic_Types.h"\
- "..\..\..\ace\Basic_Types.i"\
- "..\..\..\ace\config-win32-borland.h"\
- "..\..\..\ace\config-win32-common.h"\
- "..\..\..\ace\config-win32.h"\
- "..\..\..\ace\config-WinCE.h"\
- "..\..\..\ace\config.h"\
- "..\..\..\ace\inc_user_config.h"\
- "..\..\..\ace\iosfwd.h"\
- "..\..\..\ace\Log_Msg.h"\
- "..\..\..\ace\Log_Priority.h"\
- "..\..\..\ace\Log_Record.h"\
- "..\..\..\ace\Log_Record.i"\
- "..\..\..\ace\Malloc_Base.h"\
- "..\..\..\ace\Managed_Object.cpp"\
- "..\..\..\ace\Managed_Object.h"\
- "..\..\..\ace\Managed_Object.i"\
- "..\..\..\ace\Object_Manager.h"\
- "..\..\..\ace\Object_Manager.i"\
- "..\..\..\ace\OS.h"\
- "..\..\..\ace\OS.i"\
- "..\..\..\ace\SString.h"\
- "..\..\..\ace\SString.i"\
- "..\..\..\ace\streams.h"\
- "..\..\..\ace\Trace.h"\
- "..\..\..\ace\ws2tcpip.h"\
- ".\Hash_Table.h"\
- ".\List_Node.h"\
- ".\Options.h"\
-
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\Iterator.cpp
-
-!IF "$(CFG)" == "gperf_lib - Win32 Release"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Debug"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Release"
-
-DEP_CPP_ITERA=\
- "..\..\..\ace\ACE.h"\
- "..\..\..\ace\ACE.i"\
- "..\..\..\ace\Auto_Ptr.cpp"\
- "..\..\..\ace\Auto_Ptr.h"\
- "..\..\..\ace\Auto_Ptr.i"\
- "..\..\..\ace\Basic_Types.h"\
- "..\..\..\ace\Basic_Types.i"\
- "..\..\..\ace\config-win32-borland.h"\
- "..\..\..\ace\config-win32-common.h"\
- "..\..\..\ace\config-win32.h"\
- "..\..\..\ace\config-WinCE.h"\
- "..\..\..\ace\config.h"\
- "..\..\..\ace\inc_user_config.h"\
- "..\..\..\ace\iosfwd.h"\
- "..\..\..\ace\Log_Msg.h"\
- "..\..\..\ace\Log_Priority.h"\
- "..\..\..\ace\Log_Record.h"\
- "..\..\..\ace\Log_Record.i"\
- "..\..\..\ace\Malloc_Base.h"\
- "..\..\..\ace\Managed_Object.cpp"\
- "..\..\..\ace\Managed_Object.h"\
- "..\..\..\ace\Managed_Object.i"\
- "..\..\..\ace\Object_Manager.h"\
- "..\..\..\ace\Object_Manager.i"\
- "..\..\..\ace\OS.h"\
- "..\..\..\ace\OS.i"\
- "..\..\..\ace\SString.h"\
- "..\..\..\ace\SString.i"\
- "..\..\..\ace\streams.h"\
- "..\..\..\ace\Trace.h"\
- "..\..\..\ace\ws2tcpip.h"\
- ".\Iterator.h"\
- ".\Options.h"\
-
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\Key_List.cpp
-
-!IF "$(CFG)" == "gperf_lib - Win32 Release"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Debug"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Release"
-
-DEP_CPP_KEY_L=\
- "..\..\..\ace\ACE.h"\
- "..\..\..\ace\ACE.i"\
- "..\..\..\ace\Atomic_Op.i"\
- "..\..\..\ace\Auto_Ptr.cpp"\
- "..\..\..\ace\Auto_Ptr.h"\
- "..\..\..\ace\Auto_Ptr.i"\
- "..\..\..\ace\Basic_Types.h"\
- "..\..\..\ace\Basic_Types.i"\
- "..\..\..\ace\config-win32-borland.h"\
- "..\..\..\ace\config-win32-common.h"\
- "..\..\..\ace\config-win32.h"\
- "..\..\..\ace\config-WinCE.h"\
- "..\..\..\ace\config.h"\
- "..\..\..\ace\Containers.h"\
- "..\..\..\ace\Containers.i"\
- "..\..\..\ace\Containers_T.cpp"\
- "..\..\..\ace\Containers_T.h"\
- "..\..\..\ace\Containers_T.i"\
- "..\..\..\ace\Event_Handler.h"\
- "..\..\..\ace\Event_Handler.i"\
- "..\..\..\ace\Free_List.cpp"\
- "..\..\..\ace\Free_List.h"\
- "..\..\..\ace\Free_List.i"\
- "..\..\..\ace\inc_user_config.h"\
- "..\..\..\ace\iosfwd.h"\
- "..\..\..\ace\Log_Msg.h"\
- "..\..\..\ace\Log_Priority.h"\
- "..\..\..\ace\Log_Record.h"\
- "..\..\..\ace\Log_Record.i"\
- "..\..\..\ace\Malloc.h"\
- "..\..\..\ace\Malloc.i"\
- "..\..\..\ace\Malloc_Base.h"\
- "..\..\..\ace\Malloc_T.cpp"\
- "..\..\..\ace\Malloc_T.h"\
- "..\..\..\ace\Malloc_T.i"\
- "..\..\..\ace\Managed_Object.cpp"\
- "..\..\..\ace\Managed_Object.h"\
- "..\..\..\ace\Managed_Object.i"\
- "..\..\..\ace\Mem_Map.h"\
- "..\..\..\ace\Mem_Map.i"\
- "..\..\..\ace\Memory_Pool.h"\
- "..\..\..\ace\Memory_Pool.i"\
- "..\..\..\ace\Object_Manager.h"\
- "..\..\..\ace\Object_Manager.i"\
- "..\..\..\ace\OS.h"\
- "..\..\..\ace\OS.i"\
- "..\..\..\ace\Read_Buffer.h"\
- "..\..\..\ace\Read_Buffer.i"\
- "..\..\..\ace\Signal.h"\
- "..\..\..\ace\Signal.i"\
- "..\..\..\ace\SString.h"\
- "..\..\..\ace\SString.i"\
- "..\..\..\ace\streams.h"\
- "..\..\..\ace\SV_Semaphore_Complex.h"\
- "..\..\..\ace\SV_Semaphore_Complex.i"\
- "..\..\..\ace\SV_Semaphore_Simple.h"\
- "..\..\..\ace\SV_Semaphore_Simple.i"\
- "..\..\..\ace\Synch.h"\
- "..\..\..\ace\Synch.i"\
- "..\..\..\ace\Synch_T.cpp"\
- "..\..\..\ace\Synch_T.h"\
- "..\..\..\ace\Synch_T.i"\
- "..\..\..\ace\Thread.h"\
- "..\..\..\ace\Thread.i"\
- "..\..\..\ace\Trace.h"\
- "..\..\..\ace\ws2tcpip.h"\
- ".\Hash_Table.h"\
- ".\Key_List.h"\
- ".\List_Node.h"\
- ".\Options.h"\
- ".\Vectors.h"\
-
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\List_Node.cpp
-
-!IF "$(CFG)" == "gperf_lib - Win32 Release"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Debug"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Release"
-
-DEP_CPP_LIST_=\
- "..\..\..\ace\ACE.h"\
- "..\..\..\ace\ACE.i"\
- "..\..\..\ace\Auto_Ptr.cpp"\
- "..\..\..\ace\Auto_Ptr.h"\
- "..\..\..\ace\Auto_Ptr.i"\
- "..\..\..\ace\Basic_Types.h"\
- "..\..\..\ace\Basic_Types.i"\
- "..\..\..\ace\config-win32-borland.h"\
- "..\..\..\ace\config-win32-common.h"\
- "..\..\..\ace\config-win32.h"\
- "..\..\..\ace\config-WinCE.h"\
- "..\..\..\ace\config.h"\
- "..\..\..\ace\inc_user_config.h"\
- "..\..\..\ace\iosfwd.h"\
- "..\..\..\ace\Log_Msg.h"\
- "..\..\..\ace\Log_Priority.h"\
- "..\..\..\ace\Log_Record.h"\
- "..\..\..\ace\Log_Record.i"\
- "..\..\..\ace\Malloc_Base.h"\
- "..\..\..\ace\Managed_Object.cpp"\
- "..\..\..\ace\Managed_Object.h"\
- "..\..\..\ace\Managed_Object.i"\
- "..\..\..\ace\Object_Manager.h"\
- "..\..\..\ace\Object_Manager.i"\
- "..\..\..\ace\OS.h"\
- "..\..\..\ace\OS.i"\
- "..\..\..\ace\SString.h"\
- "..\..\..\ace\SString.i"\
- "..\..\..\ace\streams.h"\
- "..\..\..\ace\Trace.h"\
- "..\..\..\ace\ws2tcpip.h"\
- ".\List_Node.h"\
- ".\Options.h"\
- ".\Vectors.h"\
-
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\Options.cpp
-
-!IF "$(CFG)" == "gperf_lib - Win32 Release"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Debug"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Release"
-
-DEP_CPP_OPTIO=\
- "..\..\..\ace\ACE.h"\
- "..\..\..\ace\ACE.i"\
- "..\..\..\ace\Auto_Ptr.cpp"\
- "..\..\..\ace\Auto_Ptr.h"\
- "..\..\..\ace\Auto_Ptr.i"\
- "..\..\..\ace\Basic_Types.h"\
- "..\..\..\ace\Basic_Types.i"\
- "..\..\..\ace\config-win32-borland.h"\
- "..\..\..\ace\config-win32-common.h"\
- "..\..\..\ace\config-win32.h"\
- "..\..\..\ace\config-WinCE.h"\
- "..\..\..\ace\config.h"\
- "..\..\..\ace\Get_Opt.h"\
- "..\..\..\ace\Get_Opt.i"\
- "..\..\..\ace\inc_user_config.h"\
- "..\..\..\ace\iosfwd.h"\
- "..\..\..\ace\Log_Msg.h"\
- "..\..\..\ace\Log_Priority.h"\
- "..\..\..\ace\Log_Record.h"\
- "..\..\..\ace\Log_Record.i"\
- "..\..\..\ace\Malloc_Base.h"\
- "..\..\..\ace\Managed_Object.cpp"\
- "..\..\..\ace\Managed_Object.h"\
- "..\..\..\ace\Managed_Object.i"\
- "..\..\..\ace\Object_Manager.h"\
- "..\..\..\ace\Object_Manager.i"\
- "..\..\..\ace\OS.h"\
- "..\..\..\ace\OS.i"\
- "..\..\..\ace\SString.h"\
- "..\..\..\ace\SString.i"\
- "..\..\..\ace\streams.h"\
- "..\..\..\ace\Trace.h"\
- "..\..\..\ace\ws2tcpip.h"\
- ".\Iterator.h"\
- ".\Options.h"\
-
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\Vectors.cpp
-
-!IF "$(CFG)" == "gperf_lib - Win32 Release"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Debug"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Release"
-
-DEP_CPP_VECTO=\
- "..\..\..\ace\ACE.h"\
- "..\..\..\ace\ACE.i"\
- "..\..\..\ace\Auto_Ptr.cpp"\
- "..\..\..\ace\Auto_Ptr.h"\
- "..\..\..\ace\Auto_Ptr.i"\
- "..\..\..\ace\Basic_Types.h"\
- "..\..\..\ace\Basic_Types.i"\
- "..\..\..\ace\config-win32-borland.h"\
- "..\..\..\ace\config-win32-common.h"\
- "..\..\..\ace\config-win32.h"\
- "..\..\..\ace\config-WinCE.h"\
- "..\..\..\ace\config.h"\
- "..\..\..\ace\inc_user_config.h"\
- "..\..\..\ace\iosfwd.h"\
- "..\..\..\ace\Log_Msg.h"\
- "..\..\..\ace\Log_Priority.h"\
- "..\..\..\ace\Log_Record.h"\
- "..\..\..\ace\Log_Record.i"\
- "..\..\..\ace\Malloc_Base.h"\
- "..\..\..\ace\Managed_Object.cpp"\
- "..\..\..\ace\Managed_Object.h"\
- "..\..\..\ace\Managed_Object.i"\
- "..\..\..\ace\Object_Manager.h"\
- "..\..\..\ace\Object_Manager.i"\
- "..\..\..\ace\OS.h"\
- "..\..\..\ace\OS.i"\
- "..\..\..\ace\SString.h"\
- "..\..\..\ace\SString.i"\
- "..\..\..\ace\streams.h"\
- "..\..\..\ace\Trace.h"\
- "..\..\..\ace\ws2tcpip.h"\
- ".\Vectors.h"\
-
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\Version.cpp
-
-!IF "$(CFG)" == "gperf_lib - Win32 Release"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Debug"
-
-!ELSEIF "$(CFG)" == "gperf_lib - Win32 Alpha Release"
-
-DEP_CPP_VERSI=\
- "..\..\..\ace\ACE.h"\
- "..\..\..\ace\ACE.i"\
- "..\..\..\ace\Auto_Ptr.cpp"\
- "..\..\..\ace\Auto_Ptr.h"\
- "..\..\..\ace\Auto_Ptr.i"\
- "..\..\..\ace\Basic_Types.h"\
- "..\..\..\ace\Basic_Types.i"\
- "..\..\..\ace\config-win32-borland.h"\
- "..\..\..\ace\config-win32-common.h"\
- "..\..\..\ace\config-win32.h"\
- "..\..\..\ace\config-WinCE.h"\
- "..\..\..\ace\config.h"\
- "..\..\..\ace\inc_user_config.h"\
- "..\..\..\ace\iosfwd.h"\
- "..\..\..\ace\Log_Msg.h"\
- "..\..\..\ace\Log_Priority.h"\
- "..\..\..\ace\Log_Record.h"\
- "..\..\..\ace\Log_Record.i"\
- "..\..\..\ace\Malloc_Base.h"\
- "..\..\..\ace\Managed_Object.cpp"\
- "..\..\..\ace\Managed_Object.h"\
- "..\..\..\ace\Managed_Object.i"\
- "..\..\..\ace\Object_Manager.h"\
- "..\..\..\ace\Object_Manager.i"\
- "..\..\..\ace\OS.h"\
- "..\..\..\ace\OS.i"\
- "..\..\..\ace\SString.h"\
- "..\..\..\ace\SString.i"\
- "..\..\..\ace\streams.h"\
- "..\..\..\ace\Trace.h"\
- "..\..\..\ace\ws2tcpip.h"\
-
-
-!ENDIF
-
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter ".h"
-# Begin Source File
-
-SOURCE=.\Bool_Array.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Gen_Perf.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Table.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Iterator.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Key_List.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\List_Node.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Options.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Vectors.h
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/apps/gperf/tests/Makefile b/apps/gperf/tests/Makefile
deleted file mode 100644
index f48bac44333..00000000000
--- a/apps/gperf/tests/Makefile
+++ /dev/null
@@ -1,116 +0,0 @@
-# $Id$
-# Copyright (C) 1989, 1992, 1993 Free Software Foundation, Inc.
-# written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-#
-# This file is part of GNU GPERF.
-#
-# GNU GPERF is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 1, or (at your option)
-# any later version.
-#
-# GNU GPERF is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU GPERF; see the file COPYING. If not, write to the Free
-# Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111, USA.
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-SRC= test.cpp
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-srcdir = .
-GPERF = ../src/gperf
-
-all:
- @echo "performing some tests of the perfect hash generator"
- $(COMPILE.cc) $(srcdir)/test.cpp
- $(GPERF) -a -p -c -l -S1 -o $(srcdir)/c.gperf > cinset.cpp
- $(CXX) $(CCFLAGS) -o cout cinset.cpp test.o $(LDFLAGS) $(VLDLIBS)
- ./cout -v < $(srcdir)/c.gperf > c.out
- -diff -b $(srcdir)/c.exp c.out
- $(GPERF) -a -k1,4,'$$' $(srcdir)/ada.gperf > adainset.cpp
- $(CXX) $(CCFLAGS) -o aout adainset.cpp test.o $(LDFLAGS) $(VLDLIBS)
- ./aout -v < $(srcdir)/ada.gperf > ada-res.out
- -diff -b $(srcdir)/ada-res.exp ada-res.out
- $(GPERF) -a -D $(srcdir)/c++.gperf > c++inset.cpp
- $(CXX) $(CCFLAGS) -o c++out c++inset.cpp test.o $(LDFLAGS) $(VLDLIBS)
- ./c++out -v < $(srcdir)/c++.gperf > c++-res.out
- -diff -b $(srcdir)/c++-res.exp c++-res.out
- $(GPERF) -a -p -D -k1,'$$' -s 2 -o $(srcdir)/adadefs.gperf > preinset.cpp
- $(CXX) $(CCFLAGS) -o preout preinset.cpp test.o $(LDFLAGS) $(VLDLIBS)
- ./preout -v < $(srcdir)/adadefs.gperf > ada-pred.out
- -diff -b $(srcdir)/ada-pred.exp ada-pred.out
- $(GPERF) -a -k1,2,'$$' -o $(srcdir)/modula3.gperf > m3inset.cpp
- $(CXX) $(CCFLAGS) -o m3out m3inset.cpp test.o $(LDFLAGS) $(VLDLIBS)
- ./m3out -v < $(srcdir)/modula3.gperf > modula.out
- -diff -b $(srcdir)/modula.exp modula.out
- $(GPERF) -a -o -S2 -p < $(srcdir)/pascal.gperf > pinset.cpp
- $(CXX) $(CCFLAGS) -o pout pinset.cpp test.o $(LDFLAGS) $(VLDLIBS)
- ./pout -v < $(srcdir)/pascal.gperf > pascal.out
- -diff -b $(srcdir)/pascal.exp pascal.out
- $(GPERF) -m -M -c -C -D -S1 -E -T -a -o -p < $(srcdir)/idl.gperf > iinset.cpp
- $(CXX) $(CCFLAGS) -o iout iinset.cpp test.o $(LDFLAGS) $(VLDLIBS)
- ./iout -v < $(srcdir)/idl.gperf > idl.out
- -diff -b $(srcdir)/idl.exp idl.out
- $(GPERF) -m -M -c -C -D -E -T -a -o -p < $(srcdir)/idl.gperf > iinset.cpp
- $(CXX) $(CCFLAGS) -o iout iinset.cpp test.o $(LDFLAGS) $(VLDLIBS)
- ./iout -v < $(srcdir)/idl.gperf > idl.out
- -diff -b $(srcdir)/idl.exp idl.out
- $(GPERF) -a -o < $(srcdir)/corba.gperf > tinset.cpp
- $(CXX) $(CCFLAGS) -o tout tinset.cpp test.o $(LDFLAGS) $(VLDLIBS)
- ./tout -v < $(srcdir)/corba.gperf > corba.out
- -diff -b $(srcdir)/corba.exp corba.out
-# these next 5 are demos that show off the generated code
- $(GPERF) -p -j1 -o -t -N is_reserved_word -k1,3,'$$' < $(srcdir)/c-parse.gperf | egrep -v 'ing time is ' > test-1.out
- -diff -b $(srcdir)/test-1.exp test-1.out
- $(GPERF) -n -k1-8 -l <$(srcdir)/modula2.gperf | egrep -v 'ing time is ' > test-2.out
- -diff -b $(srcdir)/test-2.exp test-2.out
- $(GPERF) -p -j 1 -o -a -C -g -t -k1,4,$$ < $(srcdir)/gplus.gperf | egrep -v 'ing time is ' > test-3.out
- -diff -b $(srcdir)/test-3.exp test-3.out
- $(GPERF) -D -p -t < $(srcdir)/c-parse.gperf | egrep -v 'ing time is ' > test-4.out
- -diff -b $(srcdir)/test-4.exp test-4.out
- $(GPERF) -g -o -j1 -t -p -N is_reserved_word < $(srcdir)/gpc.gperf | egrep -v 'ing time is ' > test-5.out
- -diff -b $(srcdir)/test-5.exp test-5.out
-# prints out the help message
- -$(GPERF) -a -h > test-6.out 2>&1 || [ a = a ]
- -diff -b $(srcdir)/test-6.exp test-6.out
- ./aout -v < $(srcdir)/c.gperf > test-7.out
- -diff -b $(srcdir)/test-7.exp test-7.out
-
-realclean:
- $(RM) -rf *.out cinset.cpp c++inset.cpp iinset.cpp tinset.cpp \
- pinset.cpp m3inset.cpp adainset.cpp preinset.cpp
- $(RM) -rf c.out aout preout m3out pout cout c++out iout tout
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/test.o .obj/test.so .shobj/test.o .shobj/test.so: test.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/gperf/tests/Makefile.am b/apps/gperf/tests/Makefile.am
deleted file mode 100644
index a6cc359241b..00000000000
--- a/apps/gperf/tests/Makefile.am
+++ /dev/null
@@ -1,115 +0,0 @@
-##---------------------------------------------------------------------------
-## $Id$
-##
-## Copyright (C) 1989, 1992, 1993 Free Software Foundation, Inc.
-## Original makefile written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-## This Makefile.am written by Ossama Othman (othman@astrosun.tn.cornell.edu)
-##
-## This file is part of GNU GPERF.
-##
-## GNU GPERF is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 1, or (at your option)
-## any later version.
-##
-## GNU GPERF is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with GNU GPERF; see the file COPYING. If not, write to the Free
-## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111, USA.
-##
-## Makefile for GPERF tests
-##---------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-
-noinst_PROGRAMS = cout aout c++out preout m3out pout iout iout2 tout
-
-cout_SOURCES = cinset.cpp test.cpp
-
-aout_SOURCES = adainset.cpp test.cpp
-
-c++out_SOURCES = c++inset.cpp test.cpp
-
-preout_SOURCES = preinset.cpp test.cpp
-
-m3out_SOURCES = m3inset.cpp test.cpp
-
-pout_SOURCES = pinset.cpp test.cpp
-
-iout_SOURCES = iinset.cpp test.cpp
-
-iout_SOURCES = iinset2.cpp test.cpp
-
-tout_SOURCES = tinset.cpp test.cpp
-
-BUILT_SOURCES = \
- cinset.cpp \
- adainset.cpp \
- c++inset.cpp \
- preinset.cpp \
- m3inset.cpp \
- pinset.cpp \
- iinset.cpp \
- iinset2.cpp \
- tinset.cpp
-
-EXTRA_DIST = \
- gpc.gperf \
- gplus.gperf \
- irc.gperf \
- makeinfo.gperf \
- modula2.gperf \
- ada-pred.exp \
- ada-res.exp \
- c++-res.exp \
- c.exp \
- corba.exp \
- idl.exp \
- modula.exp \
- pascal.exp \
- test-1.exp \
- test-2.exp \
- test-3.exp \
- test-4.exp \
- test-5.exp \
- test-6.exp \
- test-7.exp
-
-cinset.cpp: c.gperf
- $(GPERF) -a -p -c -l -S1 -o $(srcdir)/c.gperf > cinset.cpp
-
-adainset.cpp: ada.gperf
- $(GPERF) -a -k1,4,'$$' $(srcdir)/ada.gperf > adainset.cpp
-
-c++inset.cpp: c++.gperf
- $(GPERF) -a -D $(srcdir)/c++.gperf > c++inset.cpp
-
-preinset.cpp: adadefs.gperf
- $(GPERF) -a -p -D -k1,'$$' -s 2 -o $(srcdir)/adadefs.gperf > preinset.cpp
-
-m3inset.cpp: modula3.gperf
- $(GPERF) -a -k1,2,'$$' -o $(srcdir)/modula3.gperf > m3inset.cpp
-
-pinset.cpp: pascal.gperf
- $(GPERF) -a -o -S2 -p < $(srcdir)/pascal.gperf > pinset.cpp
-
-iinset.cpp: idl.gperf
- $(GPERF) -m -M -c -C -D -S1 -E -T -a -o -p < $(srcdir)/idl.gperf > iinset.cpp
-
-iinset2.cpp: idl.gperf
- $(GPERF) -m -M -c -C -D -E -T -a -o -p < $(srcdir)/idl.gperf > iinset.cpp
-
-tinset.cpp: corba.gperf
- $(GPERF) -a -o < $(srcdir)/corba.gperf > tinset.cpp
-
diff --git a/apps/gperf/tests/ada-pred.exp b/apps/gperf/tests/ada-pred.exp
deleted file mode 100644
index 33caaa32ea1..00000000000
--- a/apps/gperf/tests/ada-pred.exp
+++ /dev/null
@@ -1,54 +0,0 @@
-in word set boolean
-in word set character
-in word set constraint_error
-in word set false
-in word set float
-in word set integer
-in word set natural
-in word set numeric_error
-in word set positive
-in word set program_error
-in word set storage_error
-in word set string
-in word set tasking_error
-in word set true
-in word set address
-in word set aft
-in word set base
-in word set callable
-in word set constrained
-in word set count
-in word set delta
-in word set digits
-in word set emax
-in word set epsilon
-in word set first
-in word set firstbit
-in word set fore
-in word set image
-in word set large
-in word set last
-in word set lastbit
-in word set length
-in word set machine_emax
-in word set machine_emin
-in word set machine_mantissa
-in word set machine_overflows
-in word set machine_radix
-in word set machine_rounds
-in word set mantissa
-in word set pos
-in word set position
-in word set pred
-in word set range
-in word set safe_emax
-in word set safe_large
-in word set safe_small
-in word set size
-in word set small
-in word set storage_size
-in word set succ
-in word set terminated
-in word set val
-in word set value
-in word set width
diff --git a/apps/gperf/tests/ada-res.exp b/apps/gperf/tests/ada-res.exp
deleted file mode 100644
index 8134fe861f5..00000000000
--- a/apps/gperf/tests/ada-res.exp
+++ /dev/null
@@ -1,63 +0,0 @@
-in word set else
-in word set exit
-in word set terminate
-in word set type
-in word set raise
-in word set range
-in word set reverse
-in word set declare
-in word set end
-in word set record
-in word set exception
-in word set not
-in word set then
-in word set return
-in word set separate
-in word set select
-in word set digits
-in word set renames
-in word set subtype
-in word set elsif
-in word set function
-in word set for
-in word set package
-in word set procedure
-in word set private
-in word set while
-in word set when
-in word set new
-in word set entry
-in word set delay
-in word set case
-in word set constant
-in word set at
-in word set abort
-in word set accept
-in word set and
-in word set delta
-in word set access
-in word set abs
-in word set pragma
-in word set array
-in word set use
-in word set out
-in word set do
-in word set others
-in word set of
-in word set or
-in word set all
-in word set limited
-in word set loop
-in word set null
-in word set task
-in word set in
-in word set is
-in word set if
-in word set rem
-in word set mod
-in word set begin
-in word set body
-in word set xor
-in word set goto
-in word set generic
-in word set with
diff --git a/apps/gperf/tests/ada.gperf b/apps/gperf/tests/ada.gperf
deleted file mode 100644
index 332bdc740ad..00000000000
--- a/apps/gperf/tests/ada.gperf
+++ /dev/null
@@ -1,63 +0,0 @@
-else
-exit
-terminate
-type
-raise
-range
-reverse
-declare
-end
-record
-exception
-not
-then
-return
-separate
-select
-digits
-renames
-subtype
-elsif
-function
-for
-package
-procedure
-private
-while
-when
-new
-entry
-delay
-case
-constant
-at
-abort
-accept
-and
-delta
-access
-abs
-pragma
-array
-use
-out
-do
-others
-of
-or
-all
-limited
-loop
-null
-task
-in
-is
-if
-rem
-mod
-begin
-body
-xor
-goto
-generic
-with
diff --git a/apps/gperf/tests/adadefs.gperf b/apps/gperf/tests/adadefs.gperf
deleted file mode 100644
index 875be69abc9..00000000000
--- a/apps/gperf/tests/adadefs.gperf
+++ /dev/null
@@ -1,54 +0,0 @@
-boolean
-character
-constraint_error
-false
-float
-integer
-natural
-numeric_error
-positive
-program_error
-storage_error
-string
-tasking_error
-true
-address
-aft
-base
-callable
-constrained
-count
-delta
-digits
-emax
-epsilon
-first
-firstbit
-fore
-image
-large
-last
-lastbit
-length
-machine_emax
-machine_emin
-machine_mantissa
-machine_overflows
-machine_radix
-machine_rounds
-mantissa
-pos
-position
-pred
-range
-safe_emax
-safe_large
-safe_small
-size
-small
-storage_size
-succ
-terminated
-val
-value
-width
diff --git a/apps/gperf/tests/c++-res.exp b/apps/gperf/tests/c++-res.exp
deleted file mode 100644
index 124af99193f..00000000000
--- a/apps/gperf/tests/c++-res.exp
+++ /dev/null
@@ -1,73 +0,0 @@
-in word set and
-in word set and_eq
-in word set asm
-in word set auto
-in word set bitand
-in word set bitor
-in word set bool
-in word set break
-in word set case
-in word set catch
-in word set char
-in word set class
-in word set compl
-in word set const
-in word set const_cast
-in word set continue
-in word set default
-in word set delete
-in word set do
-in word set double
-in word set dynamic_cast
-in word set else
-in word set enum
-in word set explicit
-in word set extern
-in word set false
-in word set float
-in word set for
-in word set friend
-in word set goto
-in word set if
-in word set inline
-in word set int
-in word set long
-in word set mutable
-in word set namespace
-in word set new
-in word set not
-in word set not_eq
-in word set operator
-in word set or
-in word set or_eq
-in word set private
-in word set protected
-in word set public
-in word set register
-in word set reinterpret_cast
-in word set return
-in word set short
-in word set signed
-in word set sizeof
-in word set static
-in word set static_cast
-in word set struct
-in word set switch
-in word set template
-in word set this
-in word set throw
-in word set true
-in word set try
-in word set typedef
-in word set typeid
-in word set typename
-in word set union
-in word set unsigned
-in word set using
-in word set virtual
-in word set void
-in word set volatile
-in word set wchar_t
-in word set while
-in word set xor
-in word set xor_eq
diff --git a/apps/gperf/tests/c++.gperf b/apps/gperf/tests/c++.gperf
deleted file mode 100644
index e8c8dc3f251..00000000000
--- a/apps/gperf/tests/c++.gperf
+++ /dev/null
@@ -1,73 +0,0 @@
-and
-and_eq
-asm
-auto
-bitand
-bitor
-bool
-break
-case
-catch
-char
-class
-compl
-const
-const_cast
-continue
-default
-delete
-do
-double
-dynamic_cast
-else
-enum
-explicit
-extern
-false
-float
-for
-friend
-goto
-if
-inline
-int
-long
-mutable
-namespace
-new
-not
-not_eq
-operator
-or
-or_eq
-private
-protected
-public
-register
-reinterpret_cast
-return
-short
-signed
-sizeof
-static
-static_cast
-struct
-switch
-template
-this
-throw
-true
-try
-typedef
-typeid
-typename
-union
-unsigned
-using
-virtual
-void
-volatile
-wchar_t
-while
-xor
-xor_eq
diff --git a/apps/gperf/tests/c-parse.gperf b/apps/gperf/tests/c-parse.gperf
deleted file mode 100644
index 24aa09b2ecd..00000000000
--- a/apps/gperf/tests/c-parse.gperf
+++ /dev/null
@@ -1,56 +0,0 @@
-%{
-/* Command-line: gperf -p -j1 -i 1 -o -t -N is_reserved_word -k1,3,$ c-parse.gperf */
-%}
-struct resword { const char *name; short token; enum rid rid; };
-%%
-__alignof, ALIGNOF, NORID
-__alignof__, ALIGNOF, NORID
-__asm, ASM, NORID
-__asm__, ASM, NORID
-__attribute, ATTRIBUTE, NORID
-__attribute__, ATTRIBUTE, NORID
-__const, TYPE_QUAL, RID_CONST
-__const__, TYPE_QUAL, RID_CONST
-__inline, SCSPEC, RID_INLINE
-__inline__, SCSPEC, RID_INLINE
-__signed, TYPESPEC, RID_SIGNED
-__signed__, TYPESPEC, RID_SIGNED
-__typeof, TYPEOF, NORID
-__typeof__, TYPEOF, NORID
-__volatile, TYPE_QUAL, RID_VOLATILE
-__volatile__, TYPE_QUAL, RID_VOLATILE
-asm, ASM, NORID
-auto, SCSPEC, RID_AUTO
-break, BREAK, NORID
-case, CASE, NORID
-char, TYPESPEC, RID_CHAR
-const, TYPE_QUAL, RID_CONST
-continue, CONTINUE, NORID
-default, DEFAULT, NORID
-do, DO, NORID
-double, TYPESPEC, RID_DOUBLE
-else, ELSE, NORID
-enum, ENUM, NORID
-extern, SCSPEC, RID_EXTERN
-float, TYPESPEC, RID_FLOAT
-for, FOR, NORID
-goto, GOTO, NORID
-if, IF, NORID
-inline, SCSPEC, RID_INLINE
-int, TYPESPEC, RID_INT
-long, TYPESPEC, RID_LONG
-register, SCSPEC, RID_REGISTER
-return, RETURN, NORID
-short, TYPESPEC, RID_SHORT
-signed, TYPESPEC, RID_SIGNED
-sizeof, SIZEOF, NORID
-static, SCSPEC, RID_STATIC
-struct, STRUCT, NORID
-switch, SWITCH, NORID
-typedef, SCSPEC, RID_TYPEDEF
-typeof, TYPEOF, NORID
-union, UNION, NORID
-unsigned, TYPESPEC, RID_UNSIGNED
-void, TYPESPEC, RID_VOID
-volatile, TYPE_QUAL, RID_VOLATILE
-while, WHILE, NORID
diff --git a/apps/gperf/tests/c.exp b/apps/gperf/tests/c.exp
deleted file mode 100644
index 10c8b7f6116..00000000000
--- a/apps/gperf/tests/c.exp
+++ /dev/null
@@ -1,32 +0,0 @@
-in word set if
-in word set do
-in word set int
-in word set for
-in word set case
-in word set char
-in word set auto
-in word set goto
-in word set else
-in word set long
-in word set void
-in word set enum
-in word set float
-in word set short
-in word set union
-in word set break
-in word set while
-in word set const
-in word set double
-in word set static
-in word set extern
-in word set struct
-in word set return
-in word set sizeof
-in word set switch
-in word set signed
-in word set typedef
-in word set default
-in word set unsigned
-in word set continue
-in word set register
-in word set volatile
diff --git a/apps/gperf/tests/c.gperf b/apps/gperf/tests/c.gperf
deleted file mode 100644
index 8672d6c25ed..00000000000
--- a/apps/gperf/tests/c.gperf
+++ /dev/null
@@ -1,32 +0,0 @@
-if
-do
-int
-for
-case
-char
-auto
-goto
-else
-long
-void
-enum
-float
-short
-union
-break
-while
-const
-double
-static
-extern
-struct
-return
-sizeof
-switch
-signed
-typedef
-default
-unsigned
-continue
-register
-volatile
diff --git a/apps/gperf/tests/corba.exp b/apps/gperf/tests/corba.exp
deleted file mode 100644
index 4dac28e4a79..00000000000
--- a/apps/gperf/tests/corba.exp
+++ /dev/null
@@ -1,36 +0,0 @@
-in word set any
-in word set module
-in word set raises
-in word set readonly
-in word set attribute
-in word set exception
-in word set context
-in word set interface
-in word set const
-in word set typedef
-in word set struct
-in word set enum
-in word set string
-in word set wstring
-in word set sequence
-in word set union
-in word set switch
-in word set case
-in word set default
-in word set float
-in word set double
-in word set long
-in word set short
-in word set unsigned
-in word set char
-in word set wchar
-in word set boolean
-in word set octet
-in word set void
-in word set native
-in word set TRUE
-in word set FALSE
-in word set inout
-in word set in
-in word set out
-in word set oneway
diff --git a/apps/gperf/tests/corba.gperf b/apps/gperf/tests/corba.gperf
deleted file mode 100644
index d9e4377492d..00000000000
--- a/apps/gperf/tests/corba.gperf
+++ /dev/null
@@ -1,36 +0,0 @@
-any
-module
-raises
-readonly
-attribute
-exception
-context
-interface
-const
-typedef
-struct
-enum
-string
-wstring
-sequence
-union
-switch
-case
-default
-float
-double
-long
-short
-unsigned
-char
-wchar
-boolean
-octet
-void
-native
-TRUE
-FALSE
-inout
-in
-out
-oneway
diff --git a/apps/gperf/tests/gpc.gperf b/apps/gperf/tests/gpc.gperf
deleted file mode 100644
index 6752d028546..00000000000
--- a/apps/gperf/tests/gpc.gperf
+++ /dev/null
@@ -1,48 +0,0 @@
-%{
-/* ISO Pascal 7185 reserved words.
- *
- * For GNU Pascal compiler (GPC) by jtv@hut.fi
- *
- * run this through the Doug Schmidt's gperf program
- * with command
- * gperf -g -o -j1 -t -p -N is_reserved_word
- *
- */
-%}
-struct resword { const char *name; short token; short iclass;};
-%%
-And, AND, PASCAL_ISO
-Array, ARRAY, PASCAL_ISO
-Begin, BEGIN_, PASCAL_ISO
-Case, CASE, PASCAL_ISO
-Const, CONST, PASCAL_ISO
-Div, DIV, PASCAL_ISO
-Do, DO, PASCAL_ISO
-Downto, DOWNTO, PASCAL_ISO
-Else, ELSE, PASCAL_ISO
-End, END, PASCAL_ISO
-File, FILE_, PASCAL_ISO
-For, FOR, PASCAL_ISO
-Function, FUNCTION, PASCAL_ISO
-Goto, GOTO, PASCAL_ISO
-If, IF, PASCAL_ISO
-In, IN, PASCAL_ISO
-Label, LABEL, PASCAL_ISO
-Mod, MOD, PASCAL_ISO
-Nil, NIL, PASCAL_ISO
-Not, NOT, PASCAL_ISO
-Of, OF, PASCAL_ISO
-Or, OR, PASCAL_ISO
-Packed, PACKED, PASCAL_ISO
-Procedure, PROCEDURE, PASCAL_ISO
-Program,PROGRAM,PASCAL_ISO
-Record, RECORD, PASCAL_ISO
-Repeat, REPEAT, PASCAL_ISO
-Set, SET, PASCAL_ISO
-Then, THEN, PASCAL_ISO
-To, TO, PASCAL_ISO
-Type, TYPE, PASCAL_ISO
-Until, UNTIL, PASCAL_ISO
-Var, VAR, PASCAL_ISO
-While, WHILE, PASCAL_ISO
-With, WITH, PASCAL_ISO
diff --git a/apps/gperf/tests/gplus.gperf b/apps/gperf/tests/gplus.gperf
deleted file mode 100644
index 91815fcc549..00000000000
--- a/apps/gperf/tests/gplus.gperf
+++ /dev/null
@@ -1,76 +0,0 @@
-%{
-/* Command-line: gperf -p -j1 -o -t -N is_reserved_word -k1,4,$ gplus.gperf */
-%}
-struct resword { const char *name; short token; enum rid rid;};
-%%
-__alignof, ALIGNOF, NORID
-__alignof__, ALIGNOF, NORID
-__asm, ASM, NORID
-__asm__, ASM, NORID
-__attribute, ATTRIBUTE, NORID
-__attribute__, ATTRIBUTE, NORID
-__const, TYPE_QUAL, RID_CONST
-__const__, TYPE_QUAL, RID_CONST
-__inline, SCSPEC, RID_INLINE
-__inline__, SCSPEC, RID_INLINE
-__signed, TYPESPEC, RID_SIGNED
-__signed__, TYPESPEC, RID_SIGNED
-__typeof, TYPEOF, NORID
-__typeof__, TYPEOF, NORID
-__volatile, TYPE_QUAL, RID_VOLATILE
-__volatile__, TYPE_QUAL, RID_VOLATILE
-all, ALL, NORID /* Extension */,
-except, EXCEPT, NORID /* Extension */,
-exception, AGGR, RID_EXCEPTION /* Extension */,
-raise, RAISE, NORID /* Extension */,
-raises, RAISES, NORID /* Extension */,
-reraise, RERAISE, NORID /* Extension */,
-try, TRY, NORID /* Extension */,
-asm, ASM, NORID,
-auto, SCSPEC, RID_AUTO,
-break, BREAK, NORID,
-case, CASE, NORID,
-catch, CATCH, NORID,
-char, TYPESPEC, RID_CHAR,
-class, AGGR, RID_CLASS,
-const, TYPE_QUAL, RID_CONST,
-continue, CONTINUE, NORID,
-default, DEFAULT, NORID,
-delete, DELETE, NORID,
-do, DO, NORID,
-double, TYPESPEC, RID_DOUBLE,
-dynamic, DYNAMIC, NORID,
-else, ELSE, NORID,
-enum, ENUM, NORID,
-extern, SCSPEC, RID_EXTERN,
-float, TYPESPEC, RID_FLOAT,
-for, FOR, NORID,
-friend, SCSPEC, RID_FRIEND,
-goto, GOTO, NORID,
-if, IF, NORID,
-inline, SCSPEC, RID_INLINE,
-int, TYPESPEC, RID_INT,
-long, TYPESPEC, RID_LONG,
-new, NEW, NORID,
-operator, OPERATOR, NORID,
-overload, OVERLOAD, NORID,
-private, PRIVATE, NORID,
-protected, PROTECTED, NORID,
-public, PUBLIC, NORID,
-register, SCSPEC, RID_REGISTER,
-return, RETURN, NORID,
-short, TYPESPEC, RID_SHORT,
-signed, TYPESPEC, RID_SIGNED,
-sizeof, SIZEOF, NORID,
-static, SCSPEC, RID_STATIC,
-struct, AGGR, RID_RECORD,
-switch, SWITCH, NORID,
-this, THIS, NORID,
-typedef, SCSPEC, RID_TYPEDEF,
-typeof, TYPEOF, NORID,
-union, AGGR, RID_UNION,
-unsigned, TYPESPEC, RID_UNSIGNED,
-virtual, SCSPEC, RID_VIRTUAL,
-void, TYPESPEC, RID_VOID,
-volatile, TYPE_QUAL, RID_VOLATILE,
-while, WHILE, NORID,
diff --git a/apps/gperf/tests/idl.exp b/apps/gperf/tests/idl.exp
deleted file mode 100644
index ce29fd044c0..00000000000
--- a/apps/gperf/tests/idl.exp
+++ /dev/null
@@ -1,9 +0,0 @@
-in word set set
-in word set _is_a
-in word set destroy
-in word set get
-in word set _get_width
-in word set _set_width
-in word set _get_height
-in word set _set_height
-in word set _non_existent
diff --git a/apps/gperf/tests/idl.gperf b/apps/gperf/tests/idl.gperf
deleted file mode 100644
index cbce5603da8..00000000000
--- a/apps/gperf/tests/idl.gperf
+++ /dev/null
@@ -1,9 +0,0 @@
-set
-_is_a
-destroy
-get
-_get_width
-_set_width
-_get_height
-_set_height
-_non_existent
diff --git a/apps/gperf/tests/irc.gperf b/apps/gperf/tests/irc.gperf
deleted file mode 100644
index dbe40095849..00000000000
--- a/apps/gperf/tests/irc.gperf
+++ /dev/null
@@ -1,63 +0,0 @@
-%{
-extern int m_text(), m_private(), m_who(), m_whois(), m_user(), m_list();
-extern int m_topic(), m_invite(), m_channel(), m_version(), m_quit();
-extern int m_server(), m_kill(), m_info(), m_links(), m_summon(), m_stats();
-extern int m_users(), m_nick(), m_error(), m_help(), m_whoreply();
-extern int m_squit(), m_restart(), m_away(), m_die(), m_connect();
-extern int m_ping(), m_pong(), m_oper(), m_pass(), m_wall(), m_trace();
-extern int m_time(), m_rehash(), m_names(), m_namreply(), m_admin();
-extern int m_linreply(), m_notice(), m_lusers(), m_voice(), m_grph();
-extern int m_xtra(), m_motd();
-%}
-struct Message {
- const char *cmd;
- int (* func)();
- int count;
- int parameters;
-};
-%%
-NICK, m_nick, 0, 1
-MSG, m_text, 0, 1
-PRIVMSG, m_private, 0, 2
-WHO, m_who, 0, 1
-WHOIS, m_whois, 0, 4
-USER, m_user, 0, 4
-SERVER, m_server, 0, 2
-LIST, m_list, 0, 1
-TOPIC, m_topic, 0, 1
-INVITE, m_invite, 0, 2
-CHANNEL, m_channel, 0, 1
-VERSION, m_version, 0, 1
-QUIT, m_quit, 0, 2
-SQUIT, m_squit, 0, 2
-KILL, m_kill, 0, 2
-INFO, m_info, 0, 1
-LINKS, m_links, 0, 1
-SUMMON, m_summon, 0, 1
-STATS, m_stats, 0, 1
-USERS, m_users, 0, 1
-RESTART, m_restart, 0, 1
-WHOREPLY,m_whoreply, 0, 7
-HELP, m_help, 0, 2
-ERROR, m_error, 0, 1
-AWAY, m_away, 0, 1
-DIE, m_die, 0, 1
-CONNECT, m_connect, 0, 3
-PING, m_ping, 0, 2
-PONG, m_pong, 0, 3
-OPER, m_oper, 0, 3
-PASS, m_pass, 0, 2
-WALL, m_wall, 0, 1
-TIME, m_time, 0, 1
-REHASH, m_rehash, 0, 1
-NAMES, m_names, 0, 1
-NAMREPLY,m_namreply, 0, 3
-ADMIN, m_admin, 0, 1
-TRACE, m_trace, 0, 1
-LINREPLY,m_linreply, 0, 2
-NOTICE, m_notice, 0, 2
-LUSERS, m_lusers, 0, 1
-VOICE, m_voice, 0, 2
-GRPH, m_grph, 0, 2
-XTRA, m_xtra, 0, 2
-MOTD, m_motd, 0, 2
diff --git a/apps/gperf/tests/makeinfo.gperf b/apps/gperf/tests/makeinfo.gperf
deleted file mode 100644
index 1488b8e38fb..00000000000
--- a/apps/gperf/tests/makeinfo.gperf
+++ /dev/null
@@ -1,116 +0,0 @@
-COMMAND;
-%%
-!, cm_force_sentence_end, false
-', insert_self, false
-*, cm_asterisk, false
-., cm_force_sentence_end, false
-:, cm_force_abbreviated_whitespace, false
-?, cm_force_sentence_end, false
-@, insert_self, false
-TeX, cm_TeX, true
-`, insert_self, false
-appendix, cm_appendix, false
-appendixsec, cm_appendixsec, false
-appendixsubsec, cm_appendixsubsec, false
-asis, cm_asis, true
-b, cm_bold, true
-br, cm_br, false
-bullet, cm_bullet, true
-bye, cm_bye, false
-c, cm_comment, false
-center, cm_center, false
-chapter, cm_chapter, false
-cindex, cm_cindex, false
-cite, cm_cite, true
-code, cm_code, true
-comment, cm_comment, false
-contents, do_nothing, false
-copyright, cm_copyright, true
-ctrl, cm_ctrl, true
-defcodeindex, cm_defindex, false
-defindex, cm_defindex, false
-dfn, cm_dfn, true
-display, cm_display, false
-dots, cm_dots, true
-emph, cm_emph, true
-end, cm_end, false
-enumerate, cm_enumerate, false
-equiv, cm_equiv, true
-error, cm_error, true
-example, cm_example, false
-exdent, cm_exdent, false
-expansion, cm_expansion, true
-file, cm_file, true
-findex, cm_findex, false
-format, cm_format, false
-group, cm_group, false
-i, cm_italic, true
-iappendix, cm_appendix, false
-iappendixsec, cm_appendixsec, false
-iappendixsubsec, cm_appendixsubsec, false
-ichapter, cm_chapter, false
-ifinfo, cm_ifinfo, false
-iftex, cm_iftex, false
-ignore, cm_ignore, false
-include, cm_include, false
-inforef, cm_inforef, true
-input, cm_include, false
-isection, cm_section, false
-isubsection, cm_subsection, false
-isubsubsection, cm_subsubsection, false
-item, cm_item, false
-itemize, cm_itemize, false
-itemx, cm_itemx, false
-iunnumbered, cm_unnumbered, false
-iunnumberedsec, cm_unnumberedsec, false
-iunnumberedsubsec, cm_unnumberedsubsec, false
-kbd, cm_kbd, true
-key, cm_key, true
-kindex, cm_kindex, false
-lisp, cm_lisp, false
-menu, cm_menu
-minus, cm_minus, true
-need, cm_need, false
-node, cm_node, false
-noindent, cm_noindent, false
-page, do_nothing, false
-pindex, cm_pindex, false
-point, cm_point, true
-print, cm_print, true
-printindex, cm_printindex, false
-pxref, cm_pxref, true
-quotation, cm_quotation, false
-r, cm_roman, true
-ref, cm_xref, true
-refill, cm_refill, false
-result, cm_result, true
-samp, cm_samp, true
-sc, cm_sc, true
-section, cm_section, false
-setchapternewpage, cm_setchapternewpage, false
-setfilename, cm_setfilename, false
-settitle, cm_settitle, false
-smallexample, cm_smallexample, false
-sp, cm_sp, false
-strong, cm_strong, true
-subsection, cm_subsection, false
-subsubsection, cm_subsubsection, false
-summarycontents, do_nothing, false
-syncodeindex, cm_synindex, false
-synindex, cm_synindex, false
-t, cm_title, true
-table, cm_table, false
-tex, cm_tex, false
-tindex, cm_tindex, false
-titlepage, cm_titlepage, false
-unnumbered, cm_unnumbered, false
-unnumberedsec, cm_unnumberedsec, false
-unnumberedsubsec, cm_unnumberedsubsec, false
-var, cm_var, true
-vindex, cm_vindex, false
-w, cm_w, true
-xref, cm_xref, true
-{, insert_self, false
-}, insert_self, false
-infoinclude, cm_infoinclude, false
-footnote, cm_footnote, false
diff --git a/apps/gperf/tests/modula.exp b/apps/gperf/tests/modula.exp
deleted file mode 100644
index cef7d5acad8..00000000000
--- a/apps/gperf/tests/modula.exp
+++ /dev/null
@@ -1,106 +0,0 @@
-in word set AND
-in word set ARRAY
-in word set BEGIN
-in word set BITS
-in word set BY
-in word set CASE
-in word set CONST
-in word set DIV
-in word set DO
-in word set ELSE
-in word set ELSIF
-in word set END
-in word set EVAL
-in word set EXCEPT
-in word set EXCEPTION
-in word set EXIT
-in word set EXPORTS
-in word set FINALLY
-in word set FOR
-in word set FROM
-in word set IF
-in word set IMPORT
-in word set INTERFACE
-in word set IN
-in word set INLINE
-in word set LOCK
-in word set METHODS
-in word set MOD
-in word set MODULE
-in word set NOT
-in word set OBJECT
-in word set OF
-in word set OR
-in word set PROCEDURE
-in word set RAISES
-in word set READONLY
-in word set RECORD
-in word set REF
-in word set REPEAT
-in word set RETURN
-in word set SET
-in word set THEN
-in word set TO
-in word set TRY
-in word set TYPE
-in word set TYPECASE
-in word set UNSAFE
-in word set UNTIL
-in word set UNTRACED
-in word set VALUE
-in word set VAR
-in word set WHILE
-in word set WITH
-in word set and
-in word set array
-in word set begin
-in word set bits
-in word set by
-in word set case
-in word set const
-in word set div
-in word set do
-in word set else
-in word set elsif
-in word set end
-in word set eval
-in word set except
-in word set exception
-in word set exit
-in word set exports
-in word set finally
-in word set for
-in word set from
-in word set if
-in word set import
-in word set interface
-in word set in
-in word set inline
-in word set lock
-in word set methods
-in word set mod
-in word set module
-in word set not
-in word set object
-in word set of
-in word set or
-in word set procedure
-in word set raises
-in word set readonly
-in word set record
-in word set ref
-in word set repeat
-in word set return
-in word set set
-in word set then
-in word set to
-in word set try
-in word set type
-in word set typecase
-in word set unsafe
-in word set until
-in word set untraced
-in word set value
-in word set var
-in word set while
-in word set with
diff --git a/apps/gperf/tests/modula2.gperf b/apps/gperf/tests/modula2.gperf
deleted file mode 100644
index 5ef9c753835..00000000000
--- a/apps/gperf/tests/modula2.gperf
+++ /dev/null
@@ -1,40 +0,0 @@
-AND
-ARRAY
-BEGIN
-BY
-CASE
-CONST
-DEFINITION
-DIV
-DO
-ELSE
-ELSIF
-END
-EXIT
-EXPORT
-FOR
-FROM
-IF
-IMPLEMENTATION
-IMPORT
-IN
-LOOP
-MOD
-MODULE
-NOT
-OF
-OR
-POINTER
-PROCEDURE
-QUALIFIED
-RECORD
-REPEAT
-RETURN
-SET
-THEN
-TO
-TYPE
-UNTIL
-VAR
-WHILE
-WITH
diff --git a/apps/gperf/tests/modula3.gperf b/apps/gperf/tests/modula3.gperf
deleted file mode 100644
index d0243460d9b..00000000000
--- a/apps/gperf/tests/modula3.gperf
+++ /dev/null
@@ -1,106 +0,0 @@
-AND
-ARRAY
-BEGIN
-BITS
-BY
-CASE
-CONST
-DIV
-DO
-ELSE
-ELSIF
-END
-EVAL
-EXCEPT
-EXCEPTION
-EXIT
-EXPORTS
-FINALLY
-FOR
-FROM
-IF
-IMPORT
-INTERFACE
-IN
-INLINE
-LOCK
-METHODS
-MOD
-MODULE
-NOT
-OBJECT
-OF
-OR
-PROCEDURE
-RAISES
-READONLY
-RECORD
-REF
-REPEAT
-RETURN
-SET
-THEN
-TO
-TRY
-TYPE
-TYPECASE
-UNSAFE
-UNTIL
-UNTRACED
-VALUE
-VAR
-WHILE
-WITH
-and
-array
-begin
-bits
-by
-case
-const
-div
-do
-else
-elsif
-end
-eval
-except
-exception
-exit
-exports
-finally
-for
-from
-if
-import
-interface
-in
-inline
-lock
-methods
-mod
-module
-not
-object
-of
-or
-procedure
-raises
-readonly
-record
-ref
-repeat
-return
-set
-then
-to
-try
-type
-typecase
-unsafe
-until
-untraced
-value
-var
-while
-with
diff --git a/apps/gperf/tests/pascal.exp b/apps/gperf/tests/pascal.exp
deleted file mode 100644
index 765e44c6a0f..00000000000
--- a/apps/gperf/tests/pascal.exp
+++ /dev/null
@@ -1,36 +0,0 @@
-in word set with
-in word set array
-in word set and
-in word set function
-in word set case
-in word set var
-in word set const
-in word set until
-in word set then
-in word set set
-in word set record
-in word set program
-in word set procedure
-in word set or
-in word set packed
-in word set not
-in word set nil
-in word set label
-in word set in
-in word set repeat
-in word set of
-in word set goto
-in word set forward
-in word set for
-in word set while
-in word set file
-in word set else
-in word set downto
-in word set do
-in word set div
-in word set to
-in word set type
-in word set end
-in word set mod
-in word set begin
-in word set if
diff --git a/apps/gperf/tests/pascal.gperf b/apps/gperf/tests/pascal.gperf
deleted file mode 100644
index fed3fbb30ea..00000000000
--- a/apps/gperf/tests/pascal.gperf
+++ /dev/null
@@ -1,36 +0,0 @@
-with
-array
-and
-function
-case
-var
-const
-until
-then
-set
-record
-program
-procedure
-or
-packed
-not
-nil
-label
-in
-repeat
-of
-goto
-forward
-for
-while
-file
-else
-downto
-do
-div
-to
-type
-end
-mod
-begin
-if
diff --git a/apps/gperf/tests/test-1.exp b/apps/gperf/tests/test-1.exp
deleted file mode 100644
index 46fcc4e57d0..00000000000
--- a/apps/gperf/tests/test-1.exp
+++ /dev/null
@@ -1,164 +0,0 @@
-/* C code produced by gperf version 2.8 (ACE version) */
-/* Command-line: ../src/gperf -p -j1 -o -t -N is_reserved_word -k1,3,$ */
-/* Command-line: gperf -p -j1 -i 1 -o -t -N is_reserved_word -k1,3,$ c-parse.gperf */
-#include <string.h>
-struct resword { const char *name; short token; enum rid rid; };
-
-#define TOTAL_KEYWORDS 51
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 13
-#define MIN_HASH_VALUE 8
-#define MAX_HASH_VALUE 82
-#define HASH_VALUE_RANGE 75
-#define DUPLICATES 0
-
-static unsigned int
-hash (str, len)
- char *str;
- unsigned int len;
-{
- static unsigned char asso_values[] =
- {
-#if defined (ACE_MVS)
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 0,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 1,
- 2, 34, 19, 6, 11, 29, 0, 17, 83, 83,
- 83, 83, 83, 83, 83, 83, 0, 23, 28, 26,
- 30, 31, 83, 15, 83, 83, 83, 83, 83, 83,
- 83, 83, 1, 0, 28, 13, 4, 83, 83, 5,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83,
-#else
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 0, 83, 1, 2, 34,
- 19, 6, 11, 29, 0, 17, 83, 0, 23, 28,
- 26, 30, 31, 83, 15, 1, 0, 28, 13, 4,
- 83, 83, 5, 83, 83, 83, 83, 83,
-#endif /* ACE_MVS */
- };
- unsigned int hval = len;
-
- switch (hval)
- {
- default:
- case 3:
- hval += asso_values[str[2]];
- case 2:
- case 1:
- hval += asso_values[str[0]];
- }
- return hval + asso_values[str[len - 1]];
-}
-
-struct resword *
-is_reserved_word (str, len)
- char *str;
- unsigned int len;
-{
- static struct resword wordlist[] =
- {
- {"",},{"",},{"",},{"",},{"",},{"",},{"",},{"",},
- {"__asm__", ASM, NORID},
- {"",},
- {"__typeof__", TYPEOF, NORID},
- {"__signed__", TYPESPEC, RID_SIGNED},
- {"__alignof__", ALIGNOF, NORID},
- {"break", BREAK, NORID},
- {"__attribute__", ATTRIBUTE, NORID},
- {"",},{"",},
- {"else", ELSE, NORID},
- {"__attribute", ATTRIBUTE, NORID},
- {"__typeof", TYPEOF, NORID},
- {"int", TYPESPEC, RID_INT},
- {"__alignof", ALIGNOF, NORID},
- {"struct", STRUCT, NORID},
- {"sizeof", SIZEOF, NORID},
- {"switch", SWITCH, NORID},
- {"__volatile__", TYPE_QUAL, RID_VOLATILE},
- {"",},
- {"__inline__", SCSPEC, RID_INLINE},
- {"__signed", TYPESPEC, RID_SIGNED},
- {"__volatile", TYPE_QUAL, RID_VOLATILE},
- {"if", IF, NORID},
- {"__inline", SCSPEC, RID_INLINE},
- {"while", WHILE, NORID},
- {"",},
- {"__asm", ASM, NORID},
- {"auto", SCSPEC, RID_AUTO},
- {"short", TYPESPEC, RID_SHORT},
- {"default", DEFAULT, NORID},
- {"extern", SCSPEC, RID_EXTERN},
- {"",},{"",},
- {"__const", TYPE_QUAL, RID_CONST},
- {"static", SCSPEC, RID_STATIC},
- {"__const__", TYPE_QUAL, RID_CONST},
- {"for", FOR, NORID},
- {"case", CASE, NORID},
- {"float", TYPESPEC, RID_FLOAT},
- {"return", RETURN, NORID},
- {"typeof", TYPEOF, NORID},
- {"typedef", SCSPEC, RID_TYPEDEF},
- {"volatile", TYPE_QUAL, RID_VOLATILE},
- {"do", DO, NORID},
- {"inline", SCSPEC, RID_INLINE},
- {"void", TYPESPEC, RID_VOID},
- {"char", TYPESPEC, RID_CHAR},
- {"signed", TYPESPEC, RID_SIGNED},
- {"unsigned", TYPESPEC, RID_UNSIGNED},
- {"",},{"",},
- {"double", TYPESPEC, RID_DOUBLE},
- {"asm", ASM, NORID},
- {"",},{"",},
- {"goto", GOTO, NORID},
- {"",},
- {"const", TYPE_QUAL, RID_CONST},
- {"enum", ENUM, NORID},
- {"register", SCSPEC, RID_REGISTER},
- {"",},{"",},{"",},{"",},{"",},{"",},
- {"continue", CONTINUE, NORID},
- {"",},
- {"union", UNION, NORID},
- {"",},{"",},{"",},{"",},{"",},
- {"long", TYPESPEC, RID_LONG},
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- unsigned int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
- {
- char *s = wordlist[key].name;
-
- if (*str == *s && !strcmp (str + 1, s + 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/apps/gperf/tests/test-2.exp b/apps/gperf/tests/test-2.exp
deleted file mode 100644
index d4e765f1c6d..00000000000
--- a/apps/gperf/tests/test-2.exp
+++ /dev/null
@@ -1,213 +0,0 @@
-/* C code produced by gperf version 2.8 (ACE version) */
-/* Command-line: ../src/gperf -n -k1-8 -l */
-#include <string.h>
-
-#define TOTAL_KEYWORDS 40
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 14
-#define MIN_HASH_VALUE 1
-#define MAX_HASH_VALUE 256
-#define HASH_VALUE_RANGE 256
-#define DUPLICATES 0
-
-static unsigned int
-hash (str, len)
- char *str;
- unsigned int len;
-{
- static unsigned short asso_values[] =
- {
-#if defined (ACE_MVS)
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 25, 30, 35, 21, 0, 30, 15,
- 30, 45, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 0, 5, 45, 0, 10, 0, 1, 257, 257,
- 257, 257, 257, 257, 257, 257, 20, 25, 15, 30,
- 40, 15, 5, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257,
-#else
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 25, 30, 35, 21, 0,
- 30, 15, 30, 45, 257, 257, 0, 5, 45, 0,
- 10, 0, 1, 20, 25, 15, 30, 40, 15, 5,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257,
-#endif /* ACE_MVS */
- };
- unsigned int hval = 0;
-
- switch (len)
- {
- default:
- case 8:
- hval += asso_values[str[7]];
- case 7:
- hval += asso_values[str[6]];
- case 6:
- hval += asso_values[str[5]];
- case 5:
- hval += asso_values[str[4]];
- case 4:
- hval += asso_values[str[3]];
- case 3:
- hval += asso_values[str[2]];
- case 2:
- hval += asso_values[str[1]];
- case 1:
- hval += asso_values[str[0]];
- }
- return hval;
-}
-
-const char *
-in_word_set (str, len)
- char *str;
- unsigned int len;
-{
-
- static unsigned char lengthtable[] =
- {
- 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 2, 3, 0,
- 0, 0, 2, 3, 0, 0, 0, 2, 4, 0, 0, 0, 4, 6,
- 0, 0, 0, 3, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
- 3, 5, 6, 0, 0, 6, 0, 0, 0, 0, 3, 0, 0, 0,
- 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 9,
- 0, 4, 6, 6, 0, 0, 2, 3, 0, 0, 0, 5, 3, 0,
- 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0,
- 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
- 7, 0, 0, 0, 5, 0, 0, 0, 0, 5, 0, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 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, 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, 10,
- };
- static const char *wordlist[] =
- {
- "",
- "OR",
- "","","","","","","","",
- "LOOP",
- "","","","","","","","","",
- "ELSE",
- "DO",
- "","","",
- "TO",
- "MOD",
- "","","",
- "OF",
- "FOR",
- "","","",
- "BY",
- "FROM",
- "","","",
- "TYPE",
- "MODULE",
- "","","",
- "SET",
- "","","","","",
- "EXPORT",
- "","","","",
- "VAR",
- "ARRAY",
- "RECORD",
- "","",
- "REPEAT",
- "","","","",
- "END",
- "","","",
- "NOT",
- "","","","",
- "IF",
- "","","","",
- "CASE",
- "","",
- "PROCEDURE",
- "",
- "EXIT",
- "IMPORT",
- "RETURN",
- "","",
- "IN",
- "AND",
- "","","",
- "ELSIF",
- "DIV",
- "","","",
- "THEN",
- "","","","","","","","","",
- "IMPLEMENTATION",
- "","","","",
- "WHILE",
- "","","","","","","","","",
- "CONST",
- "POINTER",
- "","","",
- "UNTIL",
- "","","","",
- "BEGIN",
- "","","","",
- "WITH",
- "","","","","","","","","",
- "","","","","","","","","",
- "","QUALIFIED",
- "","","","","","","","","",
- "","","","","","","","","",
- "","","","","","","","","",
- "","","","","","","","","",
- "","","","","","","","","",
- "","","","","","","","","",
- "","","","","","","","","",
- "","","","","","","","","",
- "","","","","","","","","",
- "","","","","","","","","",
- "","","","","",
- "DEFINITION",
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- unsigned int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
- {
- const char *s = wordlist[key];
-
- if (len == lengthtable[key]
- && *str == *s && !strcmp (str + 1, s + 1))
- return s;
- }
- }
- return 0;
-}
diff --git a/apps/gperf/tests/test-3.exp b/apps/gperf/tests/test-3.exp
deleted file mode 100644
index 9ad750df816..00000000000
--- a/apps/gperf/tests/test-3.exp
+++ /dev/null
@@ -1,195 +0,0 @@
-/* C code produced by gperf version 2.8 (ACE version) */
-/* Command-line: ../src/gperf -p -j 1 -o -a -C -g -t -k1,4,$ */
-/* Command-line: gperf -p -j1 -o -t -N is_reserved_word -k1,4,$ gplus.gperf */
-#include <string.h>
-struct resword { const char *name; short token; enum rid rid;};
-
-#define TOTAL_KEYWORDS 71
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 13
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 147
-#define HASH_VALUE_RANGE 144
-#define DUPLICATES 0
-
-inline
-static unsigned int
-hash (const char *str, unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
-#if defined (ACE_MVS)
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 0,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 19,
- 6, 27, 37, 0, 12, 1, 15, 63, 148, 148,
- 148, 148, 148, 148, 148, 148, 4, 0, 56, 20,
- 15, 42, 148, 31, 148, 148, 148, 148, 148, 148,
- 148, 148, 5, 26, 39, 32, 10, 148, 40, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148,
-#else
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 0, 148, 19, 6, 27,
- 37, 0, 12, 1, 15, 63, 148, 4, 0, 56,
- 20, 15, 42, 148, 31, 5, 26, 39, 32, 10,
- 148, 40, 148, 148, 148, 148, 148, 148,
-#endif /* ACE_MVS */
- };
- unsigned int hval = len;
-
- switch (hval)
- {
- default:
- case 4:
- hval += asso_values[str[3]];
- case 3:
- case 2:
- case 1:
- hval += asso_values[str[0]];
- }
- return hval + asso_values[str[len - 1]];
-}
-
-inline
-const struct resword *
-in_word_set (const char *str, unsigned int len)
-{
- static const struct resword wordlist[] =
- {
- {"",},{"",},{"",},{"",},
- {"else", ELSE, NORID,},
- {"",},
- {"long", TYPESPEC, RID_LONG,},
- {"",},{"",},{"",},{"",},
- {"__alignof__", ALIGNOF, NORID},
- {"__asm__", ASM, NORID},
- {"",},{"",},
- {"while", WHILE, NORID,},
- {"",},{"",},{"",},{"",},{"",},
- {"__alignof", ALIGNOF, NORID},
- {"all", ALL, NORID /* Extension */,},
- {"sizeof", SIZEOF, NORID,},
- {"__const__", TYPE_QUAL, RID_CONST},
- {"__volatile", TYPE_QUAL, RID_VOLATILE},
- {"extern", SCSPEC, RID_EXTERN,},
- {"__volatile__", TYPE_QUAL, RID_VOLATILE},
- {"__inline", SCSPEC, RID_INLINE},
- {"exception", AGGR, RID_EXCEPTION /* Extension */,},
- {"__inline__", SCSPEC, RID_INLINE},
- {"case", CASE, NORID,},
- {"except", EXCEPT, NORID /* Extension */,},
- {"new", NEW, NORID,},
- {"break", BREAK, NORID,},
- {"goto", GOTO, NORID,},
- {"",},
- {"__attribute", ATTRIBUTE, NORID},
- {"",},
- {"__attribute__", ATTRIBUTE, NORID},
- {"this", THIS, NORID,},
- {"raise", RAISE, NORID /* Extension */,},
- {"class", AGGR, RID_CLASS,},
- {"delete", DELETE, NORID,},
- {"typeof", TYPEOF, NORID,},
- {"typedef", SCSPEC, RID_TYPEDEF,},
- {"for", FOR, NORID,},
- {"raises", RAISES, NORID /* Extension */,},
- {"__const", TYPE_QUAL, RID_CONST},
- {"double", TYPESPEC, RID_DOUBLE,},
- {"__typeof__", TYPEOF, NORID},
- {"",},
- {"switch", SWITCH, NORID,},
- {"auto", SCSPEC, RID_AUTO,},
- {"do", DO, NORID,},
- {"friend", SCSPEC, RID_FRIEND,},
- {"",},
- {"reraise", RERAISE, NORID /* Extension */,},
- {"",},
- {"volatile", TYPE_QUAL, RID_VOLATILE,},
- {"__typeof", TYPEOF, NORID},
- {"continue", CONTINUE, NORID,},
- {"float", TYPESPEC, RID_FLOAT,},
- {"const", TYPE_QUAL, RID_CONST,},
- {"static", SCSPEC, RID_STATIC,},
- {"virtual", SCSPEC, RID_VIRTUAL,},
- {"__asm", ASM, NORID},
- {"short", TYPESPEC, RID_SHORT,},
- {"signed", TYPESPEC, RID_SIGNED,},
- {"try", TRY, NORID /* Extension */,},
- {"",},{"",},{"",},
- {"__signed__", TYPESPEC, RID_SIGNED},
- {"catch", CATCH, NORID,},
- {"public", PUBLIC, NORID,},
- {"struct", AGGR, RID_RECORD,},
- {"if", IF, NORID,},
- {"asm", ASM, NORID,},
- {"union", AGGR, RID_UNION,},
- {"",},
- {"private", PRIVATE, NORID,},
- {"",},{"",},{"",},
- {"operator", OPERATOR, NORID,},
- {"",},{"",},{"",},
- {"default", DEFAULT, NORID,},
- {"dynamic", DYNAMIC, NORID,},
- {"overload", OVERLOAD, NORID,},
- {"int", TYPESPEC, RID_INT,},
- {"char", TYPESPEC, RID_CHAR,},
- {"",},{"",},
- {"return", RETURN, NORID,},
- {"",},{"",},{"",},{"",},{"",},{"",},{"",},{"",},{"",},
- {"",},{"",},
- {"__signed", TYPESPEC, RID_SIGNED},
- {"",},
- {"void", TYPESPEC, RID_VOID,},
- {"",},{"",},{"",},
- {"protected", PROTECTED, NORID,},
- {"",},
- {"enum", ENUM, NORID,},
- {"",},{"",},{"",},{"",},{"",},{"",},{"",},{"",},{"",},
- {"",},{"",},{"",},{"",},{"",},{"",},
- {"inline", SCSPEC, RID_INLINE,},
- {"register", SCSPEC, RID_REGISTER,},
- {"",},{"",},{"",},{"",},{"",},{"",},{"",},{"",},{"",},
- {"",},{"",},{"",},{"",},
- {"unsigned", TYPESPEC, RID_UNSIGNED,},
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- unsigned int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
- {
- const char *s = wordlist[key].name;
-
- if (*str == *s && !strcmp (str + 1, s + 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/apps/gperf/tests/test-4.exp b/apps/gperf/tests/test-4.exp
deleted file mode 100644
index ff604581721..00000000000
--- a/apps/gperf/tests/test-4.exp
+++ /dev/null
@@ -1,169 +0,0 @@
-/* C code produced by gperf version 2.8 (ACE version) */
-/* Command-line: ../src/gperf -D -p -t */
-/* Command-line: gperf -p -j1 -i 1 -o -t -N is_reserved_word -k1,3,$ c-parse.gperf */
-#include <string.h>
-struct resword { const char *name; short token; enum rid rid; };
-
-#define TOTAL_KEYWORDS 51
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 13
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 82
-#define HASH_VALUE_RANGE 79
-#define DUPLICATES 3
-
-static unsigned int
-hash (str, len)
- char *str;
- unsigned int len;
-{
- static unsigned char asso_values[] =
- {
-#if defined (ACE_MVS)
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 0,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 40,
- 20, 50, 25, 10, 30, 0, 0, 50, 83, 83,
- 83, 83, 83, 83, 83, 83, 0, 15, 0, 35,
- 0, 83, 83, 20, 83, 83, 83, 83, 83, 83,
- 83, 83, 0, 10, 40, 5, 15, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83,
-#else
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 0, 83, 40, 20, 50,
- 25, 10, 30, 0, 0, 50, 83, 0, 15, 0,
- 35, 0, 83, 83, 20, 0, 10, 40, 5, 15,
- 83, 83, 83, 83, 83, 83, 83, 83,
-#endif /* ACE_MVS */
- };
- return len + asso_values[str[len - 1]] + asso_values[str[0]];
-}
-
-struct resword *
-in_word_set (str, len)
- char *str;
- unsigned int len;
-{
- static struct resword wordlist[] =
- {
- {"",},{"",},{"",},{"",},
- {"goto", GOTO, NORID},
- {"__asm", ASM, NORID},
- {"switch", SWITCH, NORID},
- {"__asm__", ASM, NORID},
- {"__const__", TYPE_QUAL, RID_CONST},
- {"__inline__", SCSPEC, RID_INLINE},
- {"__typeof__", TYPEOF, NORID},
- {"__signed__", TYPESPEC, RID_SIGNED},
- {"__alignof__", ALIGNOF, NORID},
- {"__volatile__", TYPE_QUAL, RID_VOLATILE},
- {"__attribute__", ATTRIBUTE, NORID},
- {"enum", ENUM, NORID},
- {"short", TYPESPEC, RID_SHORT},
- {"struct", STRUCT, NORID},
- {"__const", TYPE_QUAL, RID_CONST},
- {"__inline", SCSPEC, RID_INLINE},
- {"long", TYPESPEC, RID_LONG},
- {"__volatile", TYPE_QUAL, RID_VOLATILE},
- {"__attribute", ATTRIBUTE, NORID},
- {"volatile", TYPE_QUAL, RID_VOLATILE},
- {"else", ELSE, NORID},
- {"break", BREAK, NORID},
- {"do", DO, NORID},
- {"while", WHILE, NORID},
- {"signed", TYPESPEC, RID_SIGNED},
- {"__signed", TYPESPEC, RID_SIGNED},
- {"void", TYPESPEC, RID_VOID},
- {"sizeof", SIZEOF, NORID},
- {"__typeof", TYPEOF, NORID},
- {"__alignof", ALIGNOF, NORID},
- {"double", TYPESPEC, RID_DOUBLE},
- {"default", DEFAULT, NORID},
- {"asm", ASM, NORID},
- {"auto", SCSPEC, RID_AUTO},
- {"float", TYPESPEC, RID_FLOAT},
- {"typeof", TYPEOF, NORID},
- {"typedef", SCSPEC, RID_TYPEDEF},
- {"register", SCSPEC, RID_REGISTER},
- {"extern", SCSPEC, RID_EXTERN},
- {"for", FOR, NORID},
- {"static", SCSPEC, RID_STATIC},
- {"return", RETURN, NORID},
- {"int", TYPESPEC, RID_INT},
- {"case", CASE, NORID},
- {"const", TYPE_QUAL, RID_CONST},
- {"inline", SCSPEC, RID_INLINE},
- {"continue", CONTINUE, NORID},
- {"unsigned", TYPESPEC, RID_UNSIGNED},
- {"char", TYPESPEC, RID_CHAR},
- {"union", UNION, NORID},
- {"if", IF, NORID},
- };
-
- static signed char lookup[] =
- {
- -1, -1, -9, -3, 4, 5, 6, 7, -1, 8, -90, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, -1, 23, 24, 25, -1, 26,
- -1, -1, 27, 28, -1, 29, 30, -1, 31, -1, 32, 33, -1, 34,
- 35, 36, 37, 38, 39, 40, 41, -1, -1, 42, -1, 43, -1, -1,
- 44, -1, -1, -1, -1, 45, -1, 46, 47, 48, 49, -1, 50, -1,
- -1, -1, -1, 51, 52, -1, -1, -1, -1, -1, 53, -1, 54,
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- unsigned int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
- {
- int slot = lookup[key];
-
- if (slot >= 0 && slot < MAX_HASH_VALUE)
- {
- char *s = wordlist[slot].name;
-
- if (*str == *s && !strcmp (str + 1, s + 1))
- return &wordlist[slot];
- }
- else if (slot < 0 && slot >= -MAX_HASH_VALUE)
- return 0;
- else
- {
- unsigned int offset = key + slot + (slot > 0 ? -MAX_HASH_VALUE : MAX_HASH_VALUE);
- struct resword *base = &wordlist[-lookup[offset]];
- struct resword *ptr = base + -lookup[offset + 1];
-
- while (--ptr >= base)
- if (*str == *ptr->name && !strcmp (str + 1, ptr->name + 1))
- return ptr;
- }
- }
- }
- return 0;
-}
diff --git a/apps/gperf/tests/test-5.exp b/apps/gperf/tests/test-5.exp
deleted file mode 100644
index 5e7156350bb..00000000000
--- a/apps/gperf/tests/test-5.exp
+++ /dev/null
@@ -1,138 +0,0 @@
-/* C code produced by gperf version 2.8 (ACE version) */
-/* Command-line: ../src/gperf -g -o -j1 -t -p -N is_reserved_word */
-/* ISO Pascal 7185 reserved words.
- *
- * For GNU Pascal compiler (GPC) by jtv@hut.fi
- *
- * run this through the Doug Schmidt's gperf program
- * with command
- * gperf -g -o -j1 -t -p -N is_reserved_word
- *
- */
-#include <string.h>
-struct resword { const char *name; short token; short iclass;};
-
-#define TOTAL_KEYWORDS 35
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 9
-#define MIN_HASH_VALUE 2
-#define MAX_HASH_VALUE 43
-#define HASH_VALUE_RANGE 42
-#define DUPLICATES 0
-
-inline
-static unsigned int
-hash (str, len)
- char *str;
- unsigned int len;
-{
- static unsigned char asso_values[] =
- {
-#if defined (ACE_MVS)
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 0, 0, 13, 44, 30, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 0, 25, 1,
- 0, 44, 44, 0, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 1, 44, 25, 44, 44, 0, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 18, 29, 14, 6, 7, 10, 20,
- 44, 28, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 28, 19, 22, 15, 0, 44, 9, 44, 44,
- 44, 44, 44, 44, 44, 44, 23, 0, 23, 26,
- 2, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44,
-#else
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 18, 29, 14, 6, 7,
- 10, 20, 44, 28, 44, 44, 28, 19, 22, 15,
- 0, 44, 9, 23, 0, 23, 26, 2, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 0, 0, 13, 44, 30, 44, 44, 44, 0, 25,
- 1, 0, 44, 44, 0, 44, 1, 44, 25, 44,
- 44, 0, 44, 44, 44, 44, 44, 44,
-#endif /* ACE_MVS */
- };
- return len + asso_values[str[len - 1]] + asso_values[str[0]];
-}
-
-inline
-struct resword *
-is_reserved_word (str, len)
- char *str;
- unsigned int len;
-{
- static struct resword wordlist[] =
- {
- {"",},{"",},
- {"To", TO, PASCAL_ISO},
- {"",},
- {"Type", TYPE, PASCAL_ISO},
- {"Then", THEN, PASCAL_ISO},
- {"Packed", PACKED, PASCAL_ISO},
- {"While", WHILE, PASCAL_ISO},
- {"Do", DO, PASCAL_ISO},
- {"Procedure", PROCEDURE, PASCAL_ISO},
- {"End", END, PASCAL_ISO},
- {"Else", ELSE, PASCAL_ISO},
- {"Downto", DOWNTO, PASCAL_ISO},
- {"For", FOR, PASCAL_ISO},
- {"File", FILE_, PASCAL_ISO},
- {"Record", RECORD, PASCAL_ISO},
- {"Repeat", REPEAT, PASCAL_ISO},
- {"Or", OR, PASCAL_ISO},
- {"Case", CASE, PASCAL_ISO},
- {"Function", FUNCTION, PASCAL_ISO},
- {"Const", CONST, PASCAL_ISO},
- {"And", AND, PASCAL_ISO},
- {"Mod", MOD, PASCAL_ISO},
- {"Array", ARRAY, PASCAL_ISO},
- {"Goto", GOTO, PASCAL_ISO},
- {"Nil", NIL, PASCAL_ISO},
- {"Not", NOT, PASCAL_ISO},
- {"Set", SET, PASCAL_ISO},
- {"Until", UNTIL, PASCAL_ISO},
- {"Var", VAR, PASCAL_ISO},
- {"Of", OF, PASCAL_ISO},
- {"In", IN, PASCAL_ISO},
- {"Program", PROGRAM,PASCAL_ISO},
- {"Label", LABEL, PASCAL_ISO},
- {"Div", DIV, PASCAL_ISO},
- {"Begin", BEGIN_, PASCAL_ISO},
- {"With", WITH, PASCAL_ISO},
- {"",},{"",},{"",},{"",},{"",},{"",},
- {"If", IF, PASCAL_ISO},
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- unsigned int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
- {
- char *s = wordlist[key].name;
-
- if (*str == *s && !strcmp (str + 1, s + 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/apps/gperf/tests/test-6.exp b/apps/gperf/tests/test-6.exp
deleted file mode 100644
index 2205ab7f481..00000000000
--- a/apps/gperf/tests/test-6.exp
+++ /dev/null
@@ -1,90 +0,0 @@
--a Generate ANSI standard C output code, i.e., function prototypes.
--b Generate code for Linear Search.
--B Generate code for Binary Search.
--c Generate comparison code using strncmp rather than strcmp.
--C Make the contents of generated lookup tables constant, i.e., readonly.
--d Enables the debugging option (produces verbose output to the standard
- error).
--D Handle keywords that hash to duplicate values. This is useful
- for certain highly redundant keyword sets.
--e Allow user to provide a string containing delimiters used to separate
- keywords from their attributes. Default is ",\n"
--E Define constant values using an enum local to the lookup function
- rather than with defines
--f Generate the gen-perf.hash function ``fast.'' This decreases GPERF's
- running time at the cost of minimizing generated table-size.
- The numeric argument represents the number of times to iterate when
- resolving a collision. `0' means ``iterate by the number of keywords.''
--F Provided expression will be used to assign default values in keyword
- table, i.e., the fill value. Default is "".
--g Make generated routines use ``inline'' to remove function overhead.
--G Generate the static table of keywords as a static global variable,
- rather than hiding it inside of the lookup function (which is the
- default behavior).
--h Prints this message.
--H Allow user to specify name of generated hash function. Default
- is `hash'.
--i Provide an initial value for the associate values array. Default is 0.
--I Generate comparison code using case insensitive string comparison, e.g.,
- strncasecmp or strcasecmp.
- Setting this value larger helps inflate the size of the final table.
--j Affects the ``jump value,'' i.e., how far to advance the associated
- character value upon collisions. Must be an odd number, default is 5.
--J Skips '#include <string.h>' part in the output.
--k Allows selection of the key positions used in the hash function.
- The allowable choices range between 1-126, inclusive. The positions
- are separated by commas, ranges may be used, and key positions may
- occur in any order. Also, the meta-character '*' causes the generated
- hash function to consider ALL key positions, and $ indicates the
- ``final character'' of a key, e.g., $,1,2,4,6-10.
--K Allow use to select name of the keyword component in the keyword
- structure.
--l Compare key lengths before trying a string comparison. This helps
- cut down on the number of string comparisons made during the lookup.
--L Generates code in the language specified by the option's argument.
- Languages handled are currently C++ and C. The default is C.
--m Avoids the warning about identical hash values. This is valid
- only if the -D option is enabled.
--M Skips class definition in the output. This is valid only in C++ mode.
--n Do not include the length of the keyword when computing the hash
- function.
--N Allow user to specify name of generated lookup function. Default
- name is `in_word_set.'
--o Reorders input keys by frequency of occurrence of the key sets.
- This should decrease the search time dramatically.
--O Optimize the generated lookup function by assuming that all input
- keywords are members of the keyset from the keyfile.
--p Changes the return value of the generated function ``in_word_set''
- from its default boolean value (i.e., 0 or 1), to type ``pointer
- to wordlist array'' This is most useful when the -t option, allowing
- user-defined structs, is used.
--r Utilizes randomness to initialize the associated values table.
--s Affects the size of the generated hash table. The numeric argument
- for this option indicates ``how many times larger or smaller'' the
- associated value range should be, in relationship to the number of
- keys, e.g. a value of 3 means ``allow the maximum associated value
- to be about 3 times larger than the number of input keys.''
- Conversely, a value of -3 means ``make the maximum associated
- value about 3 times smaller than the number of input keys. A
- larger table should decrease the time required for an unsuccessful
- search, at the expense of extra table space. Default value is 1.
--S Causes the generated C code to use a switch statement scheme, rather
- than an array lookup table. This can lead to a reduction in both
- time and space requirements for some keyfiles. The argument to
- this option determines how many switch statements are generated.
- A value of 1 generates 1 switch containing all the elements, a value
- of 2 generates 2 tables with 1/2 the elements in each table, etc.
- This is useful since many C compilers cannot correctly generate code
- for large switch statements.
--t Allows the user to include a structured type declaration for
- generated code. Any text before %% is consider part of the type
- declaration. Key words and additional fields may follow this, one
- group of fields per line.
--T Prevents the transfer of the type declaration to the output file.
- Use this option if the type is already defined elsewhere.
--v Prints out the current version number and exits with a value of 0
--V Exits silently with a value of 0.
--Z Allow user to specify name of generated C++ class. Default
- name is `Perfect_Hash.'
-Usage: ../src/gperf [-abBcCdDef[num]gGhH<hashname>i<init>IjJk<keys>K<keyname>lL<language>mMnN<function name>oOprs<size>S<switches>tTvVZ<class name>].
-(type ../src/gperf -h for help)
diff --git a/apps/gperf/tests/test-7.exp b/apps/gperf/tests/test-7.exp
deleted file mode 100644
index c5c942c10d1..00000000000
--- a/apps/gperf/tests/test-7.exp
+++ /dev/null
@@ -1,32 +0,0 @@
-in word set if
-in word set do
-NOT in word set int
-in word set for
-in word set case
-NOT in word set char
-NOT in word set auto
-in word set goto
-in word set else
-NOT in word set long
-NOT in word set void
-NOT in word set enum
-NOT in word set float
-NOT in word set short
-NOT in word set union
-NOT in word set break
-in word set while
-NOT in word set const
-NOT in word set double
-NOT in word set static
-NOT in word set extern
-NOT in word set struct
-in word set return
-NOT in word set sizeof
-NOT in word set switch
-NOT in word set signed
-NOT in word set typedef
-NOT in word set default
-NOT in word set unsigned
-NOT in word set continue
-NOT in word set register
-NOT in word set volatile
diff --git a/apps/gperf/tests/test.cpp b/apps/gperf/tests/test.cpp
deleted file mode 100644
index 156b9bf922d..00000000000
--- a/apps/gperf/tests/test.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// $Id$
-
-// Tests the generated perfect hash function.
-
-// The -v option prints diagnostics as to whether a word is in the set
-// or not. Without -v the program is useful for timing.
-
-#include "ace/OS.h"
-
-ACE_RCSID(tests, test, "$Id$")
-
-static const int MAX_LEN = 80;
-
-// Lookup function.
-const char *in_word_set (const char *str, unsigned int len);
-
-int
-main (int argc, char *argv[])
-{
- int verbose = argc > 1 && ACE_OS::strcmp (argv[1], "-v") == 0 ? 1 : 0;
- char buf[MAX_LEN];
-
- while (ACE_OS::fgets (buf, sizeof buf, stdin) != 0)
- {
- int len = ACE_OS::strlen (buf) - 1;
- buf[len] = '\0';
- if (in_word_set (buf, len) && verbose)
- printf ("in word set %s\n", buf);
- else if (verbose)
- printf ("NOT in word set %s\n", buf);
- }
-
- return 0;
-}
diff --git a/apps/gperf/texinfo.tex b/apps/gperf/texinfo.tex
deleted file mode 100644
index 1701ae10e81..00000000000
--- a/apps/gperf/texinfo.tex
+++ /dev/null
@@ -1,4977 +0,0 @@
-% texinfo.tex -- TeX macros to handle Texinfo files.
-% $Id$
-%
-% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98
-% Free Software Foundation, Inc.
-%
-% This texinfo.tex file is free software; you can redistribute it and/or
-% modify it under the terms of the GNU General Public License as
-% published by the Free Software Foundation; either version 2, or (at
-% your option) any later version.
-%
-% This texinfo.tex file is distributed in the hope that it will be
-% useful, but WITHOUT ANY WARRANTY; without even the implied warranty
-% of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-% General Public License for more details.
-%
-% You should have received a copy of the GNU General Public License
-% along with this texinfo.tex file; see the file COPYING. If not, write
-% to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-% Boston, MA 02111-1307, USA.
-%
-% In other words, you are welcome to use, share and improve this program.
-% You are forbidden to forbid anyone else to use, share and improve
-% what you give them. Help stamp out software-hoarding!
-%
-% Please try the latest version of texinfo.tex before submitting bug
-% reports; you can get the latest version from:
-% ftp://ftp.cs.umb.edu/pub/tex/texinfo.tex
-% /home/gd/gnu/doc/texinfo.tex on the GNU machines.
-%
-% Send bug reports to bug-texinfo@gnu.org.
-% Please include a precise test case in each bug report,
-% including a complete document with which we can reproduce the problem.
-%
-% Texinfo macros (with @macro) are *not* supported by texinfo.tex. You
-% have to run makeinfo -E to expand macros first; the texi2dvi script
-% does this.
-
-
-% Make it possible to create a .fmt file just by loading this file:
-% if the underlying format is not loaded, start by loading it now.
-% Added by gildea November 1993.
-\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
-
-% This automatically updates the version number based on RCS.
-\def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}}
-\deftexinfoversion$Revision$
-\message{Loading texinfo package [Version \texinfoversion]:}
-
-% If in a .fmt file, print the version number
-% and turn on active characters that we couldn't do earlier because
-% they might have appeared in the input file name.
-\everyjob{\message{[Texinfo version \texinfoversion]}\message{}
- \catcode`+=\active \catcode`\_=\active}
-
-% Save some parts of plain tex whose names we will redefine.
-
-\let\ptexb=\b
-\let\ptexbullet=\bullet
-\let\ptexc=\c
-\let\ptexcomma=\,
-\let\ptexdot=\.
-\let\ptexdots=\dots
-\let\ptexend=\end
-\let\ptexequiv=\equiv
-\let\ptexexclam=\!
-\let\ptexi=\i
-\let\ptexlbrace=\{
-\let\ptexrbrace=\}
-\let\ptexstar=\*
-\let\ptext=\t
-
-% Be sure we're in horizontal mode when doing a tie, since we make space
-% equivalent to this in @example-like environments. Otherwise, a space
-% at the beginning of a line will start with \penalty -- and
-% since \penalty is valid in vertical mode, we'd end up putting the
-% penalty on the vertical list instead of in the new paragraph.
-{\catcode`@ = 11
- % Avoid using \@M directly, because that causes trouble
- % if the definition is written into an index file.
- \global\let\tiepenalty = \@M
- \gdef\tie{\leavevmode\penalty\tiepenalty\ }
-}
-
-
-\message{Basics,}
-\chardef\other=12
-
-% If this character appears in an error message or help string, it
-% starts a new line in the output.
-\newlinechar = `^^J
-
-% Set up fixed words for English.
-\ifx\putwordChapter\undefined{\gdef\putwordChapter{Chapter}}\fi%
-\def\putwordInfo{Info}%
-\ifx\putwordSee\undefined{\gdef\putwordSee{See}}\fi%
-\ifx\putwordsee\undefined{\gdef\putwordsee{see}}\fi%
-\ifx\putwordfile\undefined{\gdef\putwordfile{file}}\fi%
-\ifx\putwordpage\undefined{\gdef\putwordpage{page}}\fi%
-\ifx\putwordsection\undefined{\gdef\putwordsection{section}}\fi%
-\ifx\putwordSection\undefined{\gdef\putwordSection{Section}}\fi%
-\ifx\putwordTableofContents\undefined{\gdef\putwordTableofContents{Table of Contents}}\fi%
-\ifx\putwordShortContents\undefined{\gdef\putwordShortContents{Short Contents}}\fi%
-\ifx\putwordAppendix\undefined{\gdef\putwordAppendix{Appendix}}\fi%
-
-% Ignore a token.
-%
-\def\gobble#1{}
-
-\hyphenation{ap-pen-dix}
-\hyphenation{mini-buf-fer mini-buf-fers}
-\hyphenation{eshell}
-\hyphenation{white-space}
-
-% Margin to add to right of even pages, to left of odd pages.
-\newdimen \bindingoffset
-\newdimen \normaloffset
-\newdimen\pagewidth \newdimen\pageheight
-
-% Sometimes it is convenient to have everything in the transcript file
-% and nothing on the terminal. We don't just call \tracingall here,
-% since that produces some useless output on the terminal.
-%
-\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}%
-\def\loggingall{\tracingcommands2 \tracingstats2
- \tracingpages1 \tracingoutput1 \tracinglostchars1
- \tracingmacros2 \tracingparagraphs1 \tracingrestores1
- \showboxbreadth\maxdimen\showboxdepth\maxdimen
-}%
-
-% For @cropmarks command.
-% Do @cropmarks to get crop marks.
-%
-\newif\ifcropmarks
-\let\cropmarks = \cropmarkstrue
-%
-% Dimensions to add cropmarks at corners.
-% Added by P. A. MacKay, 12 Nov. 1986
-%
-\newdimen\cornerlong \newdimen\cornerthick
-\newdimen\topandbottommargin
-\newdimen\outerhsize \newdimen\outervsize
-\cornerlong=1pc\cornerthick=.3pt % These set size of cropmarks
-\outerhsize=7in
-%\outervsize=9.5in
-% Alternative @smallbook page size is 9.25in
-\outervsize=9.25in
-\topandbottommargin=.75in
-
-% Main output routine.
-\chardef\PAGE = 255
-\output = {\onepageout{\pagecontents\PAGE}}
-
-\newbox\headlinebox
-\newbox\footlinebox
-
-% \onepageout takes a vbox as an argument. Note that \pagecontents
-% does insertions, but you have to call it yourself.
-\def\onepageout#1{%
- \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
- %
- \ifodd\pageno \advance\hoffset by \bindingoffset
- \else \advance\hoffset by -\bindingoffset\fi
- %
- % Do this outside of the \shipout so @code etc. will be expanded in
- % the headline as they should be, not taken literally (outputting ''code).
- \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
- \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
- %
- {%
- % Have to do this stuff outside the \shipout because we want it to
- % take effect in \write's, yet the group defined by the \vbox ends
- % before the \shipout runs.
- %
- \escapechar = `\\ % use backslash in output files.
- \indexdummies % don't expand commands in the output.
- \normalturnoffactive % \ in index entries must not stay \, e.g., if
- % the page break happens to be in the middle of an example.
- \shipout\vbox{%
- \ifcropmarks \vbox to \outervsize\bgroup
- \hsize = \outerhsize
- \line{\ewtop\hfil\ewtop}%
- \nointerlineskip
- \line{%
- \vbox{\moveleft\cornerthick\nstop}%
- \hfill
- \vbox{\moveright\cornerthick\nstop}%
- }%
- \vskip\topandbottommargin
- \line\bgroup
- \hfil % center the page within the outer (page) hsize.
- \ifodd\pageno\hskip\bindingoffset\fi
- \vbox\bgroup
- \fi
- %
- \unvbox\headlinebox
- \pagebody{#1}%
- \ifdim\ht\footlinebox > 0pt
- % Only leave this space if the footline is nonempty.
- % (We lessened \vsize for it in \oddfootingxxx.)
- % The \baselineskip=24pt in plain's \makefootline has no effect.
- \vskip 2\baselineskip
- \unvbox\footlinebox
- \fi
- %
- \ifcropmarks
- \egroup % end of \vbox\bgroup
- \hfil\egroup % end of (centering) \line\bgroup
- \vskip\topandbottommargin plus1fill minus1fill
- \boxmaxdepth = \cornerthick
- \line{%
- \vbox{\moveleft\cornerthick\nsbot}%
- \hfill
- \vbox{\moveright\cornerthick\nsbot}%
- }%
- \nointerlineskip
- \line{\ewbot\hfil\ewbot}%
- \egroup % \vbox from first cropmarks clause
- \fi
- }% end of \shipout\vbox
- }% end of group with \turnoffactive
- \advancepageno
- \ifnum\outputpenalty>-20000 \else\dosupereject\fi
-}
-
-\newinsert\margin \dimen\margin=\maxdimen
-
-\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
-{\catcode`\@ =11
-\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
-% marginal hacks, juha@viisa.uucp (Juha Takala)
-\ifvoid\margin\else % marginal info is present
- \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi
-\dimen@=\dp#1 \unvbox#1
-\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
-\ifr@ggedbottom \kern-\dimen@ \vfil \fi}
-}
-
-% Here are the rules for the cropmarks. Note that they are
-% offset so that the space between them is truly \outerhsize or \outervsize
-% (P. A. MacKay, 12 November, 1986)
-%
-\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong}
-\def\nstop{\vbox
- {\hrule height\cornerthick depth\cornerlong width\cornerthick}}
-\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong}
-\def\nsbot{\vbox
- {\hrule height\cornerlong depth\cornerthick width\cornerthick}}
-
-% Parse an argument, then pass it to #1. The argument is the rest of
-% the input line (except we remove a trailing comment). #1 should be a
-% macro which expects an ordinary undelimited TeX argument.
-%
-\def\parsearg#1{%
- \let\next = #1%
- \begingroup
- \obeylines
- \futurelet\temp\parseargx
-}
-
-% If the next token is an obeyed space (from an @example environment or
-% the like), remove it and recurse. Otherwise, we're done.
-\def\parseargx{%
- % \obeyedspace is defined far below, after the definition of \sepspaces.
- \ifx\obeyedspace\temp
- \expandafter\parseargdiscardspace
- \else
- \expandafter\parseargline
- \fi
-}
-
-% Remove a single space (as the delimiter token to the macro call).
-{\obeyspaces %
- \gdef\parseargdiscardspace {\futurelet\temp\parseargx}}
-
-{\obeylines %
- \gdef\parseargline#1^^M{%
- \endgroup % End of the group started in \parsearg.
- %
- % First remove any @c comment, then any @comment.
- % Result of each macro is put in \toks0.
- \argremovec #1\c\relax %
- \expandafter\argremovecomment \the\toks0 \comment\relax %
- %
- % Call the caller's macro, saved as \next in \parsearg.
- \expandafter\next\expandafter{\the\toks0}%
- }%
-}
-
-% Since all \c{,omment} does is throw away the argument, we can let TeX
-% do that for us. The \relax here is matched by the \relax in the call
-% in \parseargline; it could be more or less anything, its purpose is
-% just to delimit the argument to the \c.
-\def\argremovec#1\c#2\relax{\toks0 = {#1}}
-\def\argremovecomment#1\comment#2\relax{\toks0 = {#1}}
-
-% \argremovec{,omment} might leave us with trailing spaces, though; e.g.,
-% @end itemize @c foo
-% will have two active spaces as part of the argument with the
-% `itemize'. Here we remove all active spaces from #1, and assign the
-% result to \toks0.
-%
-% This loses if there are any *other* active characters besides spaces
-% in the argument -- _ ^ +, for example -- since they get expanded.
-% Fortunately, Texinfo does not define any such commands. (If it ever
-% does, the catcode of the characters in questionwill have to be changed
-% here.) But this means we cannot call \removeactivespaces as part of
-% \argremovec{,omment}, since @c uses \parsearg, and thus the argument
-% that \parsearg gets might well have any character at all in it.
-%
-\def\removeactivespaces#1{%
- \begingroup
- \ignoreactivespaces
- \edef\temp{#1}%
- \global\toks0 = \expandafter{\temp}%
- \endgroup
-}
-
-% Change the active space to expand to nothing.
-%
-\begingroup
- \obeyspaces
- \gdef\ignoreactivespaces{\obeyspaces\let =\empty}
-\endgroup
-
-
-\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
-
-%% These are used to keep @begin/@end levels from running away
-%% Call \inENV within environments (after a \begingroup)
-\newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi}
-\def\ENVcheck{%
-\ifENV\errmessage{Still within an environment. Type Return to continue.}
-\endgroup\fi} % This is not perfect, but it should reduce lossage
-
-% @begin foo is the same as @foo, for now.
-\newhelp\EMsimple{Type <Return> to continue.}
-
-\outer\def\begin{\parsearg\beginxxx}
-
-\def\beginxxx #1{%
-\expandafter\ifx\csname #1\endcsname\relax
-{\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else
-\csname #1\endcsname\fi}
-
-% @end foo executes the definition of \Efoo.
-%
-\def\end{\parsearg\endxxx}
-\def\endxxx #1{%
- \removeactivespaces{#1}%
- \edef\endthing{\the\toks0}%
- %
- \expandafter\ifx\csname E\endthing\endcsname\relax
- \expandafter\ifx\csname \endthing\endcsname\relax
- % There's no \foo, i.e., no ``environment'' foo.
- \errhelp = \EMsimple
- \errmessage{Undefined command `@end \endthing'}%
- \else
- \unmatchedenderror\endthing
- \fi
- \else
- % Everything's ok; the right environment has been started.
- \csname E\endthing\endcsname
- \fi
-}
-
-% There is an environment #1, but it hasn't been started. Give an error.
-%
-\def\unmatchedenderror#1{%
- \errhelp = \EMsimple
- \errmessage{This `@end #1' doesn't have a matching `@#1'}%
-}
-
-% Define the control sequence \E#1 to give an unmatched @end error.
-%
-\def\defineunmatchedend#1{%
- \expandafter\def\csname E#1\endcsname{\unmatchedenderror{#1}}%
-}
-
-
-% Single-spacing is done by various environments (specifically, in
-% \nonfillstart and \quotations).
-\newskip\singlespaceskip \singlespaceskip = 12.5pt
-\def\singlespace{%
- % Why was this kern here? It messes up equalizing space above and below
- % environments. --karl, 6may93
- %{\advance \baselineskip by -\singlespaceskip
- %\kern \baselineskip}%
- \setleading \singlespaceskip
-}
-
-%% Simple single-character @ commands
-
-% @@ prints an @
-% Kludge this until the fonts are right (grr).
-\def\@{{\tt \char '100}}
-
-% This is turned off because it was never documented
-% and you can use @w{...} around a quote to suppress ligatures.
-%% Define @` and @' to be the same as ` and '
-%% but suppressing ligatures.
-%\def\`{{`}}
-%\def\'{{'}}
-
-% Used to generate quoted braces.
-\def\mylbrace {{\tt \char '173}}
-\def\myrbrace {{\tt \char '175}}
-\let\{=\mylbrace
-\let\}=\myrbrace
-\begingroup
- % Definitions to produce actual \{ & \} command in an index.
- \catcode`\{ = 12 \catcode`\} = 12
- \catcode`\[ = 1 \catcode`\] = 2
- \catcode`\@ = 0 \catcode`\\ = 12
- @gdef@lbracecmd[\{]%
- @gdef@rbracecmd[\}]%
-@endgroup
-
-% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
-% Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H.
-\let\, = \c
-\let\dotaccent = \.
-\def\ringaccent#1{{\accent23 #1}}
-\let\tieaccent = \t
-\let\ubaraccent = \b
-\let\udotaccent = \d
-
-% Other special characters: @questiondown @exclamdown
-% Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss.
-\def\questiondown{?`}
-\def\exclamdown{!`}
-
-% Dotless i and dotless j, used for accents.
-\def\imacro{i}
-\def\jmacro{j}
-\def\dotless#1{%
- \def\temp{#1}%
- \ifx\temp\imacro \ptexi
- \else\ifx\temp\jmacro \j
- \else \errmessage{@dotless can be used only with i or j}%
- \fi\fi
-}
-
-% @: forces normal size whitespace following.
-\def\:{\spacefactor=1000 }
-
-% @* forces a line break.
-\def\*{\hfil\break\hbox{}\ignorespaces}
-
-% @. is an end-of-sentence period.
-\def\.{.\spacefactor=3000 }
-
-% @! is an end-of-sentence bang.
-\def\!{!\spacefactor=3000 }
-
-% @? is an end-of-sentence query.
-\def\?{?\spacefactor=3000 }
-
-% @w prevents a word break. Without the \leavevmode, @w at the
-% beginning of a paragraph, when TeX is still in vertical mode, would
-% produce a whole line of output instead of starting the paragraph.
-\def\w#1{\leavevmode\hbox{#1}}
-
-% @group ... @end group forces ... to be all on one page, by enclosing
-% it in a TeX vbox. We use \vtop instead of \vbox to construct the box
-% to keep its height that of a normal line. According to the rules for
-% \topskip (p.114 of the TeXbook), the glue inserted is
-% max (\topskip - \ht (first item), 0). If that height is large,
-% therefore, no glue is inserted, and the space between the headline and
-% the text is small, which looks bad.
-%
-\def\group{\begingroup
- \ifnum\catcode13=\active \else
- \errhelp = \groupinvalidhelp
- \errmessage{@group invalid in context where filling is enabled}%
- \fi
- %
- % The \vtop we start below produces a box with normal height and large
- % depth; thus, TeX puts \baselineskip glue before it, and (when the
- % next line of text is done) \lineskip glue after it. (See p.82 of
- % the TeXbook.) Thus, space below is not quite equal to space
- % above. But it's pretty close.
- \def\Egroup{%
- \egroup % End the \vtop.
- \endgroup % End the \group.
- }%
- %
- \vtop\bgroup
- % We have to put a strut on the last line in case the @group is in
- % the midst of an example, rather than completely enclosing it.
- % Otherwise, the interline space between the last line of the group
- % and the first line afterwards is too small. But we can't put the
- % strut in \Egroup, since there it would be on a line by itself.
- % Hence this just inserts a strut at the beginning of each line.
- \everypar = {\strut}%
- %
- % Since we have a strut on every line, we don't need any of TeX's
- % normal interline spacing.
- \offinterlineskip
- %
- % OK, but now we have to do something about blank
- % lines in the input in @example-like environments, which normally
- % just turn into \lisppar, which will insert no space now that we've
- % turned off the interline space. Simplest is to make them be an
- % empty paragraph.
- \ifx\par\lisppar
- \edef\par{\leavevmode \par}%
- %
- % Reset ^^M's definition to new definition of \par.
- \obeylines
- \fi
- %
- % Do @comment since we are called inside an environment such as
- % @example, where each end-of-line in the input causes an
- % end-of-line in the output. We don't want the end-of-line after
- % the `@group' to put extra space in the output. Since @group
- % should appear on a line by itself (according to the Texinfo
- % manual), we don't worry about eating any user text.
- \comment
-}
-%
-% TeX puts in an \escapechar (i.e., `@') at the beginning of the help
-% message, so this ends up printing `@group can only ...'.
-%
-\newhelp\groupinvalidhelp{%
-group can only be used in environments such as @example,^^J%
-where each line of input produces a line of output.}
-
-% @need space-in-mils
-% forces a page break if there is not space-in-mils remaining.
-
-\newdimen\mil \mil=0.001in
-
-\def\need{\parsearg\needx}
-
-% Old definition--didn't work.
-%\def\needx #1{\par %
-%% This method tries to make TeX break the page naturally
-%% if the depth of the box does not fit.
-%{\baselineskip=0pt%
-%\vtop to #1\mil{\vfil}\kern -#1\mil\penalty 10000
-%\prevdepth=-1000pt
-%}}
-
-\def\needx#1{%
- % Go into vertical mode, so we don't make a big box in the middle of a
- % paragraph.
- \par
- %
- % Don't add any leading before our big empty box, but allow a page
- % break, since the best break might be right here.
- \allowbreak
- \nointerlineskip
- \vtop to #1\mil{\vfil}%
- %
- % TeX does not even consider page breaks if a penalty added to the
- % main vertical list is 10000 or more. But in order to see if the
- % empty box we just added fits on the page, we must make it consider
- % page breaks. On the other hand, we don't want to actually break the
- % page after the empty box. So we use a penalty of 9999.
- %
- % There is an extremely small chance that TeX will actually break the
- % page at this \penalty, if there are no other feasible breakpoints in
- % sight. (If the user is using lots of big @group commands, which
- % almost-but-not-quite fill up a page, TeX will have a hard time doing
- % good page breaking, for example.) However, I could not construct an
- % example where a page broke at this \penalty; if it happens in a real
- % document, then we can reconsider our strategy.
- \penalty9999
- %
- % Back up by the size of the box, whether we did a page break or not.
- \kern -#1\mil
- %
- % Do not allow a page break right after this kern.
- \nobreak
-}
-
-% @br forces paragraph break
-
-\let\br = \par
-
-% @dots{} output an ellipsis using the current font.
-% We do .5em per period so that it has the same spacing in a typewriter
-% font as three actual period characters.
-%
-\def\dots{\hbox to 1.5em{%
- \hskip 0pt plus 0.25fil minus 0.25fil
- .\hss.\hss.%
- \hskip 0pt plus 0.5fil minus 0.5fil
-}}
-
-% @enddots{} is an end-of-sentence ellipsis.
-%
-\def\enddots{%
- \hbox to 2em{%
- \hskip 0pt plus 0.25fil minus 0.25fil
- .\hss.\hss.\hss.%
- \hskip 0pt plus 0.5fil minus 0.5fil
- }%
- \spacefactor=3000
-}
-
-
-% @page forces the start of a new page
-
-\def\page{\par\vfill\supereject}
-
-% @exdent text....
-% outputs text on separate line in roman font, starting at standard page margin
-
-% This records the amount of indent in the innermost environment.
-% That's how much \exdent should take out.
-\newskip\exdentamount
-
-% This defn is used inside fill environments such as @defun.
-\def\exdent{\parsearg\exdentyyy}
-\def\exdentyyy #1{{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}}
-
-% This defn is used inside nofill environments such as @example.
-\def\nofillexdent{\parsearg\nofillexdentyyy}
-\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount
-\leftline{\hskip\leftskip{\rm#1}}}}
-
-% @inmargin{TEXT} puts TEXT in the margin next to the current paragraph.
-
-\def\inmargin#1{%
-\strut\vadjust{\nobreak\kern-\strutdepth
- \vtop to \strutdepth{\baselineskip\strutdepth\vss
- \llap{\rightskip=\inmarginspacing \vbox{\noindent #1}}\null}}}
-\newskip\inmarginspacing \inmarginspacing=1cm
-\def\strutdepth{\dp\strutbox}
-
-%\hbox{{\rm#1}}\hfil\break}}
-
-% @include file insert text of that file as input.
-% Allow normal characters that we make active in the argument (a file name).
-\def\include{\begingroup
- \catcode`\\=12
- \catcode`~=12
- \catcode`^=12
- \catcode`_=12
- \catcode`|=12
- \catcode`<=12
- \catcode`>=12
- \catcode`+=12
- \parsearg\includezzz}
-% Restore active chars for included file.
-\def\includezzz#1{\endgroup\begingroup
- % Read the included file in a group so nested @include's work.
- \def\thisfile{#1}%
- \input\thisfile
-\endgroup}
-
-\def\thisfile{}
-
-% @center line outputs that line, centered
-
-\def\center{\parsearg\centerzzz}
-\def\centerzzz #1{{\advance\hsize by -\leftskip
-\advance\hsize by -\rightskip
-\centerline{#1}}}
-
-% @sp n outputs n lines of vertical space
-
-\def\sp{\parsearg\spxxx}
-\def\spxxx #1{\vskip #1\baselineskip}
-
-% @comment ...line which is ignored...
-% @c is the same as @comment
-% @ignore ... @end ignore is another way to write a comment
-
-\def\comment{\catcode 64=\other \catcode 123=\other \catcode 125=\other%
-\parsearg \commentxxx}
-
-\def\commentxxx #1{\catcode 64=0 \catcode 123=1 \catcode 125=2 }
-
-\let\c=\comment
-
-% @paragraphindent is defined for the Info formatting commands only.
-\let\paragraphindent=\comment
-
-% Prevent errors for section commands.
-% Used in @ignore and in failing conditionals.
-\def\ignoresections{%
-\let\chapter=\relax
-\let\unnumbered=\relax
-\let\top=\relax
-\let\unnumberedsec=\relax
-\let\unnumberedsection=\relax
-\let\unnumberedsubsec=\relax
-\let\unnumberedsubsection=\relax
-\let\unnumberedsubsubsec=\relax
-\let\unnumberedsubsubsection=\relax
-\let\section=\relax
-\let\subsec=\relax
-\let\subsubsec=\relax
-\let\subsection=\relax
-\let\subsubsection=\relax
-\let\appendix=\relax
-\let\appendixsec=\relax
-\let\appendixsection=\relax
-\let\appendixsubsec=\relax
-\let\appendixsubsection=\relax
-\let\appendixsubsubsec=\relax
-\let\appendixsubsubsection=\relax
-\let\contents=\relax
-\let\smallbook=\relax
-\let\titlepage=\relax
-}
-
-% Used in nested conditionals, where we have to parse the Texinfo source
-% and so want to turn off most commands, in case they are used
-% incorrectly.
-%
-\def\ignoremorecommands{%
- \let\defcodeindex = \relax
- \let\defcv = \relax
- \let\deffn = \relax
- \let\deffnx = \relax
- \let\defindex = \relax
- \let\defivar = \relax
- \let\defmac = \relax
- \let\defmethod = \relax
- \let\defop = \relax
- \let\defopt = \relax
- \let\defspec = \relax
- \let\deftp = \relax
- \let\deftypefn = \relax
- \let\deftypefun = \relax
- \let\deftypevar = \relax
- \let\deftypevr = \relax
- \let\defun = \relax
- \let\defvar = \relax
- \let\defvr = \relax
- \let\ref = \relax
- \let\xref = \relax
- \let\printindex = \relax
- \let\pxref = \relax
- \let\settitle = \relax
- \let\setchapternewpage = \relax
- \let\setchapterstyle = \relax
- \let\everyheading = \relax
- \let\evenheading = \relax
- \let\oddheading = \relax
- \let\everyfooting = \relax
- \let\evenfooting = \relax
- \let\oddfooting = \relax
- \let\headings = \relax
- \let\include = \relax
- \let\lowersections = \relax
- \let\down = \relax
- \let\raisesections = \relax
- \let\up = \relax
- \let\set = \relax
- \let\clear = \relax
- \let\item = \relax
-}
-
-% Ignore @ignore ... @end ignore.
-%
-\def\ignore{\doignore{ignore}}
-
-% Ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu, and @direntry text.
-%
-\def\ifinfo{\doignore{ifinfo}}
-\def\ifhtml{\doignore{ifhtml}}
-\def\ifnottex{\doignore{ifnottex}}
-\def\html{\doignore{html}}
-\def\menu{\doignore{menu}}
-\def\direntry{\doignore{direntry}}
-
-% Also ignore @macro ... @end macro. The user must run texi2dvi,
-% which runs makeinfo to do macro expansion. Ignore @unmacro, too.
-\def\macro{\doignore{macro}}
-\let\unmacro = \comment
-
-
-% @dircategory CATEGORY -- specify a category of the dir file
-% which this file should belong to. Ignore this in TeX.
-\let\dircategory = \comment
-
-% Ignore text until a line `@end #1'.
-%
-\def\doignore#1{\begingroup
- % Don't complain about control sequences we have declared \outer.
- \ignoresections
- %
- % Define a command to swallow text until we reach `@end #1'.
- \long\def\doignoretext##1\end #1{\enddoignore}%
- %
- % Make sure that spaces turn into tokens that match what \doignoretext wants.
- \catcode32 = 10
- %
- % Ignore braces, too, so mismatched braces don't cause trouble.
- \catcode`\{ = 9
- \catcode`\} = 9
- %
- % And now expand that command.
- \doignoretext
-}
-
-% What we do to finish off ignored text.
-%
-\def\enddoignore{\endgroup\ignorespaces}%
-
-\newif\ifwarnedobs\warnedobsfalse
-\def\obstexwarn{%
- \ifwarnedobs\relax\else
- % We need to warn folks that they may have trouble with TeX 3.0.
- % This uses \immediate\write16 rather than \message to get newlines.
- \immediate\write16{}
- \immediate\write16{***WARNING*** for users of Unix TeX 3.0!}
- \immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).}
- \immediate\write16{If you are running another version of TeX, relax.}
- \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.}
- \immediate\write16{ Then upgrade your TeX installation if you can.}
- \immediate\write16{ (See ftp://ftp.gnu.ai.mit.edu/pub/gnu/TeX.README.)}
- \immediate\write16{If you are stuck with version 3.0, run the}
- \immediate\write16{ script ``tex3patch'' from the Texinfo distribution}
- \immediate\write16{ to use a workaround.}
- \immediate\write16{}
- \global\warnedobstrue
- \fi
-}
-
-% **In TeX 3.0, setting text in \nullfont hangs tex. For a
-% workaround (which requires the file ``dummy.tfm'' to be installed),
-% uncomment the following line:
-%%%%%\font\nullfont=dummy\let\obstexwarn=\relax
-
-% Ignore text, except that we keep track of conditional commands for
-% purposes of nesting, up to an `@end #1' command.
-%
-\def\nestedignore#1{%
- \obstexwarn
- % We must actually expand the ignored text to look for the @end
- % command, so that nested ignore constructs work. Thus, we put the
- % text into a \vbox and then do nothing with the result. To minimize
- % the change of memory overflow, we follow the approach outlined on
- % page 401 of the TeXbook: make the current font be a dummy font.
- %
- \setbox0 = \vbox\bgroup
- % Don't complain about control sequences we have declared \outer.
- \ignoresections
- %
- % Define `@end #1' to end the box, which will in turn undefine the
- % @end command again.
- \expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}%
- %
- % We are going to be parsing Texinfo commands. Most cause no
- % trouble when they are used incorrectly, but some commands do
- % complicated argument parsing or otherwise get confused, so we
- % undefine them.
- %
- % We can't do anything about stray @-signs, unfortunately;
- % they'll produce `undefined control sequence' errors.
- \ignoremorecommands
- %
- % Set the current font to be \nullfont, a TeX primitive, and define
- % all the font commands to also use \nullfont. We don't use
- % dummy.tfm, as suggested in the TeXbook, because not all sites
- % might have that installed. Therefore, math mode will still
- % produce output, but that should be an extremely small amount of
- % stuff compared to the main input.
- %
- \nullfont
- \let\tenrm = \nullfont \let\tenit = \nullfont \let\tensl = \nullfont
- \let\tenbf = \nullfont \let\tentt = \nullfont \let\smallcaps = \nullfont
- \let\tensf = \nullfont
- % Similarly for index fonts (mostly for their use in
- % smallexample)
- \let\indrm = \nullfont \let\indit = \nullfont \let\indsl = \nullfont
- \let\indbf = \nullfont \let\indtt = \nullfont \let\indsc = \nullfont
- \let\indsf = \nullfont
- %
- % Don't complain when characters are missing from the fonts.
- \tracinglostchars = 0
- %
- % Don't bother to do space factor calculations.
- \frenchspacing
- %
- % Don't report underfull hboxes.
- \hbadness = 10000
- %
- % Do minimal line-breaking.
- \pretolerance = 10000
- %
- % Do not execute instructions in @tex
- \def\tex{\doignore{tex}}%
-}
-
-% @set VAR sets the variable VAR to an empty value.
-% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
-%
-% Since we want to separate VAR from REST-OF-LINE (which might be
-% empty), we can't just use \parsearg; we have to insert a space of our
-% own to delimit the rest of the line, and then take it out again if we
-% didn't need it. Make sure the catcode of space is correct to avoid
-% losing inside @example, for instance.
-%
-\def\set{\begingroup\catcode` =10
- \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR.
- \parsearg\setxxx}
-\def\setxxx#1{\setyyy#1 \endsetyyy}
-\def\setyyy#1 #2\endsetyyy{%
- \def\temp{#2}%
- \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty
- \else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted.
- \fi
- \endgroup
-}
-% Can't use \xdef to pre-expand #2 and save some time, since \temp or
-% \next or other control sequences that we've defined might get us into
-% an infinite loop. Consider `@set foo @cite{bar}'.
-\def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}}
-
-% @clear VAR clears (i.e., unsets) the variable VAR.
-%
-\def\clear{\parsearg\clearxxx}
-\def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax}
-
-% @value{foo} gets the text saved in variable foo.
-%
-\def\value{\begingroup
- \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR.
- \valuexxx}
-\def\valuexxx#1{%
- \expandafter\ifx\csname SET#1\endcsname\relax
- {\{No value for ``#1''\}}%
- \else
- \csname SET#1\endcsname
- \fi
-\endgroup}
-
-% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
-% with @set.
-%
-\def\ifset{\parsearg\ifsetxxx}
-\def\ifsetxxx #1{%
- \expandafter\ifx\csname SET#1\endcsname\relax
- \expandafter\ifsetfail
- \else
- \expandafter\ifsetsucceed
- \fi
-}
-\def\ifsetsucceed{\conditionalsucceed{ifset}}
-\def\ifsetfail{\nestedignore{ifset}}
-\defineunmatchedend{ifset}
-
-% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
-% defined with @set, or has been undefined with @clear.
-%
-\def\ifclear{\parsearg\ifclearxxx}
-\def\ifclearxxx #1{%
- \expandafter\ifx\csname SET#1\endcsname\relax
- \expandafter\ifclearsucceed
- \else
- \expandafter\ifclearfail
- \fi
-}
-\def\ifclearsucceed{\conditionalsucceed{ifclear}}
-\def\ifclearfail{\nestedignore{ifclear}}
-\defineunmatchedend{ifclear}
-
-% @iftex, @ifnothtml, @ifnotinfo always succeed; we read the text
-% following, through the first @end iftex (etc.). Make `@end iftex'
-% (etc.) valid only after an @iftex.
-%
-\def\iftex{\conditionalsucceed{iftex}}
-\def\ifnothtml{\conditionalsucceed{ifnothtml}}
-\def\ifnotinfo{\conditionalsucceed{ifnotinfo}}
-\defineunmatchedend{iftex}
-\defineunmatchedend{ifnothtml}
-\defineunmatchedend{ifnotinfo}
-
-% We can't just want to start a group at @iftex (for example) and end it
-% at @end iftex, since then @set commands inside the conditional have no
-% effect (they'd get reverted at the end of the group). So we must
-% define \Eiftex to redefine itself to be its previous value. (We can't
-% just define it to fail again with an ``unmatched end'' error, since
-% the @ifset might be nested.)
-%
-\def\conditionalsucceed#1{%
- \edef\temp{%
- % Remember the current value of \E#1.
- \let\nece{prevE#1} = \nece{E#1}%
- %
- % At the `@end #1', redefine \E#1 to be its previous value.
- \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}%
- }%
- \temp
-}
-
-% We need to expand lots of \csname's, but we don't want to expand the
-% control sequences after we've constructed them.
-%
-\def\nece#1{\expandafter\noexpand\csname#1\endcsname}
-
-% @asis just yields its argument. Used with @table, for example.
-%
-\def\asis#1{#1}
-
-% @math means output in math mode.
-% We don't use $'s directly in the definition of \math because control
-% sequences like \math are expanded when the toc file is written. Then,
-% we read the toc file back, the $'s will be normal characters (as they
-% should be, according to the definition of Texinfo). So we must use a
-% control sequence to switch into and out of math mode.
-%
-% This isn't quite enough for @math to work properly in indices, but it
-% seems unlikely it will ever be needed there.
-%
-\let\implicitmath = $
-\def\math#1{\implicitmath #1\implicitmath}
-
-% @bullet and @minus need the same treatment as @math, just above.
-\def\bullet{\implicitmath\ptexbullet\implicitmath}
-\def\minus{\implicitmath-\implicitmath}
-
-\def\node{\ENVcheck\parsearg\nodezzz}
-\def\nodezzz#1{\nodexxx [#1,]}
-\def\nodexxx[#1,#2]{\gdef\lastnode{#1}}
-\let\nwnode=\node
-\let\lastnode=\relax
-
-\def\donoderef{\ifx\lastnode\relax\else
-\expandafter\expandafter\expandafter\setref{\lastnode}\fi
-\global\let\lastnode=\relax}
-
-\def\unnumbnoderef{\ifx\lastnode\relax\else
-\expandafter\expandafter\expandafter\unnumbsetref{\lastnode}\fi
-\global\let\lastnode=\relax}
-
-\def\appendixnoderef{\ifx\lastnode\relax\else
-\expandafter\expandafter\expandafter\appendixsetref{\lastnode}\fi
-\global\let\lastnode=\relax}
-
-% @refill is a no-op.
-\let\refill=\relax
-
-% @setfilename is done at the beginning of every texinfo file.
-% So open here the files we need to have open while reading the input.
-% This makes it possible to make a .fmt file for texinfo.
-\def\setfilename{%
- \readauxfile
- \opencontents
- \openindices
- \fixbackslash % Turn off hack to swallow `\input texinfo'.
- \global\let\setfilename=\comment % Ignore extra @setfilename cmds.
- %
- % If texinfo.cnf is present on the system, read it.
- % Useful for site-wide @afourpaper, etc.
- % Just to be on the safe side, close the input stream before the \input.
- \openin 1 texinfo.cnf
- \ifeof1 \let\temp=\relax \else \def\temp{\input texinfo.cnf }\fi
- \closein1
- \temp
- %
- \comment % Ignore the actual filename.
-}
-
-% @bye.
-\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
-
-% \def\macro#1{\begingroup\ignoresections\catcode`\#=6\def\macrotemp{#1}\parsearg\macroxxx}
-% \def\macroxxx#1#2 \end macro{%
-% \expandafter\gdef\macrotemp#1{#2}%
-% \endgroup}
-
-%\def\linemacro#1{\begingroup\ignoresections\catcode`\#=6\def\macrotemp{#1}\parsearg\linemacroxxx}
-%\def\linemacroxxx#1#2 \end linemacro{%
-%\let\parsearg=\relax
-%\edef\macrotempx{\csname M\butfirst\expandafter\string\macrotemp\endcsname}%
-%\expandafter\xdef\macrotemp{\parsearg\macrotempx}%
-%\expandafter\gdef\macrotempx#1{#2}%
-%\endgroup}
-
-%\def\butfirst#1{}
-
-
-\message{fonts,}
-
-% Font-change commands.
-
-% Texinfo supports the sans serif font style, which plain TeX does not.
-% So we set up a \sf analogous to plain's \rm, etc.
-\newfam\sffam
-\def\sf{\fam=\sffam \tensf}
-\let\li = \sf % Sometimes we call it \li, not \sf.
-
-% We don't need math for this one.
-\def\ttsl{\tenttsl}
-
-% Use Computer Modern fonts at \magstephalf (11pt).
-\newcount\mainmagstep
-\mainmagstep=\magstephalf
-
-% Set the font macro #1 to the font named #2, adding on the
-% specified font prefix (normally `cm').
-% #3 is the font's design size, #4 is a scale factor
-\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
-
-% Use cm as the default font prefix.
-% To specify the font prefix, you must define \fontprefix
-% before you read in texinfo.tex.
-\ifx\fontprefix\undefined
-\def\fontprefix{cm}
-\fi
-% Support font families that don't use the same naming scheme as CM.
-\def\rmshape{r}
-\def\rmbshape{bx} %where the normal face is bold
-\def\bfshape{b}
-\def\bxshape{bx}
-\def\ttshape{tt}
-\def\ttbshape{tt}
-\def\ttslshape{sltt}
-\def\itshape{ti}
-\def\itbshape{bxti}
-\def\slshape{sl}
-\def\slbshape{bxsl}
-\def\sfshape{ss}
-\def\sfbshape{ss}
-\def\scshape{csc}
-\def\scbshape{csc}
-
-\ifx\bigger\relax
-\let\mainmagstep=\magstep1
-\setfont\textrm\rmshape{12}{1000}
-\setfont\texttt\ttshape{12}{1000}
-\else
-\setfont\textrm\rmshape{10}{\mainmagstep}
-\setfont\texttt\ttshape{10}{\mainmagstep}
-\fi
-% Instead of cmb10, you many want to use cmbx10.
-% cmbx10 is a prettier font on its own, but cmb10
-% looks better when embedded in a line with cmr10.
-\setfont\textbf\bfshape{10}{\mainmagstep}
-\setfont\textit\itshape{10}{\mainmagstep}
-\setfont\textsl\slshape{10}{\mainmagstep}
-\setfont\textsf\sfshape{10}{\mainmagstep}
-\setfont\textsc\scshape{10}{\mainmagstep}
-\setfont\textttsl\ttslshape{10}{\mainmagstep}
-\font\texti=cmmi10 scaled \mainmagstep
-\font\textsy=cmsy10 scaled \mainmagstep
-
-% A few fonts for @defun, etc.
-\setfont\defbf\bxshape{10}{\magstep1} %was 1314
-\setfont\deftt\ttshape{10}{\magstep1}
-\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf}
-
-% Fonts for indices and small examples (9pt).
-% We actually use the slanted font rather than the italic,
-% because texinfo normally uses the slanted fonts for that.
-% Do not make many font distinctions in general in the index, since they
-% aren't very useful.
-\setfont\ninett\ttshape{9}{1000}
-\setfont\indrm\rmshape{9}{1000}
-\setfont\indit\slshape{9}{1000}
-\let\indsl=\indit
-\let\indtt=\ninett
-\let\indttsl=\ninett
-\let\indsf=\indrm
-\let\indbf=\indrm
-\setfont\indsc\scshape{10}{900}
-\font\indi=cmmi9
-\font\indsy=cmsy9
-
-% Fonts for title page:
-\setfont\titlerm\rmbshape{12}{\magstep3}
-\setfont\titleit\itbshape{10}{\magstep4}
-\setfont\titlesl\slbshape{10}{\magstep4}
-\setfont\titlett\ttbshape{12}{\magstep3}
-\setfont\titlettsl\ttslshape{10}{\magstep4}
-\setfont\titlesf\sfbshape{17}{\magstep1}
-\let\titlebf=\titlerm
-\setfont\titlesc\scbshape{10}{\magstep4}
-\font\titlei=cmmi12 scaled \magstep3
-\font\titlesy=cmsy10 scaled \magstep4
-\def\authorrm{\secrm}
-
-% Chapter (and unnumbered) fonts (17.28pt).
-\setfont\chaprm\rmbshape{12}{\magstep2}
-\setfont\chapit\itbshape{10}{\magstep3}
-\setfont\chapsl\slbshape{10}{\magstep3}
-\setfont\chaptt\ttbshape{12}{\magstep2}
-\setfont\chapttsl\ttslshape{10}{\magstep3}
-\setfont\chapsf\sfbshape{17}{1000}
-\let\chapbf=\chaprm
-\setfont\chapsc\scbshape{10}{\magstep3}
-\font\chapi=cmmi12 scaled \magstep2
-\font\chapsy=cmsy10 scaled \magstep3
-
-% Section fonts (14.4pt).
-\setfont\secrm\rmbshape{12}{\magstep1}
-\setfont\secit\itbshape{10}{\magstep2}
-\setfont\secsl\slbshape{10}{\magstep2}
-\setfont\sectt\ttbshape{12}{\magstep1}
-\setfont\secttsl\ttslshape{10}{\magstep2}
-\setfont\secsf\sfbshape{12}{\magstep1}
-\let\secbf\secrm
-\setfont\secsc\scbshape{10}{\magstep2}
-\font\seci=cmmi12 scaled \magstep1
-\font\secsy=cmsy10 scaled \magstep2
-
-% \setfont\ssecrm\bxshape{10}{\magstep1} % This size an font looked bad.
-% \setfont\ssecit\itshape{10}{\magstep1} % The letters were too crowded.
-% \setfont\ssecsl\slshape{10}{\magstep1}
-% \setfont\ssectt\ttshape{10}{\magstep1}
-% \setfont\ssecsf\sfshape{10}{\magstep1}
-
-%\setfont\ssecrm\bfshape{10}{1315} % Note the use of cmb rather than cmbx.
-%\setfont\ssecit\itshape{10}{1315} % Also, the size is a little larger than
-%\setfont\ssecsl\slshape{10}{1315} % being scaled magstep1.
-%\setfont\ssectt\ttshape{10}{1315}
-%\setfont\ssecsf\sfshape{10}{1315}
-
-%\let\ssecbf=\ssecrm
-
-% Subsection fonts (13.15pt).
-\setfont\ssecrm\rmbshape{12}{\magstephalf}
-\setfont\ssecit\itbshape{10}{1315}
-\setfont\ssecsl\slbshape{10}{1315}
-\setfont\ssectt\ttbshape{12}{\magstephalf}
-\setfont\ssecttsl\ttslshape{10}{1315}
-\setfont\ssecsf\sfbshape{12}{\magstephalf}
-\let\ssecbf\ssecrm
-\setfont\ssecsc\scbshape{10}{\magstep1}
-\font\sseci=cmmi12 scaled \magstephalf
-\font\ssecsy=cmsy10 scaled 1315
-% The smallcaps and symbol fonts should actually be scaled \magstep1.5,
-% but that is not a standard magnification.
-
-% In order for the font changes to affect most math symbols and letters,
-% we have to define the \textfont of the standard families. Since
-% texinfo doesn't allow for producing subscripts and superscripts, we
-% don't bother to reset \scriptfont and \scriptscriptfont (which would
-% also require loading a lot more fonts).
-%
-\def\resetmathfonts{%
- \textfont0 = \tenrm \textfont1 = \teni \textfont2 = \tensy
- \textfont\itfam = \tenit \textfont\slfam = \tensl \textfont\bffam = \tenbf
- \textfont\ttfam = \tentt \textfont\sffam = \tensf
-}
-
-
-% The font-changing commands redefine the meanings of \tenSTYLE, instead
-% of just \STYLE. We do this so that font changes will continue to work
-% in math mode, where it is the current \fam that is relevant in most
-% cases, not the current font. Plain TeX does \def\bf{\fam=\bffam
-% \tenbf}, for example. By redefining \tenbf, we obviate the need to
-% redefine \bf itself.
-\def\textfonts{%
- \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
- \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
- \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl
- \resetmathfonts}
-\def\titlefonts{%
- \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl
- \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc
- \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
- \let\tenttsl=\titlettsl
- \resetmathfonts \setleading{25pt}}
-\def\titlefont#1{{\titlefonts\rm #1}}
-\def\chapfonts{%
- \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
- \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
- \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl
- \resetmathfonts \setleading{19pt}}
-\def\secfonts{%
- \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
- \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
- \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl
- \resetmathfonts \setleading{16pt}}
-\def\subsecfonts{%
- \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
- \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
- \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl
- \resetmathfonts \setleading{15pt}}
-\let\subsubsecfonts = \subsecfonts % Maybe make sssec fonts scaled magstephalf?
-\def\indexfonts{%
- \let\tenrm=\indrm \let\tenit=\indit \let\tensl=\indsl
- \let\tenbf=\indbf \let\tentt=\indtt \let\smallcaps=\indsc
- \let\tensf=\indsf \let\teni=\indi \let\tensy=\indsy \let\tenttsl=\indttsl
- \resetmathfonts \setleading{12pt}}
-
-% Set up the default fonts, so we can use them for creating boxes.
-%
-\textfonts
-
-% Define these so they can be easily changed for other fonts.
-\def\angleleft{$\langle$}
-\def\angleright{$\rangle$}
-
-% Count depth in font-changes, for error checks
-\newcount\fontdepth \fontdepth=0
-
-% Fonts for short table of contents.
-\setfont\shortcontrm\rmshape{12}{1000}
-\setfont\shortcontbf\bxshape{12}{1000}
-\setfont\shortcontsl\slshape{12}{1000}
-
-%% Add scribe-like font environments, plus @l for inline lisp (usually sans
-%% serif) and @ii for TeX italic
-
-% \smartitalic{ARG} outputs arg in italics, followed by an italic correction
-% unless the following character is such as not to need one.
-\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi}
-\def\smartitalic#1{{\sl #1}\futurelet\next\smartitalicx}
-
-\let\i=\smartitalic
-\let\var=\smartitalic
-\let\dfn=\smartitalic
-\let\emph=\smartitalic
-\let\cite=\smartitalic
-
-\def\b#1{{\bf #1}}
-\let\strong=\b
-
-% We can't just use \exhyphenpenalty, because that only has effect at
-% the end of a paragraph. Restore normal hyphenation at the end of the
-% group within which \nohyphenation is presumably called.
-%
-\def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation}
-\def\restorehyphenation{\hyphenchar\font = `- }
-
-\def\t#1{%
- {\tt \rawbackslash \frenchspacing #1}%
- \null
-}
-\let\ttfont=\t
-\def\samp#1{`\tclose{#1}'\null}
-\setfont\smallrm\rmshape{8}{1000}
-\font\smallsy=cmsy9
-\def\key#1{{\smallrm\textfont2=\smallsy \leavevmode\hbox{%
- \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
- \vbox{\hrule\kern-0.4pt
- \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
- \kern-0.4pt\hrule}%
- \kern-.06em\raise0.4pt\hbox{\angleright}}}}
-% The old definition, with no lozenge:
-%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
-\def\ctrl #1{{\tt \rawbackslash \hat}#1}
-
-\let\file=\samp
-
-% @code is a modification of @t,
-% which makes spaces the same size as normal in the surrounding text.
-\def\tclose#1{%
- {%
- % Change normal interword space to be same as for the current font.
- \spaceskip = \fontdimen2\font
- %
- % Switch to typewriter.
- \tt
- %
- % But `\ ' produces the large typewriter interword space.
- \def\ {{\spaceskip = 0pt{} }}%
- %
- % Turn off hyphenation.
- \nohyphenation
- %
- \rawbackslash
- \frenchspacing
- #1%
- }%
- \null
-}
-
-% We *must* turn on hyphenation at `-' and `_' in \code.
-% Otherwise, it is too hard to avoid overfull hboxes
-% in the Emacs manual, the Library manual, etc.
-
-% Unfortunately, TeX uses one parameter (\hyphenchar) to control
-% both hyphenation at - and hyphenation within words.
-% We must therefore turn them both off (\tclose does that)
-% and arrange explicitly to hyphenate at a dash.
-% -- rms.
-{
-\catcode`\-=\active
-\catcode`\_=\active
-\catcode`\|=\active
-\global\def\code{\begingroup \catcode`\-=\active \let-\codedash \catcode`\_=\active \let_\codeunder \codex}
-% The following is used by \doprintindex to insure that long function names
-% wrap around. It is necessary for - and _ to be active before the index is
-% read from the file, as \entry parses the arguments long before \code is
-% ever called. -- mycroft
-% _ is always active; and it shouldn't be \let = to an _ that is a
-% subscript character anyway. Then, @cindex @samp{_} (for example)
-% fails. --karl
-\global\def\indexbreaks{%
- \catcode`\-=\active \let-\realdash
-}
-}
-
-\def\realdash{-}
-\def\codedash{-\discretionary{}{}{}}
-\def\codeunder{\ifusingtt{\normalunderscore\discretionary{}{}{}}{\_}}
-\def\codex #1{\tclose{#1}\endgroup}
-
-%\let\exp=\tclose %Was temporary
-
-% @kbd is like @code, except that if the argument is just one @key command,
-% then @kbd has no effect.
-
-% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
-% `example' (@kbd uses ttsl only inside of @example and friends),
-% or `code' (@kbd uses normal tty font always).
-\def\kbdinputstyle{\parsearg\kbdinputstylexxx}
-\def\kbdinputstylexxx#1{%
- \def\arg{#1}%
- \ifx\arg\worddistinct
- \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
- \else\ifx\arg\wordexample
- \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
- \else\ifx\arg\wordcode
- \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
- \fi\fi\fi
-}
-\def\worddistinct{distinct}
-\def\wordexample{example}
-\def\wordcode{code}
-
-% Default is kbdinputdistinct. (Too much of a hassle to call the macro,
-% the catcodes are wrong for parsearg to work.)
-\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}
-
-\def\xkey{\key}
-\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
-\ifx\one\xkey\ifx\threex\three \key{#2}%
-\else{\tclose{\kbdfont\look}}\fi
-\else{\tclose{\kbdfont\look}}\fi}
-
-% @url. Quotes do not seem necessary, so use \code.
-\let\url=\code
-
-% @uref (abbreviation for `urlref') takes an optional second argument
-% specifying the text to display. First (mandatory) arg is the url.
-% Perhaps eventually put in a hypertex \special here.
-%
-\def\uref#1{\urefxxx #1,,\finish}
-\def\urefxxx#1,#2,#3\finish{%
- \setbox0 = \hbox{\ignorespaces #2}%
- \ifdim\wd0 > 0pt
- \unhbox0\ (\code{#1})%
- \else
- \code{#1}%
- \fi
-}
-
-% rms does not like the angle brackets --karl, 17may97.
-% So now @email is just like @uref.
-%\def\email#1{\angleleft{\tt #1}\angleright}
-\let\email=\uref
-
-% Check if we are currently using a typewriter font. Since all the
-% Computer Modern typewriter fonts have zero interword stretch (and
-% shrink), and it is reasonable to expect all typewriter fonts to have
-% this property, we can check that font parameter.
-%
-\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
-
-% Typeset a dimension, e.g., `in' or `pt'. The only reason for the
-% argument is to make the input look right: @dmn{pt} instead of
-% @dmn{}pt.
-%
-\def\dmn#1{\thinspace #1}
-
-\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
-
-% @l was never documented to mean ``switch to the Lisp font'',
-% and it is not used as such in any manual I can find. We need it for
-% Polish suppressed-l. --karl, 22sep96.
-%\def\l#1{{\li #1}\null}
-
-\def\r#1{{\rm #1}} % roman font
-% Use of \lowercase was suggested.
-\def\sc#1{{\smallcaps#1}} % smallcaps font
-\def\ii#1{{\it #1}} % italic font
-
-% @pounds{} is a sterling sign.
-\def\pounds{{\it\$}}
-
-
-\message{page headings,}
-
-\newskip\titlepagetopglue \titlepagetopglue = 1.5in
-\newskip\titlepagebottomglue \titlepagebottomglue = 2pc
-
-% First the title page. Must do @settitle before @titlepage.
-\newif\ifseenauthor
-\newif\iffinishedtitlepage
-
-\def\shorttitlepage{\parsearg\shorttitlepagezzz}
-\def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
- \endgroup\page\hbox{}\page}
-
-\def\titlepage{\begingroup \parindent=0pt \textfonts
- \let\subtitlerm=\tenrm
-% I deinstalled the following change because \cmr12 is undefined.
-% This change was not in the ChangeLog anyway. --rms.
-% \let\subtitlerm=\cmr12
- \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}%
- %
- \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}%
- %
- % Leave some space at the very top of the page.
- \vglue\titlepagetopglue
- %
- % Now you can print the title using @title.
- \def\title{\parsearg\titlezzz}%
- \def\titlezzz##1{\leftline{\titlefonts\rm ##1}
- % print a rule at the page bottom also.
- \finishedtitlepagefalse
- \vskip4pt \hrule height 4pt width \hsize \vskip4pt}%
- % No rule at page bottom unless we print one at the top with @title.
- \finishedtitlepagetrue
- %
- % Now you can put text using @subtitle.
- \def\subtitle{\parsearg\subtitlezzz}%
- \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}}%
- %
- % @author should come last, but may come many times.
- \def\author{\parsearg\authorzzz}%
- \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi
- {\authorfont \leftline{##1}}}%
- %
- % Most title ``pages'' are actually two pages long, with space
- % at the top of the second. We don't want the ragged left on the second.
- \let\oldpage = \page
- \def\page{%
- \iffinishedtitlepage\else
- \finishtitlepage
- \fi
- \oldpage
- \let\page = \oldpage
- \hbox{}}%
-% \def\page{\oldpage \hbox{}}
-}
-
-\def\Etitlepage{%
- \iffinishedtitlepage\else
- \finishtitlepage
- \fi
- % It is important to do the page break before ending the group,
- % because the headline and footline are only empty inside the group.
- % If we use the new definition of \page, we always get a blank page
- % after the title page, which we certainly don't want.
- \oldpage
- \endgroup
- \HEADINGSon
-}
-
-\def\finishtitlepage{%
- \vskip4pt \hrule height 2pt width \hsize
- \vskip\titlepagebottomglue
- \finishedtitlepagetrue
-}
-
-%%% Set up page headings and footings.
-
-\let\thispage=\folio
-
-\newtoks \evenheadline % Token sequence for heading line of even pages
-\newtoks \oddheadline % Token sequence for heading line of odd pages
-\newtoks \evenfootline % Token sequence for footing line of even pages
-\newtoks \oddfootline % Token sequence for footing line of odd pages
-
-% Now make Tex use those variables
-\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
- \else \the\evenheadline \fi}}
-\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
- \else \the\evenfootline \fi}\HEADINGShook}
-\let\HEADINGShook=\relax
-
-% Commands to set those variables.
-% For example, this is what @headings on does
-% @evenheading @thistitle|@thispage|@thischapter
-% @oddheading @thischapter|@thispage|@thistitle
-% @evenfooting @thisfile||
-% @oddfooting ||@thisfile
-
-\def\evenheading{\parsearg\evenheadingxxx}
-\def\oddheading{\parsearg\oddheadingxxx}
-\def\everyheading{\parsearg\everyheadingxxx}
-
-\def\evenfooting{\parsearg\evenfootingxxx}
-\def\oddfooting{\parsearg\oddfootingxxx}
-\def\everyfooting{\parsearg\everyfootingxxx}
-
-{\catcode`\@=0 %
-
-\gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish}
-\gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish}
-\gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{%
-\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\everyheadingxxx#1{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
-
-\gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish}
-\gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish}
-\gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{%
- \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}%
- %
- % Leave some space for the footline. Hopefully ok to assume
- % @evenfooting will not be used by itself.
- \global\advance\pageheight by -\baselineskip
- \global\advance\vsize by -\baselineskip
-}
-
-\gdef\everyfootingxxx#1{\oddfootingxxx{#1}\evenfootingxxx{#1}}
-%
-}% unbind the catcode of @.
-
-% @headings double turns headings on for double-sided printing.
-% @headings single turns headings on for single-sided printing.
-% @headings off turns them off.
-% @headings on same as @headings double, retained for compatibility.
-% @headings after turns on double-sided headings after this page.
-% @headings doubleafter turns on double-sided headings after this page.
-% @headings singleafter turns on single-sided headings after this page.
-% By default, they are off at the start of a document,
-% and turned `on' after @end titlepage.
-
-\def\headings #1 {\csname HEADINGS#1\endcsname}
-
-\def\HEADINGSoff{
-\global\evenheadline={\hfil} \global\evenfootline={\hfil}
-\global\oddheadline={\hfil} \global\oddfootline={\hfil}}
-\HEADINGSoff
-% When we turn headings on, set the page number to 1.
-% For double-sided printing, put current file name in lower left corner,
-% chapter name on inside top of right hand pages, document
-% title on inside top of left hand pages, and page numbers on outside top
-% edge of all pages.
-\def\HEADINGSdouble{
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chapoddpage
-}
-\let\contentsalignmacro = \chappager
-
-% For single-sided printing, chapter title goes across top left of page,
-% page number on top right.
-\def\HEADINGSsingle{
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chappager
-}
-\def\HEADINGSon{\HEADINGSdouble}
-
-\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex}
-\let\HEADINGSdoubleafter=\HEADINGSafter
-\def\HEADINGSdoublex{%
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chapoddpage
-}
-
-\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
-\def\HEADINGSsinglex{%
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chappager
-}
-
-% Subroutines used in generating headings
-% Produces Day Month Year style of output.
-\def\today{\number\day\space
-\ifcase\month\or
-January\or February\or March\or April\or May\or June\or
-July\or August\or September\or October\or November\or December\fi
-\space\number\year}
-
-% Use this if you want the Month Day, Year style of output.
-%\def\today{\ifcase\month\or
-%January\or February\or March\or April\or May\or June\or
-%July\or August\or September\or October\or November\or December\fi
-%\space\number\day, \number\year}
-
-% @settitle line... specifies the title of the document, for headings
-% It generates no output of its own
-
-\def\thistitle{No Title}
-\def\settitle{\parsearg\settitlezzz}
-\def\settitlezzz #1{\gdef\thistitle{#1}}
-
-
-\message{tables,}
-
-% @tabs -- simple alignment
-
-% These don't work. For one thing, \+ is defined as outer.
-% So these macros cannot even be defined.
-
-%\def\tabs{\parsearg\tabszzz}
-%\def\tabszzz #1{\settabs\+#1\cr}
-%\def\tabline{\parsearg\tablinezzz}
-%\def\tablinezzz #1{\+#1\cr}
-%\def\&{&}
-
-% Tables -- @table, @ftable, @vtable, @item(x), @kitem(x), @xitem(x).
-
-% default indentation of table text
-\newdimen\tableindent \tableindent=.8in
-% default indentation of @itemize and @enumerate text
-\newdimen\itemindent \itemindent=.3in
-% margin between end of table item and start of table text.
-\newdimen\itemmargin \itemmargin=.1in
-
-% used internally for \itemindent minus \itemmargin
-\newdimen\itemmax
-
-% Note @table, @vtable, and @vtable define @item, @itemx, etc., with
-% these defs.
-% They also define \itemindex
-% to index the item name in whatever manner is desired (perhaps none).
-
-\newif\ifitemxneedsnegativevskip
-
-\def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi}
-
-\def\internalBitem{\smallbreak \parsearg\itemzzz}
-\def\internalBitemx{\itemxpar \parsearg\itemzzz}
-
-\def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz}
-\def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \itemxpar \parsearg\xitemzzz}
-
-\def\internalBkitem{\smallbreak \parsearg\kitemzzz}
-\def\internalBkitemx{\itemxpar \parsearg\kitemzzz}
-
-\def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}}%
- \itemzzz {#1}}
-
-\def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}}%
- \itemzzz {#1}}
-
-\def\itemzzz #1{\begingroup %
- \advance\hsize by -\rightskip
- \advance\hsize by -\tableindent
- \setbox0=\hbox{\itemfont{#1}}%
- \itemindex{#1}%
- \nobreak % This prevents a break before @itemx.
- %
- % Be sure we are not still in the middle of a paragraph.
- %{\parskip = 0in
- %\par
- %}%
- %
- % If the item text does not fit in the space we have, put it on a line
- % by itself, and do not allow a page break either before or after that
- % line. We do not start a paragraph here because then if the next
- % command is, e.g., @kindex, the whatsit would get put into the
- % horizontal list on a line by itself, resulting in extra blank space.
- \ifdim \wd0>\itemmax
- %
- % Make this a paragraph so we get the \parskip glue and wrapping,
- % but leave it ragged-right.
- \begingroup
- \advance\leftskip by-\tableindent
- \advance\hsize by\tableindent
- \advance\rightskip by0pt plus1fil
- \leavevmode\unhbox0\par
- \endgroup
- %
- % We're going to be starting a paragraph, but we don't want the
- % \parskip glue -- logically it's part of the @item we just started.
- \nobreak \vskip-\parskip
- %
- % Stop a page break at the \parskip glue coming up. Unfortunately
- % we can't prevent a possible page break at the following
- % \baselineskip glue.
- \nobreak
- \endgroup
- \itemxneedsnegativevskipfalse
- \else
- % The item text fits into the space. Start a paragraph, so that the
- % following text (if any) will end up on the same line. Since that
- % text will be indented by \tableindent, we make the item text be in
- % a zero-width box.
- \noindent
- \rlap{\hskip -\tableindent\box0}\ignorespaces%
- \endgroup%
- \itemxneedsnegativevskiptrue%
- \fi
-}
-
-\def\item{\errmessage{@item while not in a table}}
-\def\itemx{\errmessage{@itemx while not in a table}}
-\def\kitem{\errmessage{@kitem while not in a table}}
-\def\kitemx{\errmessage{@kitemx while not in a table}}
-\def\xitem{\errmessage{@xitem while not in a table}}
-\def\xitemx{\errmessage{@xitemx while not in a table}}
-
-%% Contains a kludge to get @end[description] to work
-\def\description{\tablez{\dontindex}{1}{}{}{}{}}
-
-\def\table{\begingroup\inENV\obeylines\obeyspaces\tablex}
-{\obeylines\obeyspaces%
-\gdef\tablex #1^^M{%
-\tabley\dontindex#1 \endtabley}}
-
-\def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex}
-{\obeylines\obeyspaces%
-\gdef\ftablex #1^^M{%
-\tabley\fnitemindex#1 \endtabley
-\def\Eftable{\endgraf\afterenvbreak\endgroup}%
-\let\Etable=\relax}}
-
-\def\vtable{\begingroup\inENV\obeylines\obeyspaces\vtablex}
-{\obeylines\obeyspaces%
-\gdef\vtablex #1^^M{%
-\tabley\vritemindex#1 \endtabley
-\def\Evtable{\endgraf\afterenvbreak\endgroup}%
-\let\Etable=\relax}}
-
-\def\dontindex #1{}
-\def\fnitemindex #1{\doind {fn}{\code{#1}}}%
-\def\vritemindex #1{\doind {vr}{\code{#1}}}%
-
-{\obeyspaces %
-\gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup%
-\tablez{#1}{#2}{#3}{#4}{#5}{#6}}}
-
-\def\tablez #1#2#3#4#5#6{%
-\aboveenvbreak %
-\begingroup %
-\def\Edescription{\Etable}% Necessary kludge.
-\let\itemindex=#1%
-\ifnum 0#3>0 \advance \leftskip by #3\mil \fi %
-\ifnum 0#4>0 \tableindent=#4\mil \fi %
-\ifnum 0#5>0 \advance \rightskip by #5\mil \fi %
-\def\itemfont{#2}%
-\itemmax=\tableindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \tableindent %
-\exdentamount=\tableindent
-\parindent = 0pt
-\parskip = \smallskipamount
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def\Etable{\endgraf\afterenvbreak\endgroup}%
-\let\item = \internalBitem %
-\let\itemx = \internalBitemx %
-\let\kitem = \internalBkitem %
-\let\kitemx = \internalBkitemx %
-\let\xitem = \internalBxitem %
-\let\xitemx = \internalBxitemx %
-}
-
-% This is the counter used by @enumerate, which is really @itemize
-
-\newcount \itemno
-
-\def\itemize{\parsearg\itemizezzz}
-
-\def\itemizezzz #1{%
- \begingroup % ended by the @end itemsize
- \itemizey {#1}{\Eitemize}
-}
-
-\def\itemizey #1#2{%
-\aboveenvbreak %
-\itemmax=\itemindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \itemindent %
-\exdentamount=\itemindent
-\parindent = 0pt %
-\parskip = \smallskipamount %
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def#2{\endgraf\afterenvbreak\endgroup}%
-\def\itemcontents{#1}%
-\let\item=\itemizeitem}
-
-% Set sfcode to normal for the chars that usually have another value.
-% These are `.?!:;,'
-\def\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000
- \sfcode58=1000 \sfcode59=1000 \sfcode44=1000 }
-
-% \splitoff TOKENS\endmark defines \first to be the first token in
-% TOKENS, and \rest to be the remainder.
-%
-\def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}%
-
-% Allow an optional argument of an uppercase letter, lowercase letter,
-% or number, to specify the first label in the enumerated list. No
-% argument is the same as `1'.
-%
-\def\enumerate{\parsearg\enumeratezzz}
-\def\enumeratezzz #1{\enumeratey #1 \endenumeratey}
-\def\enumeratey #1 #2\endenumeratey{%
- \begingroup % ended by the @end enumerate
- %
- % If we were given no argument, pretend we were given `1'.
- \def\thearg{#1}%
- \ifx\thearg\empty \def\thearg{1}\fi
- %
- % Detect if the argument is a single token. If so, it might be a
- % letter. Otherwise, the only valid thing it can be is a number.
- % (We will always have one token, because of the test we just made.
- % This is a good thing, since \splitoff doesn't work given nothing at
- % all -- the first parameter is undelimited.)
- \expandafter\splitoff\thearg\endmark
- \ifx\rest\empty
- % Only one token in the argument. It could still be anything.
- % A ``lowercase letter'' is one whose \lccode is nonzero.
- % An ``uppercase letter'' is one whose \lccode is both nonzero, and
- % not equal to itself.
- % Otherwise, we assume it's a number.
- %
- % We need the \relax at the end of the \ifnum lines to stop TeX from
- % continuing to look for a <number>.
- %
- \ifnum\lccode\expandafter`\thearg=0\relax
- \numericenumerate % a number (we hope)
- \else
- % It's a letter.
- \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax
- \lowercaseenumerate % lowercase letter
- \else
- \uppercaseenumerate % uppercase letter
- \fi
- \fi
- \else
- % Multiple tokens in the argument. We hope it's a number.
- \numericenumerate
- \fi
-}
-
-% An @enumerate whose labels are integers. The starting integer is
-% given in \thearg.
-%
-\def\numericenumerate{%
- \itemno = \thearg
- \startenumeration{\the\itemno}%
-}
-
-% The starting (lowercase) letter is in \thearg.
-\def\lowercaseenumerate{%
- \itemno = \expandafter`\thearg
- \startenumeration{%
- % Be sure we're not beyond the end of the alphabet.
- \ifnum\itemno=0
- \errmessage{No more lowercase letters in @enumerate; get a bigger
- alphabet}%
- \fi
- \char\lccode\itemno
- }%
-}
-
-% The starting (uppercase) letter is in \thearg.
-\def\uppercaseenumerate{%
- \itemno = \expandafter`\thearg
- \startenumeration{%
- % Be sure we're not beyond the end of the alphabet.
- \ifnum\itemno=0
- \errmessage{No more uppercase letters in @enumerate; get a bigger
- alphabet}
- \fi
- \char\uccode\itemno
- }%
-}
-
-% Call itemizey, adding a period to the first argument and supplying the
-% common last two arguments. Also subtract one from the initial value in
-% \itemno, since @item increments \itemno.
-%
-\def\startenumeration#1{%
- \advance\itemno by -1
- \itemizey{#1.}\Eenumerate\flushcr
-}
-
-% @alphaenumerate and @capsenumerate are abbreviations for giving an arg
-% to @enumerate.
-%
-\def\alphaenumerate{\enumerate{a}}
-\def\capsenumerate{\enumerate{A}}
-\def\Ealphaenumerate{\Eenumerate}
-\def\Ecapsenumerate{\Eenumerate}
-
-% Definition of @item while inside @itemize.
-
-\def\itemizeitem{%
-\advance\itemno by 1
-{\let\par=\endgraf \smallbreak}%
-\ifhmode \errmessage{In hmode at itemizeitem}\fi
-{\parskip=0in \hskip 0pt
-\hbox to 0pt{\hss \itemcontents\hskip \itemmargin}%
-\vadjust{\penalty 1200}}%
-\flushcr}
-
-% @multitable macros
-% Amy Hendrickson, 8/18/94, 3/6/96
-%
-% @multitable ... @end multitable will make as many columns as desired.
-% Contents of each column will wrap at width given in preamble. Width
-% can be specified either with sample text given in a template line,
-% or in percent of \hsize, the current width of text on page.
-
-% Table can continue over pages but will only break between lines.
-
-% To make preamble:
-%
-% Either define widths of columns in terms of percent of \hsize:
-% @multitable @columnfractions .25 .3 .45
-% @item ...
-%
-% Numbers following @columnfractions are the percent of the total
-% current hsize to be used for each column. You may use as many
-% columns as desired.
-
-
-% Or use a template:
-% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-% @item ...
-% using the widest term desired in each column.
-%
-% For those who want to use more than one line's worth of words in
-% the preamble, break the line within one argument and it
-% will parse correctly, i.e.,
-%
-% @multitable {Column 1 template} {Column 2 template} {Column 3
-% template}
-% Not:
-% @multitable {Column 1 template} {Column 2 template}
-% {Column 3 template}
-
-% Each new table line starts with @item, each subsequent new column
-% starts with @tab. Empty columns may be produced by supplying @tab's
-% with nothing between them for as many times as empty columns are needed,
-% ie, @tab@tab@tab will produce two empty columns.
-
-% @item, @tab, @multitable or @end multitable do not need to be on their
-% own lines, but it will not hurt if they are.
-
-% Sample multitable:
-
-% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-% @item first col stuff @tab second col stuff @tab third col
-% @item
-% first col stuff
-% @tab
-% second col stuff
-% @tab
-% third col
-% @item first col stuff @tab second col stuff
-% @tab Many paragraphs of text may be used in any column.
-%
-% They will wrap at the width determined by the template.
-% @item@tab@tab This will be in third column.
-% @end multitable
-
-% Default dimensions may be reset by user.
-% @multitableparskip is vertical space between paragraphs in table.
-% @multitableparindent is paragraph indent in table.
-% @multitablecolmargin is horizontal space to be left between columns.
-% @multitablelinespace is space to leave between table items, baseline
-% to baseline.
-% 0pt means it depends on current normal line spacing.
-%
-\newskip\multitableparskip
-\newskip\multitableparindent
-\newdimen\multitablecolspace
-\newskip\multitablelinespace
-\multitableparskip=0pt
-\multitableparindent=6pt
-\multitablecolspace=12pt
-\multitablelinespace=0pt
-
-% Macros used to set up halign preamble:
-%
-\let\endsetuptable\relax
-\def\xendsetuptable{\endsetuptable}
-\let\columnfractions\relax
-\def\xcolumnfractions{\columnfractions}
-\newif\ifsetpercent
-
-% 2/1/96, to allow fractions to be given with more than one digit.
-\def\pickupwholefraction#1 {\global\advance\colcount by1 %
-\expandafter\xdef\csname col\the\colcount\endcsname{.#1\hsize}%
-\setuptable}
-
-\newcount\colcount
-\def\setuptable#1{\def\firstarg{#1}%
-\ifx\firstarg\xendsetuptable\let\go\relax%
-\else
- \ifx\firstarg\xcolumnfractions\global\setpercenttrue%
- \else
- \ifsetpercent
- \let\go\pickupwholefraction % In this case arg of setuptable
- % is the decimal point before the
- % number given in percent of hsize.
- % We don't need this so we don't use it.
- \else
- \global\advance\colcount by1
- \setbox0=\hbox{#1 }% Add a normal word space as a separator;
- % typically that is always in the input, anyway.
- \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
- \fi%
- \fi%
-\ifx\go\pickupwholefraction\else\let\go\setuptable\fi%
-\fi\go}
-
-% multitable syntax
-\def\tab{&\hskip1sp\relax} % 2/2/96
- % tiny skip here makes sure this column space is
- % maintained, even if it is never used.
-
-% @multitable ... @end multitable definitions:
-
-\def\multitable{\parsearg\dotable}
-\def\dotable#1{\bgroup
- \vskip\parskip
- \let\item\crcr
- \tolerance=9500
- \hbadness=9500
- \setmultitablespacing
- \parskip=\multitableparskip
- \parindent=\multitableparindent
- \overfullrule=0pt
- \global\colcount=0
- \def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}%
- %
- % To parse everything between @multitable and @item:
- \setuptable#1 \endsetuptable
- %
- % \everycr will reset column counter, \colcount, at the end of
- % each line. Every column entry will cause \colcount to advance by one.
- % The table preamble
- % looks at the current \colcount to find the correct column width.
- \everycr{\noalign{%
- %
- % \filbreak%% keeps underfull box messages off when table breaks over pages.
- % Maybe so, but it also creates really weird page breaks when the table
- % breaks over pages. Wouldn't \vfil be better? Wait until the problem
- % manifests itself, so it can be fixed for real --karl.
- \global\colcount=0\relax}}%
- %
- % This preamble sets up a generic column definition, which will
- % be used as many times as user calls for columns.
- % \vtop will set a single line and will also let text wrap and
- % continue for many paragraphs if desired.
- \halign\bgroup&\global\advance\colcount by 1\relax
- \multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname
- %
- % In order to keep entries from bumping into each other
- % we will add a \leftskip of \multitablecolspace to all columns after
- % the first one.
- %
- % If a template has been used, we will add \multitablecolspace
- % to the width of each template entry.
- %
- % If the user has set preamble in terms of percent of \hsize we will
- % use that dimension as the width of the column, and the \leftskip
- % will keep entries from bumping into each other. Table will start at
- % left margin and final column will justify at right margin.
- %
- % Make sure we don't inherit \rightskip from the outer environment.
- \rightskip=0pt
- \ifnum\colcount=1
- % The first column will be indented with the surrounding text.
- \advance\hsize by\leftskip
- \else
- \ifsetpercent \else
- % If user has not set preamble in terms of percent of \hsize
- % we will advance \hsize by \multitablecolspace.
- \advance\hsize by \multitablecolspace
- \fi
- % In either case we will make \leftskip=\multitablecolspace:
- \leftskip=\multitablecolspace
- \fi
- % Ignoring space at the beginning and end avoids an occasional spurious
- % blank line, when TeX decides to break the line at the space before the
- % box from the multistrut, so the strut ends up on a line by itself.
- % For example:
- % @multitable @columnfractions .11 .89
- % @item @code{#}
- % @tab Legal holiday which is valid in major parts of the whole country.
- % Is automatically provided with highlighting sequences respectively marking
- % characters.
- \noindent\ignorespaces##\unskip\multistrut}\cr
-}
-
-\def\setmultitablespacing{% test to see if user has set \multitablelinespace.
-% If so, do nothing. If not, give it an appropriate dimension based on
-% current baselineskip.
-\ifdim\multitablelinespace=0pt
-%% strut to put in table in case some entry doesn't have descenders,
-%% to keep lines equally spaced
-\let\multistrut = \strut
-%% Test to see if parskip is larger than space between lines of
-%% table. If not, do nothing.
-%% If so, set to same dimension as multitablelinespace.
-\else
-\gdef\multistrut{\vrule height\multitablelinespace depth\dp0
-width0pt\relax} \fi
-\ifdim\multitableparskip>\multitablelinespace
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
- %% than skip between lines in the table.
-\fi%
-\ifdim\multitableparskip=0pt
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
- %% than skip between lines in the table.
-\fi}
-
-
-\message{indexing,}
-% Index generation facilities
-
-% Define \newwrite to be identical to plain tex's \newwrite
-% except not \outer, so it can be used within \newindex.
-{\catcode`\@=11
-\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}}
-
-% \newindex {foo} defines an index named foo.
-% It automatically defines \fooindex such that
-% \fooindex ...rest of line... puts an entry in the index foo.
-% It also defines \fooindfile to be the number of the output channel for
-% the file that accumulates this index. The file's extension is foo.
-% The name of an index should be no more than 2 characters long
-% for the sake of vms.
-
-\def\newindex #1{
-\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file
-\openout \csname#1indfile\endcsname \jobname.#1 % Open the file
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
-\noexpand\doindex {#1}}
-}
-
-% @defindex foo == \newindex{foo}
-
-\def\defindex{\parsearg\newindex}
-
-% Define @defcodeindex, like @defindex except put all entries in @code.
-
-\def\newcodeindex #1{
-\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file
-\openout \csname#1indfile\endcsname \jobname.#1 % Open the file
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
-\noexpand\docodeindex {#1}}
-}
-
-\def\defcodeindex{\parsearg\newcodeindex}
-
-% @synindex foo bar makes index foo feed into index bar.
-% Do this instead of @defindex foo if you don't want it as a separate index.
-\def\synindex #1 #2 {%
-\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
-\expandafter\let\csname#1indfile\endcsname=\synindexfoo
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
-\noexpand\doindex {#2}}%
-}
-
-% @syncodeindex foo bar similar, but put all entries made for index foo
-% inside @code.
-\def\syncodeindex #1 #2 {%
-\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
-\expandafter\let\csname#1indfile\endcsname=\synindexfoo
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
-\noexpand\docodeindex {#2}}%
-}
-
-% Define \doindex, the driver for all \fooindex macros.
-% Argument #1 is generated by the calling \fooindex macro,
-% and it is "foo", the name of the index.
-
-% \doindex just uses \parsearg; it calls \doind for the actual work.
-% This is because \doind is more useful to call from other macros.
-
-% There is also \dosubind {index}{topic}{subtopic}
-% which makes an entry in a two-level index such as the operation index.
-
-\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer}
-\def\singleindexer #1{\doind{\indexname}{#1}}
-
-% like the previous two, but they put @code around the argument.
-\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
-\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
-
-\def\indexdummies{%
-% Take care of the plain tex accent commands.
-\def\"{\realbackslash "}%
-\def\`{\realbackslash `}%
-\def\'{\realbackslash '}%
-\def\^{\realbackslash ^}%
-\def\~{\realbackslash ~}%
-\def\={\realbackslash =}%
-\def\b{\realbackslash b}%
-\def\c{\realbackslash c}%
-\def\d{\realbackslash d}%
-\def\u{\realbackslash u}%
-\def\v{\realbackslash v}%
-\def\H{\realbackslash H}%
-% Take care of the plain tex special European modified letters.
-\def\oe{\realbackslash oe}%
-\def\ae{\realbackslash ae}%
-\def\aa{\realbackslash aa}%
-\def\OE{\realbackslash OE}%
-\def\AE{\realbackslash AE}%
-\def\AA{\realbackslash AA}%
-\def\o{\realbackslash o}%
-\def\O{\realbackslash O}%
-\def\l{\realbackslash l}%
-\def\L{\realbackslash L}%
-\def\ss{\realbackslash ss}%
-% Take care of texinfo commands likely to appear in an index entry.
-% (Must be a way to avoid doing expansion at all, and thus not have to
-% laboriously list every single command here.)
-\def\@{@}% will be @@ when we switch to @ as escape char.
-%\let\{ = \lbracecmd
-%\let\} = \rbracecmd
-\def\_{{\realbackslash _}}%
-\def\w{\realbackslash w }%
-\def\bf{\realbackslash bf }%
-%\def\rm{\realbackslash rm }%
-\def\sl{\realbackslash sl }%
-\def\sf{\realbackslash sf}%
-\def\tt{\realbackslash tt}%
-\def\gtr{\realbackslash gtr}%
-\def\less{\realbackslash less}%
-\def\hat{\realbackslash hat}%
-%\def\char{\realbackslash char}%
-\def\TeX{\realbackslash TeX}%
-\def\dots{\realbackslash dots }%
-\def\result{\realbackslash result}%
-\def\equiv{\realbackslash equiv}%
-\def\expansion{\realbackslash expansion}%
-\def\print{\realbackslash print}%
-\def\error{\realbackslash error}%
-\def\point{\realbackslash point}%
-\def\copyright{\realbackslash copyright}%
-\def\tclose##1{\realbackslash tclose {##1}}%
-\def\code##1{\realbackslash code {##1}}%
-\def\dotless##1{\realbackslash dotless {##1}}%
-\def\samp##1{\realbackslash samp {##1}}%
-\def\,##1{\realbackslash ,{##1}}%
-\def\t##1{\realbackslash t {##1}}%
-\def\r##1{\realbackslash r {##1}}%
-\def\i##1{\realbackslash i {##1}}%
-\def\b##1{\realbackslash b {##1}}%
-\def\sc##1{\realbackslash sc {##1}}%
-\def\cite##1{\realbackslash cite {##1}}%
-\def\key##1{\realbackslash key {##1}}%
-\def\file##1{\realbackslash file {##1}}%
-\def\var##1{\realbackslash var {##1}}%
-\def\kbd##1{\realbackslash kbd {##1}}%
-\def\dfn##1{\realbackslash dfn {##1}}%
-\def\emph##1{\realbackslash emph {##1}}%
-\def\value##1{\realbackslash value {##1}}%
-\unsepspaces
-}
-
-% If an index command is used in an @example environment, any spaces
-% therein should become regular spaces in the raw index file, not the
-% expansion of \tie (\\leavevmode \penalty \@M \ ).
-{\obeyspaces
- \gdef\unsepspaces{\obeyspaces\let =\space}}
-
-% \indexnofonts no-ops all font-change commands.
-% This is used when outputting the strings to sort the index by.
-\def\indexdummyfont#1{#1}
-\def\indexdummytex{TeX}
-\def\indexdummydots{...}
-
-\def\indexnofonts{%
-% Just ignore accents.
-\let\,=\indexdummyfont
-\let\"=\indexdummyfont
-\let\`=\indexdummyfont
-\let\'=\indexdummyfont
-\let\^=\indexdummyfont
-\let\~=\indexdummyfont
-\let\==\indexdummyfont
-\let\b=\indexdummyfont
-\let\c=\indexdummyfont
-\let\d=\indexdummyfont
-\let\u=\indexdummyfont
-\let\v=\indexdummyfont
-\let\H=\indexdummyfont
-\let\dotless=\indexdummyfont
-% Take care of the plain tex special European modified letters.
-\def\oe{oe}%
-\def\ae{ae}%
-\def\aa{aa}%
-\def\OE{OE}%
-\def\AE{AE}%
-\def\AA{AA}%
-\def\o{o}%
-\def\O{O}%
-\def\l{l}%
-\def\L{L}%
-\def\ss{ss}%
-\let\w=\indexdummyfont
-\let\t=\indexdummyfont
-\let\r=\indexdummyfont
-\let\i=\indexdummyfont
-\let\b=\indexdummyfont
-\let\emph=\indexdummyfont
-\let\strong=\indexdummyfont
-\let\cite=\indexdummyfont
-\let\sc=\indexdummyfont
-%Don't no-op \tt, since it isn't a user-level command
-% and is used in the definitions of the active chars like <, >, |...
-%\let\tt=\indexdummyfont
-\let\tclose=\indexdummyfont
-\let\code=\indexdummyfont
-\let\file=\indexdummyfont
-\let\samp=\indexdummyfont
-\let\kbd=\indexdummyfont
-\let\key=\indexdummyfont
-\let\var=\indexdummyfont
-\let\TeX=\indexdummytex
-\let\dots=\indexdummydots
-\def\@{@}%
-}
-
-% To define \realbackslash, we must make \ not be an escape.
-% We must first make another character (@) an escape
-% so we do not become unable to do a definition.
-
-{\catcode`\@=0 \catcode`\\=\other
-@gdef@realbackslash{\}}
-
-\let\indexbackslash=0 %overridden during \printindex.
-
-\let\SETmarginindex=\relax %initialize!
-% workhorse for all \fooindexes
-% #1 is name of index, #2 is stuff to put there
-\def\doind #1#2{%
- % Put the index entry in the margin if desired.
- \ifx\SETmarginindex\relax\else
- \insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}%
- \fi
- {%
- \count255=\lastpenalty
- {%
- \indexdummies % Must do this here, since \bf, etc expand at this stage
- \escapechar=`\\
- {%
- \let\folio=0% We will expand all macros now EXCEPT \folio.
- \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now
- % so it will be output as is; and it will print as backslash.
- %
- % First process the index-string with all font commands turned off
- % to get the string to sort by.
- {\indexnofonts \xdef\indexsorttmp{#2}}%
- %
- % Now produce the complete index entry, with both the sort key and the
- % original text, including any font commands.
- \toks0 = {#2}%
- \edef\temp{%
- \write\csname#1indfile\endcsname{%
- \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}%
- }%
- \temp
- }%
- }%
- \penalty\count255
- }%
-}
-
-\def\dosubind #1#2#3{%
-{\count10=\lastpenalty %
-{\indexdummies % Must do this here, since \bf, etc expand at this stage
-\escapechar=`\\%
-{\let\folio=0%
-\def\rawbackslashxx{\indexbackslash}%
-%
-% Now process the index-string once, with all font commands turned off,
-% to get the string to sort the index by.
-{\indexnofonts
-\xdef\temp1{#2 #3}%
-}%
-% Now produce the complete index entry. We process the index-string again,
-% this time with font commands expanded, to get what to print in the index.
-\edef\temp{%
-\write \csname#1indfile\endcsname{%
-\realbackslash entry {\temp1}{\folio}{#2}{#3}}}%
-\temp }%
-}\penalty\count10}}
-
-% The index entry written in the file actually looks like
-% \entry {sortstring}{page}{topic}
-% or
-% \entry {sortstring}{page}{topic}{subtopic}
-% The texindex program reads in these files and writes files
-% containing these kinds of lines:
-% \initial {c}
-% before the first topic whose initial is c
-% \entry {topic}{pagelist}
-% for a topic that is used without subtopics
-% \primary {topic}
-% for the beginning of a topic that is used with subtopics
-% \secondary {subtopic}{pagelist}
-% for each subtopic.
-
-% Define the user-accessible indexing commands
-% @findex, @vindex, @kindex, @cindex.
-
-\def\findex {\fnindex}
-\def\kindex {\kyindex}
-\def\cindex {\cpindex}
-\def\vindex {\vrindex}
-\def\tindex {\tpindex}
-\def\pindex {\pgindex}
-
-\def\cindexsub {\begingroup\obeylines\cindexsub}
-{\obeylines %
-\gdef\cindexsub "#1" #2^^M{\endgroup %
-\dosubind{cp}{#2}{#1}}}
-
-% Define the macros used in formatting output of the sorted index material.
-
-% @printindex causes a particular index (the ??s file) to get printed.
-% It does not print any chapter heading (usually an @unnumbered).
-%
-\def\printindex{\parsearg\doprintindex}
-\def\doprintindex#1{\begingroup
- \dobreak \chapheadingskip{10000}%
- %
- \indexfonts \rm
- \tolerance = 9500
- \indexbreaks
- %
- % See if the index file exists and is nonempty.
- % Change catcode of @ here so that if the index file contains
- % \initial {@}
- % as its first line, TeX doesn't complain about mismatched braces
- % (because it thinks @} is a control sequence).
- \catcode`\@ = 11
- \openin 1 \jobname.#1s
- \ifeof 1
- % \enddoublecolumns gets confused if there is no text in the index,
- % and it loses the chapter title and the aux file entries for the
- % index. The easiest way to prevent this problem is to make sure
- % there is some text.
- (Index is nonexistent)
- \else
- %
- % If the index file exists but is empty, then \openin leaves \ifeof
- % false. We have to make TeX try to read something from the file, so
- % it can discover if there is anything in it.
- \read 1 to \temp
- \ifeof 1
- (Index is empty)
- \else
- % Index files are almost Texinfo source, but we use \ as the escape
- % character. It would be better to use @, but that's too big a change
- % to make right now.
- \def\indexbackslash{\rawbackslashxx}%
- \catcode`\\ = 0
- \escapechar = `\\
- \begindoublecolumns
- \input \jobname.#1s
- \enddoublecolumns
- \fi
- \fi
- \closein 1
-\endgroup}
-
-% These macros are used by the sorted index file itself.
-% Change them to control the appearance of the index.
-
-% Same as \bigskipamount except no shrink.
-% \balancecolumns gets confused if there is any shrink.
-\newskip\initialskipamount \initialskipamount 12pt plus4pt
-
-\def\initial #1{%
-{\let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
-\ifdim\lastskip<\initialskipamount
-\removelastskip \penalty-200 \vskip \initialskipamount\fi
-\line{\secbf#1\hfill}\kern 2pt\penalty10000}}
-
-% This typesets a paragraph consisting of #1, dot leaders, and then #2
-% flush to the right margin. It is used for index and table of contents
-% entries. The paragraph is indented by \leftskip.
-%
-\def\entry #1#2{\begingroup
- %
- % Start a new paragraph if necessary, so our assignments below can't
- % affect previous text.
- \par
- %
- % Do not fill out the last line with white space.
- \parfillskip = 0in
- %
- % No extra space above this paragraph.
- \parskip = 0in
- %
- % Do not prefer a separate line ending with a hyphen to fewer lines.
- \finalhyphendemerits = 0
- %
- % \hangindent is only relevant when the entry text and page number
- % don't both fit on one line. In that case, bob suggests starting the
- % dots pretty far over on the line. Unfortunately, a large
- % indentation looks wrong when the entry text itself is broken across
- % lines. So we use a small indentation and put up with long leaders.
- %
- % \hangafter is reset to 1 (which is the value we want) at the start
- % of each paragraph, so we need not do anything with that.
- \hangindent=2em
- %
- % When the entry text needs to be broken, just fill out the first line
- % with blank space.
- \rightskip = 0pt plus1fil
- %
- % Start a ``paragraph'' for the index entry so the line breaking
- % parameters we've set above will have an effect.
- \noindent
- %
- % Insert the text of the index entry. TeX will do line-breaking on it.
- #1%
- % The following is kludged to not output a line of dots in the index if
- % there are no page numbers. The next person who breaks this will be
- % cursed by a Unix daemon.
- \def\tempa{{\rm }}%
- \def\tempb{#2}%
- \edef\tempc{\tempa}%
- \edef\tempd{\tempb}%
- \ifx\tempc\tempd\ \else%
- %
- % If we must, put the page number on a line of its own, and fill out
- % this line with blank space. (The \hfil is overwhelmed with the
- % fill leaders glue in \indexdotfill if the page number does fit.)
- \hfil\penalty50
- \null\nobreak\indexdotfill % Have leaders before the page number.
- %
- % The `\ ' here is removed by the implicit \unskip that TeX does as
- % part of (the primitive) \par. Without it, a spurious underfull
- % \hbox ensues.
- \ #2% The page number ends the paragraph.
- \fi%
- \par
-\endgroup}
-
-% Like \dotfill except takes at least 1 em.
-\def\indexdotfill{\cleaders
- \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill}
-
-\def\primary #1{\line{#1\hfil}}
-
-\newskip\secondaryindent \secondaryindent=0.5cm
-
-\def\secondary #1#2{
-{\parfillskip=0in \parskip=0in
-\hangindent =1in \hangafter=1
-\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par
-}}
-
-% Define two-column mode, which we use to typeset indexes.
-% Adapted from the TeXbook, page 416, which is to say,
-% the manmac.tex format used to print the TeXbook itself.
-\catcode`\@=11
-
-\newbox\partialpage
-\newdimen\doublecolumnhsize
-
-\def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
- % Grab any single-column material above us.
- \output = {\global\setbox\partialpage = \vbox{%
- %
- % Here is a possibility not foreseen in manmac: if we accumulate a
- % whole lot of material, we might end up calling this \output
- % routine twice in a row (see the doublecol-lose test, which is
- % essentially a couple of indexes with @setchapternewpage off). In
- % that case, we must prevent the second \partialpage from
- % simply overwriting the first, causing us to lose the page.
- % This will preserve it until a real output routine can ship it
- % out. Generally, \partialpage will be empty when this runs and
- % this will be a no-op.
- \unvbox\partialpage
- %
- % Unvbox the main output page.
- \unvbox255
- \kern-\topskip \kern\baselineskip
- }}%
- \eject
- %
- % Use the double-column output routine for subsequent pages.
- \output = {\doublecolumnout}%
- %
- % Change the page size parameters. We could do this once outside this
- % routine, in each of @smallbook, @afourpaper, and the default 8.5x11
- % format, but then we repeat the same computation. Repeating a couple
- % of assignments once per index is clearly meaningless for the
- % execution time, so we may as well do it in one place.
- %
- % First we halve the line length, less a little for the gutter between
- % the columns. We compute the gutter based on the line length, so it
- % changes automatically with the paper format. The magic constant
- % below is chosen so that the gutter has the same value (well, +-<1pt)
- % as it did when we hard-coded it.
- %
- % We put the result in a separate register, \doublecolumhsize, so we
- % can restore it in \pagesofar, after \hsize itself has (potentially)
- % been clobbered.
- %
- \doublecolumnhsize = \hsize
- \advance\doublecolumnhsize by -.04154\hsize
- \divide\doublecolumnhsize by 2
- \hsize = \doublecolumnhsize
- %
- % Double the \vsize as well. (We don't need a separate register here,
- % since nobody clobbers \vsize.)
- \vsize = 2\vsize
-}
-\def\doublecolumnout{%
- \splittopskip=\topskip \splitmaxdepth=\maxdepth
- % Get the available space for the double columns -- the normal
- % (undoubled) page height minus any material left over from the
- % previous page.
- \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage
- % box0 will be the left-hand column, box2 the right.
- \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
- \onepageout\pagesofar
- \unvbox255
- \penalty\outputpenalty
-}
-\def\pagesofar{%
- % Re-output the contents of the output page -- any previous material,
- % followed by the two boxes we just split.
- \unvbox\partialpage
- \hsize = \doublecolumnhsize
- \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}%
-}
-\def\enddoublecolumns{%
- \output = {\balancecolumns}\eject % split what we have
- \endgroup % started in \begindoublecolumns
- %
- % Back to normal single-column typesetting, but take account of the
- % fact that we just accumulated some stuff on the output page.
- \pagegoal = \vsize
-}
-\def\balancecolumns{%
- % Called at the end of the double column material.
- \setbox0 = \vbox{\unvbox255}%
- \dimen@ = \ht0
- \advance\dimen@ by \topskip
- \advance\dimen@ by-\baselineskip
- \divide\dimen@ by 2
- \splittopskip = \topskip
- % Loop until we get a decent breakpoint.
- {\vbadness=10000 \loop
- \global\setbox3=\copy0
- \global\setbox1=\vsplit3 to\dimen@
- \ifdim\ht3>\dimen@ \global\advance\dimen@ by1pt
- \repeat}%
- \setbox0=\vbox to\dimen@{\unvbox1}%
- \setbox2=\vbox to\dimen@{\unvbox3}%
- \pagesofar
-}
-\catcode`\@ = \other
-
-
-\message{sectioning,}
-% Define chapters, sections, etc.
-
-\newcount\chapno
-\newcount\secno \secno=0
-\newcount\subsecno \subsecno=0
-\newcount\subsubsecno \subsubsecno=0
-
-% This counter is funny since it counts through charcodes of letters A, B, ...
-\newcount\appendixno \appendixno = `\@
-\def\appendixletter{\char\the\appendixno}
-
-\newwrite\contentsfile
-% This is called from \setfilename.
-\def\opencontents{\openout\contentsfile = \jobname.toc }
-
-% Each @chapter defines this as the name of the chapter.
-% page headings and footings can use it. @section does likewise
-
-\def\thischapter{} \def\thissection{}
-\def\seccheck#1{\ifnum \pageno<0
- \errmessage{@#1 not allowed after generating table of contents}%
-\fi}
-
-\def\chapternofonts{%
- \let\rawbackslash=\relax
- \let\frenchspacing=\relax
- \def\result{\realbackslash result}%
- \def\equiv{\realbackslash equiv}%
- \def\expansion{\realbackslash expansion}%
- \def\print{\realbackslash print}%
- \def\TeX{\realbackslash TeX}%
- \def\dots{\realbackslash dots}%
- \def\result{\realbackslash result}%
- \def\equiv{\realbackslash equiv}%
- \def\expansion{\realbackslash expansion}%
- \def\print{\realbackslash print}%
- \def\error{\realbackslash error}%
- \def\point{\realbackslash point}%
- \def\copyright{\realbackslash copyright}%
- \def\tt{\realbackslash tt}%
- \def\bf{\realbackslash bf}%
- \def\w{\realbackslash w}%
- \def\less{\realbackslash less}%
- \def\gtr{\realbackslash gtr}%
- \def\hat{\realbackslash hat}%
- \def\char{\realbackslash char}%
- \def\tclose##1{\realbackslash tclose{##1}}%
- \def\code##1{\realbackslash code{##1}}%
- \def\samp##1{\realbackslash samp{##1}}%
- \def\r##1{\realbackslash r{##1}}%
- \def\b##1{\realbackslash b{##1}}%
- \def\key##1{\realbackslash key{##1}}%
- \def\file##1{\realbackslash file{##1}}%
- \def\kbd##1{\realbackslash kbd{##1}}%
- % These are redefined because @smartitalic wouldn't work inside xdef.
- \def\i##1{\realbackslash i{##1}}%
- \def\cite##1{\realbackslash cite{##1}}%
- \def\var##1{\realbackslash var{##1}}%
- \def\emph##1{\realbackslash emph{##1}}%
- \def\dfn##1{\realbackslash dfn{##1}}%
-}
-
-\newcount\absseclevel % used to calculate proper heading level
-\newcount\secbase\secbase=0 % @raise/lowersections modify this count
-
-% @raisesections: treat @section as chapter, @subsection as section, etc.
-\def\raisesections{\global\advance\secbase by -1}
-\let\up=\raisesections % original BFox name
-
-% @lowersections: treat @chapter as section, @section as subsection, etc.
-\def\lowersections{\global\advance\secbase by 1}
-\let\down=\lowersections % original BFox name
-
-% Choose a numbered-heading macro
-% #1 is heading level if unmodified by @raisesections or @lowersections
-% #2 is text for heading
-\def\numhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
- \chapterzzz{#2}
-\or
- \seczzz{#2}
-\or
- \numberedsubseczzz{#2}
-\or
- \numberedsubsubseczzz{#2}
-\else
- \ifnum \absseclevel<0
- \chapterzzz{#2}
- \else
- \numberedsubsubseczzz{#2}
- \fi
-\fi
-}
-
-% like \numhead, but chooses appendix heading levels
-\def\apphead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
- \appendixzzz{#2}
-\or
- \appendixsectionzzz{#2}
-\or
- \appendixsubseczzz{#2}
-\or
- \appendixsubsubseczzz{#2}
-\else
- \ifnum \absseclevel<0
- \appendixzzz{#2}
- \else
- \appendixsubsubseczzz{#2}
- \fi
-\fi
-}
-
-% like \numhead, but chooses numberless heading levels
-\def\unnmhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
- \unnumberedzzz{#2}
-\or
- \unnumberedseczzz{#2}
-\or
- \unnumberedsubseczzz{#2}
-\or
- \unnumberedsubsubseczzz{#2}
-\else
- \ifnum \absseclevel<0
- \unnumberedzzz{#2}
- \else
- \unnumberedsubsubseczzz{#2}
- \fi
-\fi
-}
-
-
-\def\thischaptername{No Chapter Title}
-\outer\def\chapter{\parsearg\chapteryyy}
-\def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz
-\def\chapterzzz #1{\seccheck{chapter}%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \chapno by 1 \message{\putwordChapter \the\chapno}%
-\chapmacro {#1}{\the\chapno}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-% We don't substitute the actual chapter name into \thischapter
-% because we don't want its macros evaluated now.
-\xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash chapentry{\the\toks0}{\the\chapno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\donoderef %
-\global\let\section = \numberedsec
-\global\let\subsection = \numberedsubsec
-\global\let\subsubsection = \numberedsubsubsec
-}}
-
-\outer\def\appendix{\parsearg\appendixyyy}
-\def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz
-\def\appendixzzz #1{\seccheck{appendix}%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \appendixno by 1 \message{Appendix \appendixletter}%
-\chapmacro {#1}{\putwordAppendix{} \appendixletter}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-\xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash chapentry{\the\toks0}%
- {\putwordAppendix{} \appendixletter}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\appendixnoderef %
-\global\let\section = \appendixsec
-\global\let\subsection = \appendixsubsec
-\global\let\subsubsection = \appendixsubsubsec
-}}
-
-% @centerchap is like @unnumbered, but the heading is centered.
-\outer\def\centerchap{\parsearg\centerchapyyy}
-\def\centerchapyyy #1{{\let\unnumbchapmacro=\centerchapmacro \unnumberedyyy{#1}}}
-
-\outer\def\top{\parsearg\unnumberedyyy}
-\outer\def\unnumbered{\parsearg\unnumberedyyy}
-\def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
-\def\unnumberedzzz #1{\seccheck{unnumbered}%
-\secno=0 \subsecno=0 \subsubsecno=0
-%
-% This used to be simply \message{#1}, but TeX fully expands the
-% argument to \message. Therefore, if #1 contained @-commands, TeX
-% expanded them. For example, in `@unnumbered The @cite{Book}', TeX
-% expanded @cite (which turns out to cause errors because \cite is meant
-% to be executed, not expanded).
-%
-% Anyway, we don't want the fully-expanded definition of @cite to appear
-% as a result of the \message, we just want `@cite' itself. We use
-% \the<toks register> to achieve this: TeX expands \the<toks> only once,
-% simply yielding the contents of the <toks register>.
-\toks0 = {#1}\message{(\the\toks0)}%
-%
-\unnumbchapmacro {#1}%
-\gdef\thischapter{#1}\gdef\thissection{#1}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash unnumbchapentry{\the\toks0}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\global\let\section = \unnumberedsec
-\global\let\subsection = \unnumberedsubsec
-\global\let\subsubsection = \unnumberedsubsubsec
-}}
-
-\outer\def\numberedsec{\parsearg\secyyy}
-\def\secyyy #1{\numhead1{#1}} % normally calls seczzz
-\def\seczzz #1{\seccheck{section}%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash secentry %
-{\the\toks0}{\the\chapno}{\the\secno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\donoderef %
-\penalty 10000 %
-}}
-
-\outer\def\appendixsection{\parsearg\appendixsecyyy}
-\outer\def\appendixsec{\parsearg\appendixsecyyy}
-\def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz
-\def\appendixsectionzzz #1{\seccheck{appendixsection}%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash secentry %
-{\the\toks0}{\appendixletter}{\the\secno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\appendixnoderef %
-\penalty 10000 %
-}}
-
-\outer\def\unnumberedsec{\parsearg\unnumberedsecyyy}
-\def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz
-\def\unnumberedseczzz #1{\seccheck{unnumberedsec}%
-\plainsecheading {#1}\gdef\thissection{#1}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash unnumbsecentry{\the\toks0}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
-}}
-
-\outer\def\numberedsubsec{\parsearg\numberedsubsecyyy}
-\def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz
-\def\numberedsubseczzz #1{\seccheck{subsection}%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash subsecentry %
-{\the\toks0}{\the\chapno}{\the\secno}{\the\subsecno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\donoderef %
-\penalty 10000 %
-}}
-
-\outer\def\appendixsubsec{\parsearg\appendixsubsecyyy}
-\def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz
-\def\appendixsubseczzz #1{\seccheck{appendixsubsec}%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash subsecentry %
-{\the\toks0}{\appendixletter}{\the\secno}{\the\subsecno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\appendixnoderef %
-\penalty 10000 %
-}}
-
-\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy}
-\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
-\def\unnumberedsubseczzz #1{\seccheck{unnumberedsubsec}%
-\plainsubsecheading {#1}\gdef\thissection{#1}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash unnumbsubsecentry{\the\toks0}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
-}}
-
-\outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy}
-\def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz
-\def\numberedsubsubseczzz #1{\seccheck{subsubsection}%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
- {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash subsubsecentry{\the\toks0}
- {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}
- {\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\donoderef %
-\penalty 10000 %
-}}
-
-\outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy}
-\def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz
-\def\appendixsubsubseczzz #1{\seccheck{appendixsubsubsec}%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
- {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash subsubsecentry{\the\toks0}%
- {\appendixletter}
- {\the\secno}{\the\subsecno}{\the\subsubsecno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\appendixnoderef %
-\penalty 10000 %
-}}
-
-\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy}
-\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
-\def\unnumberedsubsubseczzz #1{\seccheck{unnumberedsubsubsec}%
-\plainsubsubsecheading {#1}\gdef\thissection{#1}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash unnumbsubsubsecentry{\the\toks0}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
-}}
-
-% These are variants which are not "outer", so they can appear in @ifinfo.
-% Actually, they should now be obsolete; ordinary section commands should work.
-\def\infotop{\parsearg\unnumberedzzz}
-\def\infounnumbered{\parsearg\unnumberedzzz}
-\def\infounnumberedsec{\parsearg\unnumberedseczzz}
-\def\infounnumberedsubsec{\parsearg\unnumberedsubseczzz}
-\def\infounnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz}
-
-\def\infoappendix{\parsearg\appendixzzz}
-\def\infoappendixsec{\parsearg\appendixseczzz}
-\def\infoappendixsubsec{\parsearg\appendixsubseczzz}
-\def\infoappendixsubsubsec{\parsearg\appendixsubsubseczzz}
-
-\def\infochapter{\parsearg\chapterzzz}
-\def\infosection{\parsearg\sectionzzz}
-\def\infosubsection{\parsearg\subsectionzzz}
-\def\infosubsubsection{\parsearg\subsubsectionzzz}
-
-% These macros control what the section commands do, according
-% to what kind of chapter we are in (ordinary, appendix, or unnumbered).
-% Define them by default for a numbered chapter.
-\global\let\section = \numberedsec
-\global\let\subsection = \numberedsubsec
-\global\let\subsubsection = \numberedsubsubsec
-
-% Define @majorheading, @heading and @subheading
-
-% NOTE on use of \vbox for chapter headings, section headings, and
-% such:
-% 1) We use \vbox rather than the earlier \line to permit
-% overlong headings to fold.
-% 2) \hyphenpenalty is set to 10000 because hyphenation in a
-% heading is obnoxious; this forbids it.
-% 3) Likewise, headings look best if no \parindent is used, and
-% if justification is not attempted. Hence \raggedright.
-
-
-\def\majorheading{\parsearg\majorheadingzzz}
-\def\majorheadingzzz #1{%
-{\advance\chapheadingskip by 10pt \chapbreak }%
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 200}
-
-\def\chapheading{\parsearg\chapheadingzzz}
-\def\chapheadingzzz #1{\chapbreak %
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 200}
-
-% @heading, @subheading, @subsubheading.
-\def\heading{\parsearg\plainsecheading}
-\def\subheading{\parsearg\plainsubsecheading}
-\def\subsubheading{\parsearg\plainsubsubsecheading}
-
-% These macros generate a chapter, section, etc. heading only
-% (including whitespace, linebreaking, etc. around it),
-% given all the information in convenient, parsed form.
-
-%%% Args are the skip and penalty (usually negative)
-\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
-
-\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
-
-%%% Define plain chapter starts, and page on/off switching for it
-% Parameter controlling skip before chapter headings (if needed)
-
-\newskip\chapheadingskip
-
-\def\chapbreak{\dobreak \chapheadingskip {-4000}}
-\def\chappager{\par\vfill\supereject}
-\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi}
-
-\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
-
-\def\CHAPPAGoff{
-\global\let\contentsalignmacro = \chappager
-\global\let\pchapsepmacro=\chapbreak
-\global\let\pagealignmacro=\chappager}
-
-\def\CHAPPAGon{
-\global\let\contentsalignmacro = \chappager
-\global\let\pchapsepmacro=\chappager
-\global\let\pagealignmacro=\chappager
-\global\def\HEADINGSon{\HEADINGSsingle}}
-
-\def\CHAPPAGodd{
-\global\let\contentsalignmacro = \chapoddpage
-\global\let\pchapsepmacro=\chapoddpage
-\global\let\pagealignmacro=\chapoddpage
-\global\def\HEADINGSon{\HEADINGSdouble}}
-
-\CHAPPAGon
-
-\def\CHAPFplain{
-\global\let\chapmacro=\chfplain
-\global\let\unnumbchapmacro=\unnchfplain
-\global\let\centerchapmacro=\centerchfplain}
-
-% Plain chapter opening.
-% #1 is the text, #2 the chapter number or empty if unnumbered.
-\def\chfplain#1#2{%
- \pchapsepmacro
- {%
- \chapfonts \rm
- \def\chapnum{#2}%
- \setbox0 = \hbox{#2\ifx\chapnum\empty\else\enspace\fi}%
- \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
- \hangindent = \wd0 \centerparametersmaybe
- \unhbox0 #1\par}%
- }%
- \nobreak\bigskip % no page break after a chapter title
- \nobreak
-}
-
-% Plain opening for unnumbered.
-\def\unnchfplain#1{\chfplain{#1}{}}
-
-% @centerchap -- centered and unnumbered.
-\let\centerparametersmaybe = \relax
-\def\centerchfplain#1{{%
- \def\centerparametersmaybe{%
- \advance\rightskip by 3\rightskip
- \leftskip = \rightskip
- \parfillskip = 0pt
- }%
- \chfplain{#1}{}%
-}}
-
-\CHAPFplain % The default
-
-\def\unnchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 10000 %
-}
-
-\def\chfopen #1#2{\chapoddpage {\chapfonts
-\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
-\par\penalty 5000 %
-}
-
-\def\centerchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt
- \hfill {\rm #1}\hfill}}\bigskip \par\penalty 10000 %
-}
-
-\def\CHAPFopen{
-\global\let\chapmacro=\chfopen
-\global\let\unnumbchapmacro=\unnchfopen
-\global\let\centerchapmacro=\centerchfopen}
-
-
-% Section titles.
-\newskip\secheadingskip
-\def\secheadingbreak{\dobreak \secheadingskip {-1000}}
-\def\secheading#1#2#3{\sectionheading{sec}{#2.#3}{#1}}
-\def\plainsecheading#1{\sectionheading{sec}{}{#1}}
-
-% Subsection titles.
-\newskip \subsecheadingskip
-\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}}
-\def\subsecheading#1#2#3#4{\sectionheading{subsec}{#2.#3.#4}{#1}}
-\def\plainsubsecheading#1{\sectionheading{subsec}{}{#1}}
-
-% Subsubsection titles.
-\let\subsubsecheadingskip = \subsecheadingskip
-\let\subsubsecheadingbreak = \subsecheadingbreak
-\def\subsubsecheading#1#2#3#4#5{\sectionheading{subsubsec}{#2.#3.#4.#5}{#1}}
-\def\plainsubsubsecheading#1{\sectionheading{subsubsec}{}{#1}}
-
-
-% Print any size section title.
-%
-% #1 is the section type (sec/subsec/subsubsec), #2 is the section
-% number (maybe empty), #3 the text.
-\def\sectionheading#1#2#3{%
- {%
- \expandafter\advance\csname #1headingskip\endcsname by \parskip
- \csname #1headingbreak\endcsname
- }%
- {%
- % Switch to the right set of fonts.
- \csname #1fonts\endcsname \rm
- %
- % Only insert the separating space if we have a section number.
- \def\secnum{#2}%
- \setbox0 = \hbox{#2\ifx\secnum\empty\else\enspace\fi}%
- %
- \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
- \hangindent = \wd0 % zero if no section number
- \unhbox0 #3}%
- }%
- \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak
-}
-
-
-\message{toc printing,}
-% Finish up the main text and prepare to read what we've written
-% to \contentsfile.
-
-\newskip\contentsrightmargin \contentsrightmargin=1in
-\def\startcontents#1{%
- % If @setchapternewpage on, and @headings double, the contents should
- % start on an odd page, unlike chapters. Thus, we maintain
- % \contentsalignmacro in parallel with \pagealignmacro.
- % From: Torbjorn Granlund <tege@matematik.su.se>
- \contentsalignmacro
- \immediate\closeout \contentsfile
- \ifnum \pageno>0
- \pageno = -1 % Request roman numbered pages.
- \fi
- % Don't need to put `Contents' or `Short Contents' in the headline.
- % It is abundantly clear what they are.
- \unnumbchapmacro{#1}\def\thischapter{}%
- \begingroup % Set up to handle contents files properly.
- \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11
- % We can't do this, because then an actual ^ in a section
- % title fails, e.g., @chapter ^ -- exponentiation. --karl, 9jul97.
- %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi
- \raggedbottom % Worry more about breakpoints than the bottom.
- \advance\hsize by -\contentsrightmargin % Don't use the full line length.
-}
-
-
-% Normal (long) toc.
-\outer\def\contents{%
- \startcontents{\putwordTableofContents}%
- \input \jobname.toc
- \endgroup
- \vfill \eject
-}
-
-% And just the chapters.
-\outer\def\summarycontents{%
- \startcontents{\putwordShortContents}%
- %
- \let\chapentry = \shortchapentry
- \let\unnumbchapentry = \shortunnumberedentry
- % We want a true roman here for the page numbers.
- \secfonts
- \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl
- \rm
- \hyphenpenalty = 10000
- \advance\baselineskip by 1pt % Open it up a little.
- \def\secentry ##1##2##3##4{}
- \def\unnumbsecentry ##1##2{}
- \def\subsecentry ##1##2##3##4##5{}
- \def\unnumbsubsecentry ##1##2{}
- \def\subsubsecentry ##1##2##3##4##5##6{}
- \def\unnumbsubsubsecentry ##1##2{}
- \input \jobname.toc
- \endgroup
- \vfill \eject
-}
-\let\shortcontents = \summarycontents
-
-% These macros generate individual entries in the table of contents.
-% The first argument is the chapter or section name.
-% The last argument is the page number.
-% The arguments in between are the chapter number, section number, ...
-
-% Chapter-level things, for both the long and short contents.
-\def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}}
-
-% See comments in \dochapentry re vbox and related settings
-\def\shortchapentry#1#2#3{%
- \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno{#3}}%
-}
-
-% Typeset the label for a chapter or appendix for the short contents.
-% The arg is, e.g. `Appendix A' for an appendix, or `3' for a chapter.
-% We could simplify the code here by writing out an \appendixentry
-% command in the toc file for appendices, instead of using \chapentry
-% for both, but it doesn't seem worth it.
-\setbox0 = \hbox{\shortcontrm \putwordAppendix }
-\newdimen\shortappendixwidth \shortappendixwidth = \wd0
-
-\def\shortchaplabel#1{%
- % We typeset #1 in a box of constant width, regardless of the text of
- % #1, so the chapter titles will come out aligned.
- \setbox0 = \hbox{#1}%
- \dimen0 = \ifdim\wd0 > \shortappendixwidth \shortappendixwidth \else 0pt \fi
- %
- % This space should be plenty, since a single number is .5em, and the
- % widest letter (M) is 1em, at least in the Computer Modern fonts.
- % (This space doesn't include the extra space that gets added after
- % the label; that gets put in by \shortchapentry above.)
- \advance\dimen0 by 1.1em
- \hbox to \dimen0{#1\hfil}%
-}
-
-\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}}
-\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno{#2}}}
-
-% Sections.
-\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}}
-\def\unnumbsecentry#1#2{\dosecentry{#1}{#2}}
-
-% Subsections.
-\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}}
-\def\unnumbsubsecentry#1#2{\dosubsecentry{#1}{#2}}
-
-% And subsubsections.
-\def\subsubsecentry#1#2#3#4#5#6{%
- \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}}
-\def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}}
-
-% This parameter controls the indentation of the various levels.
-\newdimen\tocindent \tocindent = 3pc
-
-% Now for the actual typesetting. In all these, #1 is the text and #2 is the
-% page number.
-%
-% If the toc has to be broken over pages, we want it to be at chapters
-% if at all possible; hence the \penalty.
-\def\dochapentry#1#2{%
- \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
- \begingroup
- \chapentryfonts
- \tocentry{#1}{\dopageno{#2}}%
- \endgroup
- \nobreak\vskip .25\baselineskip plus.1\baselineskip
-}
-
-\def\dosecentry#1#2{\begingroup
- \secentryfonts \leftskip=\tocindent
- \tocentry{#1}{\dopageno{#2}}%
-\endgroup}
-
-\def\dosubsecentry#1#2{\begingroup
- \subsecentryfonts \leftskip=2\tocindent
- \tocentry{#1}{\dopageno{#2}}%
-\endgroup}
-
-\def\dosubsubsecentry#1#2{\begingroup
- \subsubsecentryfonts \leftskip=3\tocindent
- \tocentry{#1}{\dopageno{#2}}%
-\endgroup}
-
-% Final typesetting of a toc entry; we use the same \entry macro as for
-% the index entries, but we want to suppress hyphenation here. (We
-% can't do that in the \entry macro, since index entries might consist
-% of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.)
-\def\tocentry#1#2{\begingroup
- \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks
- % Do not use \turnoffactive in these arguments. Since the toc is
- % typeset in cmr, so characters such as _ would come out wrong; we
- % have to do the usual translation tricks.
- \entry{#1}{#2}%
-\endgroup}
-
-% Space between chapter (or whatever) number and the title.
-\def\labelspace{\hskip1em \relax}
-
-\def\dopageno#1{{\rm #1}}
-\def\doshortpageno#1{{\rm #1}}
-
-\def\chapentryfonts{\secfonts \rm}
-\def\secentryfonts{\textfonts}
-\let\subsecentryfonts = \textfonts
-\let\subsubsecentryfonts = \textfonts
-
-
-\message{environments,}
-
-% Since these characters are used in examples, it should be an even number of
-% \tt widths. Each \tt character is 1en, so two makes it 1em.
-% Furthermore, these definitions must come after we define our fonts.
-\newbox\dblarrowbox \newbox\longdblarrowbox
-\newbox\pushcharbox \newbox\bullbox
-\newbox\equivbox \newbox\errorbox
-
-%{\tentt
-%\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil}
-%\global\setbox\longdblarrowbox = \hbox to 1em{\hfil$\mapsto$\hfil}
-%\global\setbox\pushcharbox = \hbox to 1em{\hfil$\dashv$\hfil}
-%\global\setbox\equivbox = \hbox to 1em{\hfil$\ptexequiv$\hfil}
-% Adapted from the manmac format (p.420 of TeXbook)
-%\global\setbox\bullbox = \hbox to 1em{\kern.15em\vrule height .75ex width .85ex
-% depth .1ex\hfil}
-%}
-
-% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
-\def\point{$\star$}
-\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
-\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
-\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
-\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
-
-% Adapted from the TeXbook's \boxit.
-{\tentt \global\dimen0 = 3em}% Width of the box.
-\dimen2 = .55pt % Thickness of rules
-% The text. (`r' is open on the right, `e' somewhat less so on the left.)
-\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
-
-\global\setbox\errorbox=\hbox to \dimen0{\hfil
- \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
- \advance\hsize by -2\dimen2 % Rules.
- \vbox{
- \hrule height\dimen2
- \hbox{\vrule width\dimen2 \kern3pt % Space to left of text.
- \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
- \kern3pt\vrule width\dimen2}% Space to right.
- \hrule height\dimen2}
- \hfil}
-
-% The @error{} command.
-\def\error{\leavevmode\lower.7ex\copy\errorbox}
-
-% @tex ... @end tex escapes into raw Tex temporarily.
-% One exception: @ is still an escape character, so that @end tex works.
-% But \@ or @@ will get a plain tex @ character.
-
-\def\tex{\begingroup
- \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
- \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
- \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie
- \catcode `\%=14
- \catcode 43=12 % plus
- \catcode`\"=12
- \catcode`\==12
- \catcode`\|=12
- \catcode`\<=12
- \catcode`\>=12
- \escapechar=`\\
- %
- \let\b=\ptexb
- \let\bullet=\ptexbullet
- \let\c=\ptexc
- \let\,=\ptexcomma
- \let\.=\ptexdot
- \let\dots=\ptexdots
- \let\equiv=\ptexequiv
- \let\!=\ptexexclam
- \let\i=\ptexi
- \let\{=\ptexlbrace
- \let\}=\ptexrbrace
- \let\*=\ptexstar
- \let\t=\ptext
- %
- \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
- \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
- \def\@{@}%
-\let\Etex=\endgroup}
-
-% Define @lisp ... @endlisp.
-% @lisp does a \begingroup so it can rebind things,
-% including the definition of @endlisp (which normally is erroneous).
-
-% Amount to narrow the margins by for @lisp.
-\newskip\lispnarrowing \lispnarrowing=0.4in
-
-% This is the definition that ^^M gets inside @lisp, @example, and other
-% such environments. \null is better than a space, since it doesn't
-% have any width.
-\def\lisppar{\null\endgraf}
-
-% Make each space character in the input produce a normal interword
-% space in the output. Don't allow a line break at this space, as this
-% is used only in environments like @example, where each line of input
-% should produce a line of output anyway.
-%
-{\obeyspaces %
-\gdef\sepspaces{\obeyspaces\let =\tie}}
-
-% Define \obeyedspace to be our active space, whatever it is. This is
-% for use in \parsearg.
-{\sepspaces%
-\global\let\obeyedspace= }
-
-% This space is always present above and below environments.
-\newskip\envskipamount \envskipamount = 0pt
-
-% Make spacing and below environment symmetrical. We use \parskip here
-% to help in doing that, since in @example-like environments \parskip
-% is reset to zero; thus the \afterenvbreak inserts no space -- but the
-% start of the next paragraph will insert \parskip
-%
-\def\aboveenvbreak{{\advance\envskipamount by \parskip
-\endgraf \ifdim\lastskip<\envskipamount
-\removelastskip \penalty-50 \vskip\envskipamount \fi}}
-
-\let\afterenvbreak = \aboveenvbreak
-
-% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins.
-\let\nonarrowing=\relax
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \cartouche: draw rectangle w/rounded corners around argument
-\font\circle=lcircle10
-\newdimen\circthick
-\newdimen\cartouter\newdimen\cartinner
-\newskip\normbskip\newskip\normpskip\newskip\normlskip
-\circthick=\fontdimen8\circle
-%
-\def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth
-\def\ctr{{\hskip 6pt\circle\char'010}}
-\def\cbl{{\circle\char'012\hskip -6pt}}
-\def\cbr{{\hskip 6pt\circle\char'011}}
-\def\carttop{\hbox to \cartouter{\hskip\lskip
- \ctl\leaders\hrule height\circthick\hfil\ctr
- \hskip\rskip}}
-\def\cartbot{\hbox to \cartouter{\hskip\lskip
- \cbl\leaders\hrule height\circthick\hfil\cbr
- \hskip\rskip}}
-%
-\newskip\lskip\newskip\rskip
-
-\long\def\cartouche{%
-\begingroup
- \lskip=\leftskip \rskip=\rightskip
- \leftskip=0pt\rightskip=0pt %we want these *outside*.
- \cartinner=\hsize \advance\cartinner by-\lskip
- \advance\cartinner by-\rskip
- \cartouter=\hsize
- \advance\cartouter by 18pt % allow for 3pt kerns on either
-% side, and for 6pt waste from
-% each corner char
- \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
- % Flag to tell @lisp, etc., not to narrow margin.
- \let\nonarrowing=\comment
- \vbox\bgroup
- \baselineskip=0pt\parskip=0pt\lineskip=0pt
- \carttop
- \hbox\bgroup
- \hskip\lskip
- \vrule\kern3pt
- \vbox\bgroup
- \hsize=\cartinner
- \kern3pt
- \begingroup
- \baselineskip=\normbskip
- \lineskip=\normlskip
- \parskip=\normpskip
- \vskip -\parskip
-\def\Ecartouche{%
- \endgroup
- \kern3pt
- \egroup
- \kern3pt\vrule
- \hskip\rskip
- \egroup
- \cartbot
- \egroup
-\endgroup
-}}
-
-
-% This macro is called at the beginning of all the @example variants,
-% inside a group.
-\def\nonfillstart{%
- \aboveenvbreak
- \inENV % This group ends at the end of the body
- \hfuzz = 12pt % Don't be fussy
- \sepspaces % Make spaces be word-separators rather than space tokens.
- \singlespace
- \let\par = \lisppar % don't ignore blank lines
- \obeylines % each line of input is a line of output
- \parskip = 0pt
- \parindent = 0pt
- \emergencystretch = 0pt % don't try to avoid overfull boxes
- % @cartouche defines \nonarrowing to inhibit narrowing
- % at next level down.
- \ifx\nonarrowing\relax
- \advance \leftskip by \lispnarrowing
- \exdentamount=\lispnarrowing
- \let\exdent=\nofillexdent
- \let\nonarrowing=\relax
- \fi
-}
-
-% To ending an @example-like environment, we first end the paragraph
-% (via \afterenvbreak's vertical glue), and then the group. That way we
-% keep the zero \parskip that the environments set -- \parskip glue
-% will be inserted at the beginning of the next paragraph in the
-% document, after the environment.
-%
-\def\nonfillfinish{\afterenvbreak\endgroup}%
-
-\def\lisp{\begingroup
- \nonfillstart
- \let\Elisp = \nonfillfinish
- \tt
- % Make @kbd do something special, if requested.
- \let\kbdfont\kbdexamplefont
- \rawbackslash % have \ input char produce \ char from current font
- \gobble
-}
-
-% Define the \E... control sequence only if we are inside the
-% environment, so the error checking in \end will work.
-%
-% We must call \lisp last in the definition, since it reads the
-% return following the @example (or whatever) command.
-%
-\def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp}
-\def\smallexample{\begingroup \def\Esmallexample{\nonfillfinish\endgroup}\lisp}
-\def\smalllisp{\begingroup \def\Esmalllisp{\nonfillfinish\endgroup}\lisp}
-
-% @smallexample and @smalllisp. This is not used unless the @smallbook
-% command is given. Originally contributed by Pavel@xerox.
-%
-\def\smalllispx{\begingroup
- \nonfillstart
- \let\Esmalllisp = \nonfillfinish
- \let\Esmallexample = \nonfillfinish
- %
- % Smaller fonts for small examples.
- \indexfonts \tt
- \rawbackslash % make \ output the \ character from the current font (tt)
- \gobble
-}
-
-% This is @display; same as @lisp except use roman font.
-%
-\def\display{\begingroup
- \nonfillstart
- \let\Edisplay = \nonfillfinish
- \gobble
-}
-
-% This is @format; same as @display except don't narrow margins.
-%
-\def\format{\begingroup
- \let\nonarrowing = t
- \nonfillstart
- \let\Eformat = \nonfillfinish
- \gobble
-}
-
-% @flushleft (same as @format) and @flushright.
-%
-\def\flushleft{\begingroup
- \let\nonarrowing = t
- \nonfillstart
- \let\Eflushleft = \nonfillfinish
- \gobble
-}
-\def\flushright{\begingroup
- \let\nonarrowing = t
- \nonfillstart
- \let\Eflushright = \nonfillfinish
- \advance\leftskip by 0pt plus 1fill
- \gobble}
-
-% @quotation does normal linebreaking (hence we can't use \nonfillstart)
-% and narrows the margins.
-%
-\def\quotation{%
- \begingroup\inENV %This group ends at the end of the @quotation body
- {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
- \singlespace
- \parindent=0pt
- % We have retained a nonzero parskip for the environment, since we're
- % doing normal filling. So to avoid extra space below the environment...
- \def\Equotation{\parskip = 0pt \nonfillfinish}%
- %
- % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
- \ifx\nonarrowing\relax
- \advance\leftskip by \lispnarrowing
- \advance\rightskip by \lispnarrowing
- \exdentamount = \lispnarrowing
- \let\nonarrowing = \relax
- \fi
-}
-
-\message{defuns,}
-% Define formatter for defuns
-% First, allow user to change definition object font (\df) internally
-\def\setdeffont #1 {\csname DEF#1\endcsname}
-
-\newskip\defbodyindent \defbodyindent=.4in
-\newskip\defargsindent \defargsindent=50pt
-\newskip\deftypemargin \deftypemargin=12pt
-\newskip\deflastargmargin \deflastargmargin=18pt
-
-\newcount\parencount
-% define \functionparens, which makes ( and ) and & do special things.
-% \functionparens affects the group it is contained in.
-\def\activeparens{%
-\catcode`\(=\active \catcode`\)=\active \catcode`\&=\active
-\catcode`\[=\active \catcode`\]=\active}
-
-% Make control sequences which act like normal parenthesis chars.
-\let\lparen = ( \let\rparen = )
-
-{\activeparens % Now, smart parens don't turn on until &foo (see \amprm)
-
-% Be sure that we always have a definition for `(', etc. For example,
-% if the fn name has parens in it, \boldbrax will not be in effect yet,
-% so TeX would otherwise complain about undefined control sequence.
-\global\let(=\lparen \global\let)=\rparen
-\global\let[=\lbrack \global\let]=\rbrack
-
-\gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 }
-\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
-% This is used to turn on special parens
-% but make & act ordinary (given that it's active).
-\gdef\boldbraxnoamp{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb\let&=\ampnr}
-
-% Definitions of (, ) and & used in args for functions.
-% This is the definition of ( outside of all parentheses.
-\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested
- \global\advance\parencount by 1
-}
-%
-% This is the definition of ( when already inside a level of parens.
-\gdef\opnested{\char`\(\global\advance\parencount by 1 }
-%
-\gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0.
- % also in that case restore the outer-level definition of (.
- \ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi
- \global\advance \parencount by -1 }
-% If we encounter &foo, then turn on ()-hacking afterwards
-\gdef\amprm#1 {{\rm\&#1}\let(=\oprm \let)=\clrm\ }
-%
-\gdef\normalparens{\boldbrax\let&=\ampnr}
-} % End of definition inside \activeparens
-%% These parens (in \boldbrax) actually are a little bolder than the
-%% contained text. This is especially needed for [ and ]
-\def\opnr{{\sf\char`\(}\global\advance\parencount by 1 }
-\def\clnr{{\sf\char`\)}\global\advance\parencount by -1 }
-\def\ampnr{\&}
-\def\lbrb{{\bf\char`\[}}
-\def\rbrb{{\bf\char`\]}}
-
-% First, defname, which formats the header line itself.
-% #1 should be the function name.
-% #2 should be the type of definition, such as "Function".
-
-\def\defname #1#2{%
-% Get the values of \leftskip and \rightskip as they were
-% outside the @def...
-\dimen2=\leftskip
-\advance\dimen2 by -\defbodyindent
-\dimen3=\rightskip
-\advance\dimen3 by -\defbodyindent
-\noindent %
-\setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}%
-\dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line
-\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations
-\parshape 2 0in \dimen0 \defargsindent \dimen1 %
-% Now output arg 2 ("Function" or some such)
-% ending at \deftypemargin from the right margin,
-% but stuck inside a box of width 0 so it does not interfere with linebreaking
-{% Adjust \hsize to exclude the ambient margins,
-% so that \rightline will obey them.
-\advance \hsize by -\dimen2 \advance \hsize by -\dimen3
-\rlap{\rightline{{\rm #2}\hskip \deftypemargin}}}%
-% Make all lines underfull and no complaints:
-\tolerance=10000 \hbadness=10000
-\advance\leftskip by -\defbodyindent
-\exdentamount=\defbodyindent
-{\df #1}\enskip % Generate function name
-}
-
-% Actually process the body of a definition
-% #1 should be the terminating control sequence, such as \Edefun.
-% #2 should be the "another name" control sequence, such as \defunx.
-% #3 should be the control sequence that actually processes the header,
-% such as \defunheader.
-
-\def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\activeparens\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active % 61 is `='
-\obeylines\activeparens\spacesplit#3}
-
-\def\defmethparsebody #1#2#3#4 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#4}}}
-
-\def\defopparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\activeparens\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#5}}}
-
-% These parsing functions are similar to the preceding ones
-% except that they do not make parens into active characters.
-% These are used for "variables" since they have no arguments.
-
-\def\defvarparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active %
-\obeylines\spacesplit#3}
-
-% This is used for \def{tp,vr}parsebody. It could probably be used for
-% some of the others, too, with some judicious conditionals.
-%
-\def\parsebodycommon#1#2#3{%
- \begingroup\inENV %
- \medbreak %
- % Define the end token that this defining construct specifies
- % so that it will exit this group.
- \def#1{\endgraf\endgroup\medbreak}%
- \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}%
- \parindent=0in
- \advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
- \exdentamount=\defbodyindent
- \begingroup\obeylines
-}
-
-\def\defvrparsebody#1#2#3#4 {%
- \parsebodycommon{#1}{#2}{#3}%
- \spacesplit{#3{#4}}%
-}
-
-% This loses on `@deftp {Data Type} {struct termios}' -- it thinks the
-% type is just `struct', because we lose the braces in `{struct
-% termios}' when \spacesplit reads its undelimited argument. Sigh.
-% \let\deftpparsebody=\defvrparsebody
-%
-% So, to get around this, we put \empty in with the type name. That
-% way, TeX won't find exactly `{...}' as an undelimited argument, and
-% won't strip off the braces.
-%
-\def\deftpparsebody #1#2#3#4 {%
- \parsebodycommon{#1}{#2}{#3}%
- \spacesplit{\parsetpheaderline{#3{#4}}}\empty
-}
-
-% Fine, but then we have to eventually remove the \empty *and* the
-% braces (if any). That's what this does.
-%
-\def\removeemptybraces\empty#1\relax{#1}
-
-% After \spacesplit has done its work, this is called -- #1 is the final
-% thing to call, #2 the type name (which starts with \empty), and #3
-% (which might be empty) the arguments.
-%
-\def\parsetpheaderline#1#2#3{%
- #1{\removeemptybraces#2\relax}{#3}%
-}%
-
-\def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\spacesplit{#3{#5}}}
-
-% Split up #2 at the first space token.
-% call #1 with two arguments:
-% the first is all of #2 before the space token,
-% the second is all of #2 after that space token.
-% If #2 contains no space token, all of it is passed as the first arg
-% and the second is passed as empty.
-
-{\obeylines
-\gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}%
-\long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{%
-\ifx\relax #3%
-#1{#2}{}\else #1{#2}{#3#4}\fi}}
-
-% So much for the things common to all kinds of definitions.
-
-% Define @defun.
-
-% First, define the processing that is wanted for arguments of \defun
-% Use this to expand the args and terminate the paragraph they make up
-
-\def\defunargs #1{\functionparens \sl
-% Expand, preventing hyphenation at `-' chars.
-% Note that groups don't affect changes in \hyphenchar.
-\hyphenchar\tensl=0
-#1%
-\hyphenchar\tensl=45
-\ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi%
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\penalty 10000\vskip -\parskip\penalty 10000%
-}
-
-\def\deftypefunargs #1{%
-% Expand, preventing hyphenation at `-' chars.
-% Note that groups don't affect changes in \hyphenchar.
-% Use \boldbraxnoamp, not \functionparens, so that & is not special.
-\boldbraxnoamp
-\tclose{#1}% avoid \code because of side effects on active chars
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\penalty 10000\vskip -\parskip\penalty 10000%
-}
-
-% Do complete processing of one @defun or @defunx line already parsed.
-
-% @deffn Command forward-char nchars
-
-\def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader}
-
-\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defun == @deffn Function
-
-\def\defun{\defparsebody\Edefun\defunx\defunheader}
-
-\def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Function}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @deftypefun int foobar (int @var{foo}, float @var{bar})
-
-\def\deftypefun{\defparsebody\Edeftypefun\deftypefunx\deftypefunheader}
-
-% #1 is the data type. #2 is the name and args.
-\def\deftypefunheader #1#2{\deftypefunheaderx{#1}#2 \relax}
-% #1 is the data type, #2 the name, #3 the args.
-\def\deftypefunheaderx #1#2 #3\relax{%
-\doind {fn}{\code{#2}}% Make entry in function index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{Function}%
-\deftypefunargs {#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar})
-
-\def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader}
-
-% \defheaderxcond#1\relax$$$
-% puts #1 in @code, followed by a space, but does nothing if #1 is null.
-\def\defheaderxcond#1#2$$${\ifx#1\relax\else\code{#1#2} \fi}
-
-% #1 is the classification. #2 is the data type. #3 is the name and args.
-\def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax}
-% #1 is the classification, #2 the data type, #3 the name, #4 the args.
-\def\deftypefnheaderx #1#2#3 #4\relax{%
-\doind {fn}{\code{#3}}% Make entry in function index
-\begingroup
-\normalparens % notably, turn off `&' magic, which prevents
-% at least some C++ text from working
-\defname {\defheaderxcond#2\relax$$$#3}{#1}%
-\deftypefunargs {#4}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defmac == @deffn Macro
-
-\def\defmac{\defparsebody\Edefmac\defmacx\defmacheader}
-
-\def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Macro}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defspec == @deffn Special Form
-
-\def\defspec{\defparsebody\Edefspec\defspecx\defspecheader}
-
-\def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Special Form}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% This definition is run if you use @defunx
-% anywhere other than immediately after a @defun or @defunx.
-
-\def\deffnx #1 {\errmessage{@deffnx in invalid context}}
-\def\defunx #1 {\errmessage{@defunx in invalid context}}
-\def\defmacx #1 {\errmessage{@defmacx in invalid context}}
-\def\defspecx #1 {\errmessage{@defspecx in invalid context}}
-\def\deftypefnx #1 {\errmessage{@deftypefnx in invalid context}}
-\def\deftypemethodx #1 {\errmessage{@deftypemethodx in invalid context}}
-\def\deftypeunx #1 {\errmessage{@deftypeunx in invalid context}}
-
-% @defmethod, and so on
-
-% @defop {Funny Method} foo-class frobnicate argument
-
-\def\defop #1 {\def\defoptype{#1}%
-\defopparsebody\Edefop\defopx\defopheader\defoptype}
-
-\def\defopheader #1#2#3{%
-\dosubind {fn}{\code{#2}}{on #1}% Make entry in function index
-\begingroup\defname {#2}{\defoptype{} on #1}%
-\defunargs {#3}\endgroup %
-}
-
-% @deftypemethod foo-class return-type foo-method args
-%
-\def\deftypemethod{%
- \defmethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader}
-%
-% #1 is the class name, #2 the data type, #3 the method name, #4 the args.
-\def\deftypemethodheader#1#2#3#4{%
- \deftypefnheaderx{Method on #1}{#2}#3 #4\relax
-}
-
-% @defmethod == @defop Method
-
-\def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader}
-
-\def\defmethodheader #1#2#3{%
-\dosubind {fn}{\code{#2}}{on #1}% entry in function index
-\begingroup\defname {#2}{Method on #1}%
-\defunargs {#3}\endgroup %
-}
-
-% @defcv {Class Option} foo-class foo-flag
-
-\def\defcv #1 {\def\defcvtype{#1}%
-\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}
-
-\def\defcvarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index
-\begingroup\defname {#2}{\defcvtype{} of #1}%
-\defvarargs {#3}\endgroup %
-}
-
-% @defivar == @defcv {Instance Variable}
-
-\def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader}
-
-\def\defivarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index
-\begingroup\defname {#2}{Instance Variable of #1}%
-\defvarargs {#3}\endgroup %
-}
-
-% These definitions are run if you use @defmethodx, etc.,
-% anywhere other than immediately after a @defmethod, etc.
-
-\def\defopx #1 {\errmessage{@defopx in invalid context}}
-\def\defmethodx #1 {\errmessage{@defmethodx in invalid context}}
-\def\defcvx #1 {\errmessage{@defcvx in invalid context}}
-\def\defivarx #1 {\errmessage{@defivarx in invalid context}}
-
-% Now @defvar
-
-% First, define the processing that is wanted for arguments of @defvar.
-% This is actually simple: just print them in roman.
-% This must expand the args and terminate the paragraph they make up
-\def\defvarargs #1{\normalparens #1%
-\interlinepenalty=10000
-\endgraf\penalty 10000\vskip -\parskip\penalty 10000}
-
-% @defvr Counter foo-count
-
-\def\defvr{\defvrparsebody\Edefvr\defvrx\defvrheader}
-
-\def\defvrheader #1#2#3{\doind {vr}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup}
-
-% @defvar == @defvr Variable
-
-\def\defvar{\defvarparsebody\Edefvar\defvarx\defvarheader}
-
-\def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{Variable}%
-\defvarargs {#2}\endgroup %
-}
-
-% @defopt == @defvr {User Option}
-
-\def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader}
-
-\def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{User Option}%
-\defvarargs {#2}\endgroup %
-}
-
-% @deftypevar int foobar
-
-\def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader}
-
-% #1 is the data type. #2 is the name, perhaps followed by text that
-% is actually part of the data type, which should not be put into the index.
-\def\deftypevarheader #1#2{%
-\dovarind#2 \relax% Make entry in variables index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{Variable}%
-\interlinepenalty=10000
-\endgraf\penalty 10000\vskip -\parskip\penalty 10000
-\endgroup}
-\def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}}
-
-% @deftypevr {Global Flag} int enable
-
-\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader}
-
-\def\deftypevrheader #1#2#3{\dovarind#3 \relax%
-\begingroup\defname {\defheaderxcond#2\relax$$$#3}{#1}
-\interlinepenalty=10000
-\endgraf\penalty 10000\vskip -\parskip\penalty 10000
-\endgroup}
-
-% This definition is run if you use @defvarx
-% anywhere other than immediately after a @defvar or @defvarx.
-
-\def\defvrx #1 {\errmessage{@defvrx in invalid context}}
-\def\defvarx #1 {\errmessage{@defvarx in invalid context}}
-\def\defoptx #1 {\errmessage{@defoptx in invalid context}}
-\def\deftypevarx #1 {\errmessage{@deftypevarx in invalid context}}
-\def\deftypevrx #1 {\errmessage{@deftypevrx in invalid context}}
-
-% Now define @deftp
-% Args are printed in bold, a slight difference from @defvar.
-
-\def\deftpargs #1{\bf \defvarargs{#1}}
-
-% @deftp Class window height width ...
-
-\def\deftp{\deftpparsebody\Edeftp\deftpx\deftpheader}
-
-\def\deftpheader #1#2#3{\doind {tp}{\code{#2}}%
-\begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup}
-
-% This definition is run if you use @deftpx, etc
-% anywhere other than immediately after a @deftp, etc.
-
-\def\deftpx #1 {\errmessage{@deftpx in invalid context}}
-
-
-\message{cross reference,}
-% Define cross-reference macros
-\newwrite \auxfile
-
-\newif\ifhavexrefs % True if xref values are known.
-\newif\ifwarnedxrefs % True if we warned once that they aren't known.
-
-% @inforef is simple.
-\def\inforef #1{\inforefzzz #1,,,,**}
-\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
- node \samp{\ignorespaces#1{}}}
-
-% \setref{foo} defines a cross-reference point named foo.
-
-\def\setref#1{%
-\dosetq{#1-title}{Ytitle}%
-\dosetq{#1-pg}{Ypagenumber}%
-\dosetq{#1-snt}{Ysectionnumberandtype}}
-
-\def\unnumbsetref#1{%
-\dosetq{#1-title}{Ytitle}%
-\dosetq{#1-pg}{Ypagenumber}%
-\dosetq{#1-snt}{Ynothing}}
-
-\def\appendixsetref#1{%
-\dosetq{#1-title}{Ytitle}%
-\dosetq{#1-pg}{Ypagenumber}%
-\dosetq{#1-snt}{Yappendixletterandtype}}
-
-% \xref, \pxref, and \ref generate cross-references to specified points.
-% For \xrefX, #1 is the node name, #2 the name of the Info
-% cross-reference, #3 the printed node name, #4 the name of the Info
-% file, #5 the name of the printed manual. All but the node name can be
-% omitted.
-%
-\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
-\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
-\def\ref#1{\xrefX[#1,,,,,,,]}
-\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
- \def\printedmanual{\ignorespaces #5}%
- \def\printednodename{\ignorespaces #3}%
- \setbox1=\hbox{\printedmanual}%
- \setbox0=\hbox{\printednodename}%
- \ifdim \wd0 = 0pt
- % No printed node name was explicitly given.
- \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
- % Use the node name inside the square brackets.
- \def\printednodename{\ignorespaces #1}%
- \else
- % Use the actual chapter/section title appear inside
- % the square brackets. Use the real section title if we have it.
- \ifdim \wd1>0pt%
- % It is in another manual, so we don't have it.
- \def\printednodename{\ignorespaces #1}%
- \else
- \ifhavexrefs
- % We know the real title if we have the xref values.
- \def\printednodename{\refx{#1-title}{}}%
- \else
- % Otherwise just copy the Info node name.
- \def\printednodename{\ignorespaces #1}%
- \fi%
- \fi
- \fi
- \fi
- %
- % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
- % insert empty discretionaries after hyphens, which means that it will
- % not find a line break at a hyphen in a node names. Since some manuals
- % are best written with fairly long node names, containing hyphens, this
- % is a loss. Therefore, we give the text of the node name again, so it
- % is as if TeX is seeing it for the first time.
- \ifdim \wd1 > 0pt
- \putwordsection{} ``\printednodename'' in \cite{\printedmanual}%
- \else
- % _ (for example) has to be the character _ for the purposes of the
- % control sequence corresponding to the node, but it has to expand
- % into the usual \leavevmode...\vrule stuff for purposes of
- % printing. So we \turnoffactive for the \refx-snt, back on for the
- % printing, back off for the \refx-pg.
- {\turnoffactive \refx{#1-snt}{}}%
- \space [\printednodename],\space
- \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
- \fi
-\endgroup}
-
-% \dosetq is the interface for calls from other macros
-
-% Use \turnoffactive so that punctuation chars such as underscore
-% work in node names.
-\def\dosetq #1#2{{\let\folio=0 \turnoffactive
-\edef\next{\write\auxfile{\internalsetq {#1}{#2}}}%
-\next}}
-
-% \internalsetq {foo}{page} expands into
-% CHARACTERS 'xrdef {foo}{...expansion of \Ypage...}
-% When the aux file is read, ' is the escape character
-
-\def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}}
-
-% Things to be expanded by \internalsetq
-
-\def\Ypagenumber{\folio}
-
-\def\Ytitle{\thissection}
-
-\def\Ynothing{}
-
-\def\Ysectionnumberandtype{%
-\ifnum\secno=0 \putwordChapter\xreftie\the\chapno %
-\else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
-
-\def\Yappendixletterandtype{%
-\ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}%
-\else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
-
-\gdef\xreftie{'tie}
-
-% Use TeX 3.0's \inputlineno to get the line number, for better error
-% messages, but if we're using an old version of TeX, don't do anything.
-%
-\ifx\inputlineno\thisisundefined
- \let\linenumber = \empty % Non-3.0.
-\else
- \def\linenumber{\the\inputlineno:\space}
-\fi
-
-% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
-% If its value is nonempty, SUFFIX is output afterward.
-
-\def\refx#1#2{%
- \expandafter\ifx\csname X#1\endcsname\relax
- % If not defined, say something at least.
- \angleleft un\-de\-fined\angleright
- \ifhavexrefs
- \message{\linenumber Undefined cross reference `#1'.}%
- \else
- \ifwarnedxrefs\else
- \global\warnedxrefstrue
- \message{Cross reference values unknown; you must run TeX again.}%
- \fi
- \fi
- \else
- % It's defined, so just use it.
- \csname X#1\endcsname
- \fi
- #2% Output the suffix in any case.
-}
-
-% This is the macro invoked by entries in the aux file.
-%
-\def\xrdef#1{\begingroup
- % Reenable \ as an escape while reading the second argument.
- \catcode`\\ = 0
- \afterassignment\endgroup
- \expandafter\gdef\csname X#1\endcsname
-}
-
-% Read the last existing aux file, if any. No error if none exists.
-\def\readauxfile{\begingroup
- \catcode`\^^@=\other
- \catcode`\^^A=\other
- \catcode`\^^B=\other
- \catcode`\^^C=\other
- \catcode`\^^D=\other
- \catcode`\^^E=\other
- \catcode`\^^F=\other
- \catcode`\^^G=\other
- \catcode`\^^H=\other
- \catcode`\^^K=\other
- \catcode`\^^L=\other
- \catcode`\^^N=\other
- \catcode`\^^P=\other
- \catcode`\^^Q=\other
- \catcode`\^^R=\other
- \catcode`\^^S=\other
- \catcode`\^^T=\other
- \catcode`\^^U=\other
- \catcode`\^^V=\other
- \catcode`\^^W=\other
- \catcode`\^^X=\other
- \catcode`\^^Z=\other
- \catcode`\^^[=\other
- \catcode`\^^\=\other
- \catcode`\^^]=\other
- \catcode`\^^^=\other
- \catcode`\^^_=\other
- \catcode`\@=\other
- \catcode`\^=\other
- % It was suggested to define this as 7, which would allow ^^e4 etc.
- % in xref tags, i.e., node names. But since ^^e4 notation isn't
- % supported in the main text, it doesn't seem desirable. Furthermore,
- % that is not enough: for node names that actually contain a ^
- % character, we would end up writing a line like this: 'xrdef {'hat
- % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first
- % argument, and \hat is not an expandable control sequence. It could
- % all be worked out, but why? Either we support ^^ or we don't.
- %
- % The other change necessary for this was to define \auxhat:
- % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
- % and then to call \auxhat in \setq.
- %
- \catcode`\~=\other
- \catcode`\[=\other
- \catcode`\]=\other
- \catcode`\"=\other
- \catcode`\_=\other
- \catcode`\|=\other
- \catcode`\<=\other
- \catcode`\>=\other
- \catcode`\$=\other
- \catcode`\#=\other
- \catcode`\&=\other
- % `\+ does not work, so use 43.
- \catcode43=\other
- % Make the characters 128-255 be printing characters
- {%
- \count 1=128
- \def\loop{%
- \catcode\count 1=\other
- \advance\count 1 by 1
- \ifnum \count 1<256 \loop \fi
- }%
- }%
- % The aux file uses ' as the escape (for now).
- % Turn off \ as an escape so we do not lose on
- % entries which were dumped with control sequences in their names.
- % For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^
- % Reference to such entries still does not work the way one would wish,
- % but at least they do not bomb out when the aux file is read in.
- \catcode`\{=1
- \catcode`\}=2
- \catcode`\%=\other
- \catcode`\'=0
- \catcode`\\=\other
- %
- \openin 1 \jobname.aux
- \ifeof 1 \else
- \closein 1
- \input \jobname.aux
- \global\havexrefstrue
- \global\warnedobstrue
- \fi
- % Open the new aux file. TeX will close it automatically at exit.
- \openout\auxfile=\jobname.aux
-\endgroup}
-
-
-% Footnotes.
-
-\newcount \footnoteno
-
-% The trailing space in the following definition for supereject is
-% vital for proper filling; pages come out unaligned when you do a
-% pagealignmacro call if that space before the closing brace is
-% removed. (Generally, numeric constants should always be followed by a
-% space to prevent strange expansion errors.)
-\def\supereject{\par\penalty -20000\footnoteno =0 }
-
-% @footnotestyle is meaningful for info output only.
-\let\footnotestyle=\comment
-
-\let\ptexfootnote=\footnote
-
-{\catcode `\@=11
-%
-% Auto-number footnotes. Otherwise like plain.
-\gdef\footnote{%
- \global\advance\footnoteno by \@ne
- \edef\thisfootno{$^{\the\footnoteno}$}%
- %
- % In case the footnote comes at the end of a sentence, preserve the
- % extra spacing after we do the footnote number.
- \let\@sf\empty
- \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
- %
- % Remove inadvertent blank space before typesetting the footnote number.
- \unskip
- \thisfootno\@sf
- \footnotezzz
-}%
-
-% Don't bother with the trickery in plain.tex to not require the
-% footnote text as a parameter. Our footnotes don't need to be so general.
-%
-% Oh yes, they do; otherwise, @ifset and anything else that uses
-% \parseargline fail inside footnotes because the tokens are fixed when
-% the footnote is read. --karl, 16nov96.
-%
-\long\gdef\footnotezzz{\insert\footins\bgroup
- % We want to typeset this text as a normal paragraph, even if the
- % footnote reference occurs in (for example) a display environment.
- % So reset some parameters.
- \interlinepenalty\interfootnotelinepenalty
- \splittopskip\ht\strutbox % top baseline for broken footnotes
- \splitmaxdepth\dp\strutbox
- \floatingpenalty\@MM
- \leftskip\z@skip
- \rightskip\z@skip
- \spaceskip\z@skip
- \xspaceskip\z@skip
- \parindent\defaultparindent
- %
- % Hang the footnote text off the number.
- \hang
- \textindent{\thisfootno}%
- %
- % Don't crash into the line above the footnote text. Since this
- % expands into a box, it must come within the paragraph, lest it
- % provide a place where TeX can split the footnote.
- \footstrut
- \futurelet\next\fo@t
-}
-\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t
- \else\let\next\f@t\fi \next}
-\def\f@@t{\bgroup\aftergroup\@foot\let\next}
-\def\f@t#1{#1\@foot}
-\def\@foot{\strut\egroup}
-
-}%end \catcode `\@=11
-
-% Set the baselineskip to #1, and the lineskip and strut size
-% correspondingly. There is no deep meaning behind these magic numbers
-% used as factors; they just match (closely enough) what Knuth defined.
-%
-\def\lineskipfactor{.08333}
-\def\strutheightpercent{.70833}
-\def\strutdepthpercent {.29167}
-%
-\def\setleading#1{%
- \normalbaselineskip = #1\relax
- \normallineskip = \lineskipfactor\normalbaselineskip
- \normalbaselines
- \setbox\strutbox =\hbox{%
- \vrule width0pt height\strutheightpercent\baselineskip
- depth \strutdepthpercent \baselineskip
- }%
-}
-
-% @| inserts a changebar to the left of the current line. It should
-% surround any changed text. This approach does *not* work if the
-% change spans more than two lines of output. To handle that, we would
-% have adopt a much more difficult approach (putting marks into the main
-% vertical list for the beginning and end of each change).
-%
-\def\|{%
- % \vadjust can only be used in horizontal mode.
- \leavevmode
- %
- % Append this vertical mode material after the current line in the output.
- \vadjust{%
- % We want to insert a rule with the height and depth of the current
- % leading; that is exactly what \strutbox is supposed to record.
- \vskip-\baselineskip
- %
- % \vadjust-items are inserted at the left edge of the type. So
- % the \llap here moves out into the left-hand margin.
- \llap{%
- %
- % For a thicker or thinner bar, change the `1pt'.
- \vrule height\baselineskip width1pt
- %
- % This is the space between the bar and the text.
- \hskip 12pt
- }%
- }%
-}
-
-% For a final copy, take out the rectangles
-% that mark overfull boxes (in case you have decided
-% that the text looks ok even though it passes the margin).
-%
-\def\finalout{\overfullrule=0pt}
-
-% @image. We use the macros from epsf.tex to support this.
-% If epsf.tex is not installed and @image is used, we complain.
-%
-% Check for and read epsf.tex up front. If we read it only at @image
-% time, we might be inside a group, and then its definitions would get
-% undone and the next image would fail.
-\openin 1 = epsf.tex
-\ifeof 1 \else
- \closein 1
- \def\epsfannounce{\toks0 = }% do not bother showing banner
- \input epsf.tex
-\fi
-%
-\newif\ifwarnednoepsf
-\newhelp\noepsfhelp{epsf.tex must be installed for images to
- work. It is also included in the Texinfo distribution, or you can get
- it from ftp://ftp.tug.org/tex/epsf.tex.}
-%
-% Only complain once about lack of epsf.tex.
-\def\image#1{%
- \ifx\epsfbox\undefined
- \ifwarnednoepsf \else
- \errhelp = \noepsfhelp
- \errmessage{epsf.tex not found, images will be ignored}%
- \global\warnednoepsftrue
- \fi
- \else
- \imagexxx #1,,,\finish
- \fi
-}
-%
-% Arguments to @image:
-% #1 is (mandatory) image filename; we tack on .eps extension.
-% #2 is (optional) width, #3 is (optional) height.
-% #4 is just the usual extra ignored arg for parsing this stuff.
-\def\imagexxx#1,#2,#3,#4\finish{%
- % \epsfbox itself resets \epsf?size at each figure.
- \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
- \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
- \epsfbox{#1.eps}%
-}
-
-% End of control word definitions.
-
-
-\message{and turning on texinfo input format.}
-
-\def\openindices{%
- \newindex{cp}%
- \newcodeindex{fn}%
- \newcodeindex{vr}%
- \newcodeindex{tp}%
- \newcodeindex{ky}%
- \newcodeindex{pg}%
-}
-
-% Set some numeric style parameters, for 8.5 x 11 format.
-
-\hsize = 6in
-\hoffset = .25in
-\newdimen\defaultparindent \defaultparindent = 15pt
-\parindent = \defaultparindent
-\parskip 3pt plus 2pt minus 1pt
-\setleading{13.2pt}
-\advance\topskip by 1.2cm
-
-\chapheadingskip = 15pt plus 4pt minus 2pt
-\secheadingskip = 12pt plus 3pt minus 2pt
-\subsecheadingskip = 9pt plus 2pt minus 2pt
-
-% Prevent underfull vbox error messages.
-\vbadness=10000
-
-% Following George Bush, just get rid of widows and orphans.
-\widowpenalty=10000
-\clubpenalty=10000
-
-% Use TeX 3.0's \emergencystretch to help line breaking, but if we're
-% using an old version of TeX, don't do anything. We want the amount of
-% stretch added to depend on the line length, hence the dependence on
-% \hsize. This makes it come to about 9pt for the 8.5x11 format.
-%
-\ifx\emergencystretch\thisisundefined
- % Allow us to assign to \emergencystretch anyway.
- \def\emergencystretch{\dimen0}%
-\else
- \emergencystretch = \hsize
- \divide\emergencystretch by 45
-\fi
-
-% Use @smallbook to reset parameters for 7x9.5 format (or else 7x9.25)
-\def\smallbook{
- \global\chapheadingskip = 15pt plus 4pt minus 2pt
- \global\secheadingskip = 12pt plus 3pt minus 2pt
- \global\subsecheadingskip = 9pt plus 2pt minus 2pt
- %
- \global\lispnarrowing = 0.3in
- \setleading{12pt}
- \advance\topskip by -1cm
- \global\parskip 2pt plus 1pt
- \global\hsize = 5in
- \global\vsize=7.5in
- \global\tolerance=700
- \global\hfuzz=1pt
- \global\contentsrightmargin=0pt
- \global\deftypemargin=0pt
- \global\defbodyindent=.5cm
- %
- \global\pagewidth=\hsize
- \global\pageheight=\vsize
- %
- \global\let\smalllisp=\smalllispx
- \global\let\smallexample=\smalllispx
- \global\def\Esmallexample{\Esmalllisp}
-}
-
-% Use @afourpaper to print on European A4 paper.
-\def\afourpaper{
-\global\tolerance=700
-\global\hfuzz=1pt
-\setleading{12pt}
-\global\parskip 15pt plus 1pt
-
-\global\vsize= 53\baselineskip
-\advance\vsize by \topskip
-%\global\hsize= 5.85in % A4 wide 10pt
-\global\hsize= 6.5in
-\global\outerhsize=\hsize
-\global\advance\outerhsize by 0.5in
-\global\outervsize=\vsize
-\global\advance\outervsize by 0.6in
-
-\global\pagewidth=\hsize
-\global\pageheight=\vsize
-}
-
-\bindingoffset=0pt
-\normaloffset=\hoffset
-\pagewidth=\hsize
-\pageheight=\vsize
-
-% Allow control of the text dimensions. Parameters in order: textheight;
-% textwidth; voffset; hoffset; binding offset; topskip.
-% All require a dimension;
-% header is additional; added length extends the bottom of the page.
-
-\def\changepagesizes#1#2#3#4#5#6{
- \global\vsize= #1
- \global\topskip= #6
- \advance\vsize by \topskip
- \global\voffset= #3
- \global\hsize= #2
- \global\outerhsize=\hsize
- \global\advance\outerhsize by 0.5in
- \global\outervsize=\vsize
- \global\advance\outervsize by 0.6in
- \global\pagewidth=\hsize
- \global\pageheight=\vsize
- \global\normaloffset= #4
- \global\bindingoffset= #5}
-
-% A specific text layout, 24x15cm overall, intended for A4 paper. Top margin
-% 29mm, hence bottom margin 28mm, nominal side margin 3cm.
-\def\afourlatex
- {\global\tolerance=700
- \global\hfuzz=1pt
- \setleading{12pt}
- \global\parskip 15pt plus 1pt
- \advance\baselineskip by 1.6pt
- \changepagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}
- }
-
-% Use @afourwide to print on European A4 paper in wide format.
-\def\afourwide{\afourpaper
-\changepagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}}
-
-% Define macros to output various characters with catcode for normal text.
-\catcode`\"=\other
-\catcode`\~=\other
-\catcode`\^=\other
-\catcode`\_=\other
-\catcode`\|=\other
-\catcode`\<=\other
-\catcode`\>=\other
-\catcode`\+=\other
-\def\normaldoublequote{"}
-\def\normaltilde{~}
-\def\normalcaret{^}
-\def\normalunderscore{_}
-\def\normalverticalbar{|}
-\def\normalless{<}
-\def\normalgreater{>}
-\def\normalplus{+}
-
-% This macro is used to make a character print one way in ttfont
-% where it can probably just be output, and another way in other fonts,
-% where something hairier probably needs to be done.
-%
-% #1 is what to print if we are indeed using \tt; #2 is what to print
-% otherwise. Since all the Computer Modern typewriter fonts have zero
-% interword stretch (and shrink), and it is reasonable to expect all
-% typewriter fonts to have this, we can check that font parameter.
-%
-\def\ifusingtt#1#2{\ifdim \fontdimen3\the\font=0pt #1\else #2\fi}
-
-% Turn off all special characters except @
-% (and those which the user can use as if they were ordinary).
-% Most of these we simply print from the \tt font, but for some, we can
-% use math or other variants that look better in normal text.
-
-\catcode`\"=\active
-\def\activedoublequote{{\tt \char '042}}
-\let"=\activedoublequote
-\catcode`\~=\active
-\def~{{\tt \char '176}}
-\chardef\hat=`\^
-\catcode`\^=\active
-\def^{{\tt \hat}}
-
-\catcode`\_=\active
-\def_{\ifusingtt\normalunderscore\_}
-% Subroutine for the previous macro.
-\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}}
-
-\catcode`\|=\active
-\def|{{\tt \char '174}}
-\chardef \less=`\<
-\catcode`\<=\active
-\def<{{\tt \less}}
-\chardef \gtr=`\>
-\catcode`\>=\active
-\def>{{\tt \gtr}}
-\catcode`\+=\active
-\def+{{\tt \char 43}}
-%\catcode 27=\active
-%\def^^[{$\diamondsuit$}
-
-% Set up an active definition for =, but don't enable it most of the time.
-{\catcode`\==\active
-\global\def={{\tt \char 61}}}
-
-\catcode`+=\active
-\catcode`\_=\active
-
-% If a .fmt file is being used, characters that might appear in a file
-% name cannot be active until we have parsed the command line.
-% So turn them off again, and have \everyjob (or @setfilename) turn them on.
-% \otherifyactive is called near the end of this file.
-\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
-
-\catcode`\@=0
-
-% \rawbackslashxx output one backslash character in current font
-\global\chardef\rawbackslashxx=`\\
-%{\catcode`\\=\other
-%@gdef@rawbackslashxx{\}}
-
-% \rawbackslash redefines \ as input to do \rawbackslashxx.
-{\catcode`\\=\active
-@gdef@rawbackslash{@let\=@rawbackslashxx }}
-
-% \normalbackslash outputs one backslash in fixed width font.
-\def\normalbackslash{{\tt\rawbackslashxx}}
-
-% Say @foo, not \foo, in error messages.
-\escapechar=`\@
-
-% \catcode 17=0 % Define control-q
-\catcode`\\=\active
-
-% Used sometimes to turn off (effectively) the active characters
-% even after parsing them.
-@def@turnoffactive{@let"=@normaldoublequote
-@let\=@realbackslash
-@let~=@normaltilde
-@let^=@normalcaret
-@let_=@normalunderscore
-@let|=@normalverticalbar
-@let<=@normalless
-@let>=@normalgreater
-@let+=@normalplus}
-
-@def@normalturnoffactive{@let"=@normaldoublequote
-@let\=@normalbackslash
-@let~=@normaltilde
-@let^=@normalcaret
-@let_=@normalunderscore
-@let|=@normalverticalbar
-@let<=@normalless
-@let>=@normalgreater
-@let+=@normalplus}
-
-% Make _ and + \other characters, temporarily.
-% This is canceled by @fixbackslash.
-@otherifyactive
-
-% If a .fmt file is being used, we don't want the `\input texinfo' to show up.
-% That is what \eatinput is for; after that, the `\' should revert to printing
-% a backslash.
-%
-@gdef@eatinput input texinfo{@fixbackslash}
-@global@let\ = @eatinput
-
-% On the other hand, perhaps the file did not have a `\input texinfo'. Then
-% the first `\{ in the file would cause an error. This macro tries to fix
-% that, assuming it is called before the first `\' could plausibly occur.
-% Also back turn on active characters that might appear in the input
-% file name, in case not using a pre-dumped format.
-%
-@gdef@fixbackslash{@ifx\@eatinput @let\ = @normalbackslash @fi
- @catcode`+=@active @catcode`@_=@active}
-
-%% These look ok in all fonts, so just make them not special. The @rm below
-%% makes sure that the current font starts out as the newly loaded cmr10
-@catcode`@$=@other @catcode`@%=@other @catcode`@&=@other @catcode`@#=@other
-
-@textfonts
-@rm
-
-@c Local variables:
-@c page-delimiter: "^\\\\message"
-@c End:
diff --git a/apps/gperf/version.texi b/apps/gperf/version.texi
deleted file mode 100644
index 295f0c1a942..00000000000
--- a/apps/gperf/version.texi
+++ /dev/null
@@ -1,3 +0,0 @@
-@set UPDATED 24 April 1999
-@set EDITION 2.0
-@set VERSION 2.0