Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Sep 10th, 2010  |  syntax: Python  |  size: 27.47 KB  |  views: 49  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. # The Grinder 3.4
  2. # HTTP script recorded by TCPProxy at Sep 9, 2010 4:29:03 PM
  3.  
  4. from net.grinder.script import Test
  5. from net.grinder.script.Grinder import grinder
  6. from net.grinder.plugin.http import HTTPPluginControl, HTTPRequest
  7. from HTTPClient import NVPair
  8. connectionDefaults = HTTPPluginControl.getConnectionDefaults()
  9. httpUtilities = HTTPPluginControl.getHTTPUtilities()
  10.  
  11. # To use a proxy server, uncomment the next line and set the host and port.
  12. # connectionDefaults.setProxyServer("localhost", 8001)
  13.  
  14. # These definitions at the top level of the file are evaluated once,
  15. # when the worker process is started.
  16.  
  17. connectionDefaults.defaultHeaders = \
  18.   [ NVPair('Accept-Encoding', 'gzip, deflate'),
  19.     NVPair('User-Agent', 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; InfoPath.2; .NET CLR 1.1.4322; MS-RTC LM 8; .NET4.0C; .NET4.0E)'), ]
  20.  
  21. headers0= \
  22.   [ NVPair('Accept', 'image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*'),
  23.     NVPair('Accept-Language', 'en-US'), ]
  24.  
  25. headers1= \
  26.   [ NVPair('Accept', '*/*'),
  27.     NVPair('Referer', 'https://www.somesite.dom/'),
  28.     NVPair('Accept-Language', 'en-US'), ]
  29.  
  30. headers2= \
  31.   [ NVPair('Accept', '*/*'),
  32.     NVPair('Accept-Language', 'en-us'),
  33.     NVPair('Referer', 'https://www.somesite.dom/'),
  34.     NVPair('Cache-Control', 'no-cache'), ]
  35.  
  36. headers3= \
  37.   [ NVPair('Accept', 'image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*'),
  38.     NVPair('Referer', 'https://www.somesite.dom/'),
  39.     NVPair('Accept-Language', 'en-US'), ]
  40.  
  41. headers4= \
  42.   [ NVPair('Accept', '*/*'),
  43.     NVPair('Referer', 'https://www.somesite.dom/Default.aspx'),
  44.     NVPair('Accept-Language', 'en-US'), ]
  45.  
  46. url0 = 'https://www.somesite.dom:443'
  47.  
  48. # Create an HTTPRequest for each request, then replace the
  49. # reference to the HTTPRequest with an instrumented version.
  50. # You can access the unadorned instance using request101.__target__.
  51. request101 = HTTPRequest(url=url0, headers=headers0)
  52. request101 = Test(101, 'GET /').wrap(request101)
  53.  
  54. request102 = HTTPRequest(url=url0, headers=headers1)
  55. request102 = Test(102, 'GET common_feauters.css').wrap(request102)
  56.  
  57. request103 = HTTPRequest(url=url0, headers=headers1)
  58. request103 = Test(103, 'GET styles_common.css').wrap(request103)
  59.  
  60. request104 = HTTPRequest(url=url0, headers=headers1)
  61. request104 = Test(104, 'GET styles.css').wrap(request104)
  62.  
  63. request105 = HTTPRequest(url=url0, headers=headers1)
  64. request105 = Test(105, 'GET ie.css').wrap(request105)
  65.  
  66. request106 = HTTPRequest(url=url0, headers=headers1)
  67. request106 = Test(106, 'GET print.css').wrap(request106)
  68.  
  69. request107 = HTTPRequest(url=url0, headers=headers1)
  70. request107 = Test(107, 'GET mootools-1.2.2-core-jm.js').wrap(request107)
  71.  
  72. request108 = HTTPRequest(url=url0, headers=headers1)
  73. request108 = Test(108, 'GET ui-effects.js').wrap(request108)
  74.  
  75. request201 = HTTPRequest(url=url0, headers=headers1)
  76. request201 = Test(201, 'GET WebResource.axd').wrap(request201)
  77.  
  78. request202 = HTTPRequest(url=url0, headers=headers1)
  79. request202 = Test(202, 'GET mootools-1.2.2.2-more.js').wrap(request202)
  80.  
  81. request203 = HTTPRequest(url=url0, headers=headers1)
  82. request203 = Test(203, 'GET validators.js').wrap(request203)
  83.  
  84. request301 = HTTPRequest(url=url0, headers=headers2)
  85. request301 = Test(301, 'POST default.aspx').wrap(request301)
  86.  
  87. request401 = HTTPRequest(url=url0, headers=headers2)
  88. request401 = Test(401, 'POST default.aspx').wrap(request401)
  89.  
  90. request501 = HTTPRequest(url=url0, headers=headers3)
  91. request501 = Test(501, 'GET Default.aspx').wrap(request501)
  92.  
  93. request502 = HTTPRequest(url=url0, headers=headers4)
  94. request502 = Test(502, 'GET common_feauters.css').wrap(request502)
  95.  
  96. request503 = HTTPRequest(url=url0, headers=headers4)
  97. request503 = Test(503, 'GET styles_common.css').wrap(request503)
  98.  
  99. request504 = HTTPRequest(url=url0, headers=headers4)
  100. request504 = Test(504, 'GET styles.css').wrap(request504)
  101.  
  102. request505 = HTTPRequest(url=url0, headers=headers4)
  103. request505 = Test(505, 'GET ie.css').wrap(request505)
  104.  
  105. request506 = HTTPRequest(url=url0, headers=headers4)
  106. request506 = Test(506, 'GET mootools-1.2.2-core-jm.js').wrap(request506)
  107.  
  108. request507 = HTTPRequest(url=url0, headers=headers4)
  109. request507 = Test(507, 'GET mootools-1.2.2.2-more.js').wrap(request507)
  110.  
  111. request508 = HTTPRequest(url=url0, headers=headers4)
  112. request508 = Test(508, 'GET print.css').wrap(request508)
  113.  
  114. request509 = HTTPRequest(url=url0, headers=headers4)
  115. request509 = Test(509, 'GET ui-effects.js').wrap(request509)
  116.  
  117. request510 = HTTPRequest(url=url0, headers=headers4)
  118. request510 = Test(510, 'GET validators.js').wrap(request510)
  119.  
  120. request511 = HTTPRequest(url=url0, headers=headers4)
  121. request511 = Test(511, 'GET logout_yellow.png').wrap(request511)
  122.  
  123.  
  124. class TestRunner:
  125.   """A TestRunner instance is created for each worker thread."""
  126.  
  127.   # A method for each recorded page.
  128.   def page1(self):
  129.     """GET / (requests 101-108)."""
  130.     result = request101.GET('/')
  131.  
  132.     grinder.sleep(261)
  133.     request102.GET('/css/common_feauters.css', None,
  134.       ( NVPair('If-Modified-Since', 'Wed, 03 Feb 2010 15:38:20 GMT'),
  135.         NVPair('If-None-Match', '\"0fe79e9e6a4ca1:0\"'), ))
  136.  
  137.     request103.GET('/css/styles_common.css', None,
  138.       ( NVPair('If-Modified-Since', 'Fri, 18 Jun 2010 10:19:40 GMT'),
  139.         NVPair('If-None-Match', '\"0c6d5c2cfecb1:0\"'), ))
  140.  
  141.     grinder.sleep(5245)
  142.     request104.GET('/css/styles.css', None,
  143.       ( NVPair('If-Modified-Since', 'Wed, 02 Jun 2010 12:58:18 GMT'),
  144.         NVPair('If-None-Match', '\"0516545532cb1:0\"'), ))
  145.  
  146.     grinder.sleep(26)
  147.     request105.GET('/css/ie.css', None,
  148.       ( NVPair('If-Modified-Since', 'Wed, 03 Feb 2010 15:38:20 GMT'),
  149.         NVPair('If-None-Match', '\"0fe79e9e6a4ca1:0\"'), ))
  150.  
  151.     request106.GET('/css/print.css', None,
  152.       ( NVPair('If-Modified-Since', 'Mon, 08 Mar 2010 14:50:32 GMT'),
  153.         NVPair('If-None-Match', '\"0aca5b3cebeca1:0\"'), ))
  154.  
  155.     grinder.sleep(9965)
  156.     request107.GET('/js/mootools/mootools-1.2.2-core-jm.js', None,
  157.       ( NVPair('If-Modified-Since', 'Wed, 03 Feb 2010 15:38:22 GMT'),
  158.         NVPair('If-None-Match', '\"02babeae6a4ca1:0\"'), ))
  159.  
  160.     grinder.sleep(5034)
  161.     request108.GET('/js/ui-effects.js', None,
  162.       ( NVPair('If-Modified-Since', 'Fri, 12 Feb 2010 13:13:20 GMT'),
  163.         NVPair('If-None-Match', '\"0189725e5abca1:0\"'), ))
  164.  
  165.     return result
  166.  
  167.   def page2(self):
  168.     """GET WebResource.axd (requests 201-203)."""
  169.     self.token_d = \
  170.       'YIQUoCd3Ld1tUmMIY2L4mw2'
  171.     self.token_t = \
  172.       '633802765995006876'
  173.     result = request201.GET('/WebResource.axd' +
  174.       '?d=' +
  175.       self.token_d +
  176.       '&t=' +
  177.       self.token_t)
  178.  
  179.     grinder.sleep(4985)
  180.     request202.GET('/js/mootools/mootools-1.2.2.2-more.js', None,
  181.       ( NVPair('If-Modified-Since', 'Wed, 03 Feb 2010 15:38:22 GMT'),
  182.         NVPair('If-None-Match', '\"02babeae6a4ca1:0\"'), ))
  183.  
  184.     grinder.sleep(304)
  185.     request203.GET('/js/validators.js', None,
  186.       ( NVPair('If-Modified-Since', 'Wed, 03 Feb 2010 15:38:24 GMT'),
  187.         NVPair('If-None-Match', '\"058dcebe6a4ca1:0\"'), ))
  188.  
  189.     return result
  190.  
  191.   def page3(self):
  192.     """POST default.aspx (request 301)."""
  193.     result = request301.POST('/default.aspx',
  194.       'ctl00%24uxScriptManager=ctl00%24uxAuthenticationBlock%24uxLoginUpdatePanel%7Cctl00%24uxAuthenticationBlock%24uxLoginFirstButton&__EVENTTARGET=ctl00%24uxAuthenticationBlock%24uxLoginFirstButton&__EVENTARGUMENT=&__VIEWSTATE=AsjtLrJbizH087HpYt6P6sJ5SZs9pCwknW%2BIR2MC2G%2BjYAz0ssNbVTh5YhqdhsE1oognCizzDQX11EZIVa4pe5Io1KNEsAfpR8rjPCZ1%2FxSG2mBZ%2B1%2FCsYbcNTpNyrlNPvz9FMr%2Brtdc0rkSYt7YN7WukEPPyjMShIG4cKztB82g5jwe6BDng%2FVJMayuIQG%2FMdOEZAhvaX1%2FHP%2FDpXEx7opo4m5ufNLVpEKMs9MtLeiYJ0GUJKZQIJyVs3S3KMlhjYWNlNz%2FEoNhxeuo7oT%2Fos%2Bp5FvGKcKFeuglb9GXvBM0t2mhGqJD9C8b6Ib3vfjmPAeq%2FBp4%2BcnygzaH89NC5ezk5TyrdaVayBmmZaPSksYSluuq1mzrysfQiQJjCvqW2QxWfmj2jdVOTWAEI6BPBxdkMr%2B%2FM42GhgnzQ8FrzgifEZZ2TlG7NAz5NKDTQ7V1%2BK0xkUiGvGDX4RC%2FEJei9cF3uvfUlhZYEvOiBFCvyXBdE2wpUqxqU%2B41Bj6hErC846D7ThRXYhy8Gq3I6iRN%2FyVjmaVU7ytnw51rJh8wBrcUEZLkPFrk5fLbQvpFZIsGczGD%2BoXYIe7EdyIvjyPdPMzqPpORzi2z55rRRlCvGKnpmyk9RIGX5xZ9QpcyT5RrkxL9AgZm9HLeooklTbtsLiya3Yk0muQv5l37LvgqcXdPERyr1OPj6RLE4TMZujrebZmMqq2cPnt1FzWdZCYUsYJhdDP%2B2MNp30MY3Qzlu0Y3E3wpO8zUER28UdXsGap7mRDOG6iPi7gOkcw71p3jF%2F4PO5UdmsY%2B7euQpulVhk5JGw1lW%2BA2PDublwfRcAOBzN26TK11tOoXQNZmKq%2FJMMHkOqGgH7zcTs7qXnQx6gXNX%2BYqCwUu7iwukz5AnkdkNuZ5FP5VpBuV13af2lG7vKQ7TgUqloC4WRUI%2FFBkhaJPLY1PRXsiQR5HkdEdpdhSE%2B942KzB%2BypHjkLTuhsaZ7GGxtO0lbC8PK3J6yTGSZK%2Fpf1nA1%2FwbWMVZ1h8aWXMBhb4xSVh%2F66uJgJ%2BryItAWVHuTgWTaJ1l%2BbIjiWJmtrz7vzfvSayw7IBZyVUGucS8RpEb3YjSO8ol3lPciZBggnY4lNQJUN4mujz%2BpaH1u9RtDpIqwTKIKZtJRQpPkLCcA3LbEeePyuPGTkRrXO0YT4KB541tyJW%2BoJOxNdNf3xu08TbB4yGfoFFMlPCIVG756tGNYCMJ%2BXrB%2F7J47TPReABVNFjGUcBmYQRtABhKCCVQRW1fe2QaMc6I80YbD7hwX63MW4iYSlKooGtGc1s2pG1dtSpUnbd11OblzH8CsywJr1lIMH0X%2Bq32AeFbiL6aOoSoQD%2FJfvDTZkPxZtvuJYED8Ux9JpNf8%2F%2Bx3iNeWVRdsd8v8w8Yit3dLos1xRa8FOyiayhplVTqgs7mX0mwwrQ8SNQSFj%2B4OIP0O3bKW5LeA6%2BesNYLaeXQeuIFLJ3oX7inGQUqaFlqNkioT%2BW7tAyhWxNhm1WR4dq0SMI%2FZ6MAkpTr6hjfqnBbh0FJo4uPZ1v67QnkPx03tIPUqtPgH1LAOpyZQSbY54pCp%2BJV8gmLt96lMQgiyUjM3MKPoL8OkUY1D7%2FfyXH6A2%2BNIkrSWBuuh7r4ZzAGoGsIOUwXj2Ft9Jps2JSTHDHGcs63yib9olGCFJfiN6DFx3lef9GN2hlfxEaXGm%2Fg1KNa9VQYcoeddRNZzAbbnU1m5WtEeDDyVohKU6rd5ikOEiOjm6SxYmrPj%2BHJczKce08myA%2BfpEhHl6FSFXHBjhvMPF3JJkRY2hTdCzMFWkehtewgaK7wLB%2B6e6169Af4pxx6rgTOvhl3gK9PTwYcBEeVfXu4fRdasKZ5P96PcYobk%2BL%2FoU80c31X7mzMVFuptX3M%2BzgokgNrCt5uXUAt0r2%2FHZOLcY%2BlnXI1ExaFGlL5u3lcEbQ4veS6kPHJUYHNUc%2FEJVU%2Bp3351cGqUy6PiH%2FR0vP0izGj1SeoI60J72olRsi4AV7%2FI1suV5Q1bpTHAjBzYcrtZoh5p4TqhMFvgayCkeXJX2unkSNWpl0GM7ZwqtFM5g3igDBmniso%2BvC04yxavVlabv4ioRt9r2cAUoFTWIgmTzK5iRXTXKCSvawabVOSF7PghIQGzE78KktGgSU7d6CH%2BzTpo8GdB6lAXCtE1A%2FaS%2BfWIPv5Lr7ZE49%2FS94w304fbViDgyi9bXocJjEOHg09eFhOqG6Svno5AtkzS0rF6hgTPUqIypJ0bJL2ueQ7QO3DHBh4vgyp46hD3vG9MP9I0Kja%2FjzQ0ZwJM0GvGirLliigrOxpUXLKjiDPpgiVP7nFU%2BXKQdNQVBVj4tWbEcwHQ1LutWGuViQ19mT%2B1mPsalwIpAO2%2B9MkF1%2FqoUMjQSGrhAX7KXuKWIh3UA6hM%2Fo5V%2BLkUD2JVFOTBFt0nn7tSqnfsx2dShE%2FFuAOWeRUlGMuCu4FbALjiJHuTULMecjBQqenjXoNJ21B3gw0j6k8ULLvTfbvA6FoYtDVT3qfH2Q0MN4VwfdXlZ1gj5K6st7Ow9tIgMAdUv%2BAv9yy1Dv9LfAKJYRS%2F8F2edlM2IRs5YmYqitaK5u5kNWn60qOMO7xj33bzcXFlNl9S84LGDpGdfjCtZLYOEgGv6c%2F27qunK2X0g%2F1TVZzEcJofO65%2FTbS8BVRb0orW1VCK3M4uQ7V13Kcs2bHEKq42j5u6ZVY33sAHWXVD6Bz%2FxKQ8d7UZMK%2FaLbSB8As2hJY4eegbnStbOygB4EnHitMyGlXuIBZ3zLRu%2FbzqzgO%2BBT67Mic9nmKvkB4MDSGc6OseMW7Tt8cWJHPhIKupcwex2mD1a5gAy%2FXYVocb2pCqVt3ZiFXccGGph4ryspnJJvx%2BsFnvLpID2FrnomzfY7E2Oe8kUfVUeijZi2yD76e%2FpFBXKyp%2B9F9DfaeGVtSfFsf6ex8C85zsjimdAOgMOvQuviPUtRWFxanqgJUrkVLK9EdluSvGigM1OLqDRlAqxlqOym%2BG6geZO%2B08zQ%2FPhqpM8AWm81vOY0Af2kgnAWpofu5c%2BSJXSKksdFq5tucfnKQcJP15WNpAME3VdXDo47daggbff6zPtavPZ72Qs5MtvtJPPiAVoBI2RHd5p983xq56aoEJc6YfGSE3a6FSZJ%2B96Tamb8XYtrTSUZtwWiZO%2FYwRZWZwaEGRyrnlHGRe0zqtXP4cSvg2ZF%2FVSUhSpaUBaKlNpHTxC3dA%2FpszxZQ%2BAkyR0%2B4AVCLs2VgMc7HO4%2FWTiU%2B8qoZ4wMttjJxqjPZdg2Gr5%2B0SXZXUNEV4BSrSyvDvpWcCL0a4EaAaN03jcbKSSpUz0%2F4KITVRxP411Vbyrih1tmhayu9QOCND96gxo5qH8FD%2FKvfrmlL4%2FMgilWre3S06rZqCIJ%2FQ3yBWSGnboE%2FThvwETaNtF%2BXeXM7Uj0S2hmEZqdm1UNHDM9y1AEJ9sP8FlymD4JpnsdueqC5y1A3nB%2FtLTd9eNgSgz%2BNIQbsi0J0%2BbzFfN%2FEOQ0DLikwRH5zISvbYNbK57BgPJ944C8GD4eXuhGBh%2F1M5Rw26C%2Bl1yfDwkcZj8H23BpDbvyWFpKB%2FmJZPt7KQf771onp7HBLTtqLd%2F29DPbENAizEswmvLweyOwNabLbcyJFDwAoXmn2Nev3WGV0Qa8xV5uY17sZXZ0maatjCTLYRwh7lpiTbNds19NQFr5gkZUTecFvy5AHYKrlbFOAyPc0TRyD5OVYhLjenP0a6XZL4Z4yRdvKudwnYboAsqaxJoattkyOgXtMXsv36zNHD5Qn65j1j%2FPkYQCye7fpThSBfT60pLoPPV333e3UuihaRG7pvb7w%2Bpn8wD5tNqfqgzWvRyrV0PVuvjDSjPRKeBaUoZsKzUdEh%2BCRwYGG1JwBTlT%2Fh5SrSB9iwlnf0L33vC6eMVq3WOjrZ9yZjBUgSlTajaYoHA03opiI5iikBTrH98Q3g3T6pnRgmzWpoAuiDI2JiXiTGjpxO%2FymfEgwpyfgx1vVWzI4B8FFaMawuTeUZbioydnft044UNVLSWZfTZ16QoMpk1dcUIlW5NWCnqVwExhvSQcsUzKpGbBbKug2%2F3oQoYuLEPwyz6Jeu3nX0um3wEfkYekGqR9x4kph3MqbqbSje1jOeJwz8cTWBnoq9VbsgjCdFZT4bWX%2FGcG06%2FDiUA%2B5jUFx73rilJeENvHOPDNh0dglOXKcsRVkAxqfigo8U47TmC0TlBoCFPxyjrBn5%2BnoSjySUcwypyAqHqTM6gtKNPT7xv2Qld9%2BrlQOUfNsFfw6%2F7AHmctmLtvoYFSYYy49pOKEpXHiCAD0hUlPNvFUVk1NzUJRzYP4Svv4%2BKTweLCT6TlttT9UyDGBKAtXCOz4t8wdbdXXeWJ8furUvCVCSlWE5WPaNNSY8MaVJxO3MwCfKZ2kIOQGLG3vSGX45G741MFfncKHf4OOG2xPoUkbYJJffaB0mHd6MA5OFYczFVwYhv25SwqXzWqZW3IZS%2FCxk8ShvaKqiB8FdmEq%2B5H7pIUvEn24nQbkOnf8TNoPwEiybLDEZbrqrEYPVidjCBnq9W43CPBOryRMAf02WNI28LOLcwcah8Z56kv079XlqmL9eYHByjJEzhLqjAGYc%2FNB0SMVNJ%2BOm5By9xAMZ%2F3KAX6dwkdcK2CEMJy66QHqkealTU4tTr0sNYXSqJBpG8lzKrAZ662KvZoVwN9wsSoZcHvoUCi8CqzHmzRSh94izypcHj1uqsZxbufnEmRloCnOyr9nqZcbfvruDDuDJiDyDHEDnLlfEsdB6Z%2BjMvR6JwVyW%2FPqb1sbXRSvNY%2B4GhH43ttlQOZb374KP4SIU8dOhLYHS%2BMIFi2GraS20JG8UtWvgQRlHasyC0s7DUQP2PcezAMISuTOEtAG%2FVxKcIE%2Blnk6QSo%2FiJCN2z7XQCYgffhRXuZov%2BO6O4BdpN822BnFIZ1IOixHtlrkaT2aGkSCFRtGivQJ5T8IY32Qz7GveWAnmqv73x6iEEseVszpagVKVIPjMfxzNSApxebQNrbUuz0mgsEtOn0Yjp%2Fq%2FjZarNDMsB8mPDyjU15F59TX8XjPtleqVXjCbHGLwVY%2B7X2NF3VfoO1vU5GXvB0qGukPQi8BRxjpDDp2Zik%2F4oZ8SxBftp7Q1nxQKymUgELPqNmH0QbkShrgpF6ZQJVYSEckTA%2FlJhCUinPwYJs%2B5HvnwWuH1CHoyLJLOZmnLGxlV%2FBkSmgqICC2Ul7e5o2rzeGL9nGAiSecGxOF47wy%2B0BwVzyx6OlvtqvrVMSxmdcK52TarlLScoSGNBummQTq75aR6pp2Cc%2BWJtlJzmYkc0XwY%2BLjeUD6GbQAHaHLLquW1AQis4oOk2iz9mrKoNoJgT%2BdNGkcZrBBzgpgNsvRvGEBdzA%2B6gGHtNRkFOMFZPvD0oTw0%2BBiAALOPLpjecvFAlxaCJ5KBiq%2Fl6e7qbYnYZ1lAEa6agFGSLKB5g0MP0n3xJtZCQendQsqQHlsJ6GgQjeHlROVSjttn%2FI3aZgA3vJqsIqM%2FPWcDYkeqg%2BoccEKvKQOWkI4qUZs%2F%2BY1WTvwgVZZ2jjtGl%2BiB56Fc%2FsPVXWZPt8%2FhIQFGPZ7Sys%2BaGNVMaPdqWkL%2BlZ0DC7SJvBBb4Y8zIvqEvoP9XGzUYDW5XBmQmfLVZnChy18uhzoNW%2FHGtSqn1vaVxXnzXsXtBGyjACW339z4KzdLFizKi2eYuCksMgmzIpEDKF25voq8%2Bo4ov8rSzVMCwDemkzxQvZrwk4Z4xukpy4OJuOeo%2FCvRwMo664ipeDTbtEQe%2BetBHyltRdm%2FHb6DnjKXJP1UhDsDH4E8DSvVJ%2FzHmz%2FfOEhs0JxU9G9bSrwtsGmWk543%2FPgyJYvnEZ7c8nCKCDPx99GxM5KvxEWbdPjereSyXpkzb2CJmPVUFT5YJfF9znGRxLRRSBXMWPu74sIzmma0yaMuCJrDp72jwMSN2w3IHJWnHFcCAliutcLI6%2Bj995m7TD8EATJN%2BtnynjP%2BCo2c%2BSkh%2FoHpk1Z2mAM9TGPHXTEkcAWWbKlLXnNldrdIR6Hm9l9%2FVsObsJgWK%2FVW4XT1DMdxUzx0hCPV99vlzAWOFkPjUmy8jwczvVm0lwBgqXXMw%2F5jAkFwtIfp67XtzQpcW5v6A1SE2d5gzC8THrhGA%2BvtsPJoeEUKcoIHV8SqAL4wWPsfMac74EDCHxZ2WputtaSukDXPvhf5HC2DcGf38cWp%2BeIOsFm1gHSimTrglC1d1w9a%2B55F4Jf1bllNiOSGA3B0PZ4s%2BIKrUSDB%2B8fXGNzQ0wV5wYdcCcLiWCDX6l06dnMz%2BFxjNN5rPGS1Q3M2bo5ZMMziQil8tMoBGtBNo2JR0cLinRCOcXOQtrXT%2Bu8Erw%2FGk3UlaWcvJj0Opax%2FnW%2FqTfjyy2gCYtIREryN07r8UJnAYEnk5HJft6LHmxE3j4pNVGW2XKi6T%2FLln0l7VpFWDeJHqQsSG4krS%2FwZ3BxWVDVcd8guxkxmRXBQRRVWm3QZTVog42k9G7GaqrZZTBRWC0ruzBUyfdLqJVoGRUsarNK3KxMFHsrEwFnuZrURcfIaSrBAkI8H%2Fn3WJN0k3G1W9vZq20vsOjsZNzROdjr3v38aLQOIy55tWMM5Oo4xvrjaby8Ws2JjEi3x3NZaK6G9%2B2onnm%2FZ%2B4SzGYdWK8h9JxCUvXYdjX13zsNaKAdaIzxwhBi4sFzxsNaJS9I66O8bZtYhWfeL2IzPvG7HpQ3rThtXNuPeLksVwkx7rcn6ZI1k%2BoidD8YOY0we4j8MFV9dt%2B6mgLLKPfBiWHbdXey4EMmcqnNOBUiEaBWenW49WfTqJ5D35tingcmIgKDGbaUiiQSd6nZCj3hUkMBOgzeN58V1aZK2T8HgoQpvKVdBrG7CTbxsWNKQxUKc%2FVHe1dRqEjluuuiwxCroiw29RQHW0%2BZPKzpMfxNI1UJwlTukNQ5EN3ahGLE02L0Ct%2BWeJabRvsBR9TDOIbNqMvBs1c8lhV0tjwbZDt0J7LyUPf1Q%3D%3D&__VIEWSTATEENCRYPTED=&__PREVIOUSPAGE=1EZcPAR6Y2GOzrkS5xANLA2&__EVENTVALIDATION=gNp%2FAqmOQJe%2FuyDHav9Fnl1CT5bbgzgzp%2B6foaIyG7KkEI2d9lP2vMRYaKA0ROanp2DjvhD8pFVITjqM3sm82VMGzzpOwAW2wRiYQ%2Fa0JyfOWk1EjdMGeJI6njiiMyPacfq6T02c6fbxO%2BFQCQbvVPXC3hkb6HyDGQE2D5tvJOI%3D&ctl00%24uxTextSliderPosition=2&ctl00%24uxAuthenticationBlock%24uxLoginText=PircUser11&ctl00%24uxAuthenticationBlock%24uxPasswordText=Eis%40123&ctl00%24uxSimpleSearchBlock%24uxCategoryName=&search_type_choice=Category&ctl00%24uxSimpleSearchBlock%24uxMinCharCount=3&ctl00%24uxSimpleSearchBlock%24uxSearchMode=CATEGORY&ctl00%24uxWarningBlock%24uxWarningTargetControl=&ctl00%24uxX=926&ctl00%24uxY=724&hiddenInputToUpdateATBuffer_CommonToolkitScripts=1&__ASYNCPOST=true&',
  195.       ( NVPair('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8'), ))
  196.  
  197.     return result
  198.  
  199.   def page4(self):
  200.     """POST default.aspx (request 401)."""
  201.     result = request401.POST('/default.aspx',
  202.       'ctl00%24uxScriptManager=ctl00%24uxAuthenticationBlock%24uxLoginUpdatePanel%7Cctl00%24uxAuthenticationBlock%24uxLoginSecondButton&ctl00%24uxTextSliderPosition=2&ctl00%24uxAuthenticationBlock%24uxSecondStepCodeText=111111&ctl00%24uxSimpleSearchBlock%24uxCategoryName=&search_type_choice=Category&ctl00%24uxSimpleSearchBlock%24uxMinCharCount=3&ctl00%24uxSimpleSearchBlock%24uxSearchMode=CATEGORY&ctl00%24uxWarningBlock%24uxWarningTargetControl=&ctl00%24uxX=926&ctl00%24uxY=724&hiddenInputToUpdateATBuffer_CommonToolkitScripts=1&__EVENTTARGET=ctl00%24uxAuthenticationBlock%24uxLoginSecondButton&__EVENTARGUMENT=&__VIEWSTATE=AsjtLrJbizH087HpYt6P6sJ5SZs9pCwknW%2BIR2MC2G%2BjYAz0ssNbVTh5YhqdhsE1oognCizzDQX11EZIVa4pe5Io1KNEsAfpR8rjPCZ1%2FxSG2mBZ%2B1%2FCsYbcNTpNyrlNPvz9FMr%2Brtdc0rkSYt7YN7WukEPPyjMShIG4cKztB82g5jwe6BDng%2FVJMayuIQG%2FMdOEZAhvaX1%2FHP%2FDpXEx7opo4m5ufNLVpEKMs9MtLeiYJ0GUJKZQIJyVs3S3KMlhjYWNlNz%2FEoNhxeuo7oT%2Fos%2Bp5FvGKcKFeuglb9GXvBM0t2mhGqJD9C8b6Ib3vfjmPAeq%2FBp4%2BcnygzaH89NC5ezk5TyrdaVayBmmZaPSksYSluuq1mzrysfQiQJjCvqW2QxWfmj2jdVOTWAEI6BPBxdkMr%2B%2FM42GhgnzQ8FrzgifEZZ2TlG7NAz5NKDTQ7V1%2BK0xkUiGvGDX4RC%2FEJei9cF3uvfUlhZYEvOiBFCvyXBdE2wpUqxqU%2B41Bj6hErC846D7ThRXYhy8Gq3I6iRN%2FyVjmaVU7ytnw51rJh8wBrcUEZLkPFrk5fLbQvpFZIsGczGD%2BoXYIe7EdyIvjyPdPMzqPpORzi2z55rRRlCvGKnpmyk9RIGX5xZ9QpcyT5RrkxL9AgZm9HLeooklTbtsLiya3Yk0muQv5l37LvgqcXdPERyr1OPj6RLE4TMZujrebZmMqq2cPnt1FzWdZCYUsYJhdDP%2B2MNp30MY3Qzlu0Y3E3wpO8zUER28UdXsGap7mRDOG6iPi7gOkcw71p3jF%2F4PO5UdmsY%2B7euQpulVhk5JGw1lW%2BA2PDublwfRcAOBzN26TK11tOoXQNZmKq%2FJMMHkOqGgH7zcTs7qXnQx6gXNX%2BYqCwUu7iwukz5AnkdkNuZ5FP5VpBuV13af2lG7vKQ7TgUqloC4WRUI%2FFBkhaJPLY1PRXsiQR5HkdEdpdhSE%2B942KzB%2BypHjkLTuhsaZ7GGxtO0lbC8PK3J6yTGSZK%2Fpf1nA1%2FwbWMVZ1h8aWXMBhb4xSVh%2F66uJgJ%2BryItAWVHuTgWTaJ1l%2BbIjiWJmtrz7vzfvSayw7IBZyVUGucS8RpEb3YjSO8ol3lPciZBggnY4lNQJUN4mujz%2BpaH1u9RtDpIqwTKIKZtJRQpPkLCcA3LbEeePyuPGTkRrXO0YT4KB541tyJW%2BoJOxNdNf3xu08TbB4yGfoFFMlPCIVG756tGNYCMJ%2BXrB%2F7J47TPReABVNFjGUcBmYQRtABhKCCVQRW1fe2QaMc6I80YbD7hwX63MW4iYSlKooGtGc1s2pG1dtSpUnbd11OblzH8CsywJr1lIMH0X%2Bq32AeFbiL6aOoSoQD%2FJfvDTZkPxZtvuJYED8Ux9JpNf8%2F%2Bx3iNeWVRdsd8v8w8Yit3dLos1xRa8FOyiayhplVTqgs7mX0mwwrQ8SNQSFj%2B4OIP0O3bKW5LeA6%2BesNYLaeXQeuIFLJ3oX7inGQUqaFlqNkioT%2BW7tAyhWxNhm1WR4dq0SMI%2FZ6MAkpTr6hjfqnBbh0FJo4uPZ1v67QnkPx03tIPUqtPgK3LkNQa9KU9eFpHQvaBCN5eBOr7m4dVUrKARVIslz19DRB0IP%2Bf6D1uNfIaL7ee07o0AU4xc%2F6Aw9ZPD6a0ZoFiaHh3MD%2F9KcPVqk7wXxsjkiDN6fa7eqYvxXxHcyhwaCm5Lh0OOpGalgQwgB2Xqm00vktfOzofWbP6NyXBUvzvKZrWRnQgMEQkLtxL0wfnVOQ48FTnw8drejlNweuSymAdL3SPv%2BfIibJ%2FCjn08qXzjTxYZtevUR7yZYOQLLpE%2Fh%2FmFGgY2icfZywbwCSZ7UkVK1kp8dBnTh8Yw3HvqzxEmYIeBb%2FeJLS6XNV2zvOU%2BnwJ7GHUbOPKUh%2BGEw3w9WMoUIjOp2g3fQHbRA4Z9j5qMy6B5MBLzTBvl3imNQVShc474Mh1lPw9q%2BjY3sGOChNnc8ltiC2RMvG0s29RlaVYsicX1uLSfDjnCJHottnNwtOKQbY2%2Bjrtvva%2FOuIPZR%2B58eK36tMHhhrp7PxZRWGETTul3wbNskTNqCzgwgK0nu8Yr2LbRyK6SATovCfYtyWU7x469pTJ2mLwT0io3Vbx73LzNr4IBwHZiHq%2BM146j7YhqBCYVJYpvv86raplmKqfDcL894cYVoL884%2FF1XhOTmwGxuLoHP54tG0vlnNKqqZzbm%2FN4vm5KLDhB0q4K6c8CvoTjkhBkyD%2B7oPssBsCAwRUotF6jioGZvtQQE4apW4rAKtye5dwl4nUrPwiBdS3AQ2eBl6GNZyjMAZhdhvCcAOvqKDFZK9hSxKKU5TBnmr81ASZdGgvmdh%2FL4kxE2cs3N6Uz26KMv%2BEaMOUWB1Voq6b7QNhJB4K1pV2wYFn2mo2egCXmzBAIwHdmyEpPfJe%2BxXz9cbmUL9Gj%2Bn9ktHeurjm9Tz0rVaIS3LCW6lyIJI4YQOk%2BB8X2QewORGDQjBdXKLlFBGsHdPGIkr9IzXFpXxDQoDs%2BF%2BtOMSO2gWEO8VWeAkrboLNhFaP74wE0pupkcERZuP%2FFcCkDN1lwhtYeU27K%2F1C3oSRLdxBXsGVkBeQsFtb5X5XiMgHd6oEpQ274eKdMEbKnwj0Lv2gcHDlH%2Fzmp8qF1iilx80eZyEf573tK5UU0MYFrPzs%2FMH3%2F6b0NSZrY9LU3mjkjHX1bHvdmzYbOn25xcs5i3IAJqFG%2F4j%2FcVZ%2BCXsLm1iemP4Ft4w2efWAwUzgLp37D7uzGrKpLnaEdqROZBbDu%2BOax1a9CWbsLDL9fp%2Bd%2BYPNAsvMHBfHJWBLzGbja7C%2FtAxwxhB0UJ3Ea4jR%2B172r%2BCGsPwGeSo5Rq6INnaCXgZLgMX5Zv8gRrF6aBNZD9e8sgK8YuusnZIlSU2mCu3hjPHNoUrmOVn6YHwd4SEfd1tnpjdSCIVrF2OwVN67SvdHw0SvSlG7NFx%2FX87oZo8wvapPT9K%2BqY7bcdAHWBvswV3alHcPEvyUmhss39QcX%2BOyUZpNztRZc30gpurRtHjbBWQZ%2Fk98gQyDUPg3n4G9U05YO6qwAQhwyOqxBQE6tulaoF0eSj1gwFOEXTiyZfYH4%2Bf1fwm6Vu1aH7lU8JZidbRlQhnMJrDltQWt5mBBaQysinCWBPoDVdj%2F6JmbcyYLYH7Abg99fwPFKtrBb9jX8gPyMByGpSLRRsUi%2Bd80QLZ33F9b5W63QZbcKFkDexcQiFUPS0aKrLMrp9fSkjLepFmqO1WnzfZnMlSeIVpTGLgS%2FeI2A1HW0t3NEd79Ff6MIo2bjDyDKzR%2BZAOPB0tBUNy0P%2FG%2FKtKKjEQ0lQhchyiXSv2MNSf3P1zCqhtN0v3bIL5jIhnuIkx8VtaP2tlMrPU0%2BLw1vvdsEy4u4VGDaxinb3HVuPpzg1FimJ6ry6OvzVJB1RXH22v2%2BTdzaNtg5nxsVohxeFO5iunnjGZNGFm1lTo%2FRe7tp2rz0PqlVx0RCA8A9hb2bp0jkm3ZtWFn4OdLZ0fpWPPtM2FbH78krlbQQodSIO%2FSEIlF5VvlhoUta7oWCSmi5zyhmMmGOvhBL02MM5nS%2Fq3cT4maupJGm%2Bebz5LeLNj6geWRILpOzOPJ%2BqlvY91HpnureNlIFZARM5gisC%2BT7qKKwgv3cEPnNhtBCBVY23L75hMdR6ejEQsHsTCnwBVl%2BSrVp8iZhkYisvkWfipxAqPqOByyXyxIyFJg%2FfPJWpUcgQ0vZ5%2FpaJVwJmfcdVZ22rbW%2FOVuMf7fY%2BF1qYsbNfre9P%2Fkx8Xo3oNvIw0HessBh89lSf5u5baRyzWVVBPHxL0FFG4ffoAFwa7ZqMlVYv8AaV5bED2g52lrkBX9jUJuWjTKTQerNYdSKRlaFpV8p3PNX%2BnIqJCZ%2F6ncWLRSMpw3OuVOjDUNxErry2BbXfMXMFxjNbZV9%2BmjU6nLT9CKIGgidoES4MUGQhuds9NTCXmTNMwhFPR2B%2FCbzzjiscneDWgNrtFyeDxAEG%2FMVHe5X%2Fir2h0azfqX8DWA6NyznVpfTaPrQ3C9QFWKRSH7gVkLNaKHDyoLJ3KQlbDS0nkUwoA1mapteQthZ3KkOZrfQXR9nZq6K6VzFJjZa4hE%2FRWge%2Fuu1vjaIoH%2FY1hPbOfhJ0EmkKc2wKYuxDr6EPI4H1atUqmsh1XSMvGwMZsT16yzK7gydygPfQH%2BZNgto47VsAMf7n3ywHJ9OP2nhZ4hCcdtaK8yjJsAmNFr3nEKZKh5%2Bd1RP4if1G%2F0yReCyLmi2kdsuo3ls29moTzkyZFCSqFa101kujcyWO8e3S5PeWeeX1mbBHIsqdRALTlDRt%2BXILwjLKfphzNeN9k8io5JL2TqogDJI%2FEbeuN2QklXYE9zfj5w3i6tUM5TBMS7e3jzIVPBKAyB%2Bq94Gp4cbTNjBIPqxxuPIB6UnjoinJFB9hoH4eN8mv9HC%2FHwtDcc3VMUNWlLMWu8GtWPtxS6y1%2BARMZmLDw6ImrEen1rELy1ZmZOW%2Bg%2BIo8CgZXH8O02K7FImM63qE%2BEsKL7fwWy%2FYufnY3bU0PPAfeeBnZ28oZKvZnq%2B9MBZ1Npl7rrH1g6fEZgTgfUbMkxl7GGOjog9VMscJcSg9EHCZ5AQ4LbGNfxVWt5HCMy%2Fdbgvip16B0xu8ntu7pATSF0y1JsWF1Xa5fW2nHjD87V64hVO4T5JrtBwxUemM2PHxt8WX40g8EgPbxhD9yLwjYzJAsI9MOtCoguIUfkNkK3COjoJxz8W5NnVh3FU%2BmbnsrQUv3qjotRPM%2BTTByzXTRNR79vf6gpfoX%2F1MeqLUyNJm7BCCQkrfi9Ti7fnija23B%2FS2ctB%2B3KihH8PJj98C4yOUFMKyoqo9zoSp6DN788aS4MPhPxf36ymzZVVTKhM28%2BUiBWnznRNULapO7UEmk%2ByJtcKt%2FTvZvLjOkKqWyxD4XkTTC550ThMUpMId2nLKRUmgoWC4HlDJLMyvhy852QUWFJPDrf00KaMsebofmImIagSuxnTVJcm6t23EzAmsk63HCeWYjFYp%2BkPp2jWXeJXJcULJ7gAsBAx4D4SKdgPrIFt0dwBuRKItuGuY6nq74ABdpff0UN%2FhMwRjpevRD23lOTSuv4g4StnYSRBCYo3d3eaF%2FYKYwkW6%2BNUuqEKK6S3sn4YxdCVTAoIV7MclLVFkE6JSQRRCfE5np9TLoac9Qvs5JBUkukDat0esIO6FOBxZUlb%2Fvc7WyAcheMFCx4HB0PV6qb7UhrdiZt5WnW2zqHKICjUk6OSJeEPcLQHF0sG61vTFqasDd9piI61Hi4sObXcMVXnuGuCK76pamGEKCqhqG0EF1H9SrtQwNM5cRXUEN204sJe4gJoKINlWc9s6zl4A5Ot0DRSHVWKPDi4WwwA9ospDA0nC5VcSy0T520YsBL44gl6XWKHwTlgbiTBVkzXXkujymVZCjXqC%2Bj8J9za3Em9zCUp6ONzvA%2BVxO7baL4ZaXfc2Myp8Lh6eRCRDbAuZtGWDbxl1NT7moStnd0KeihuCMeMCS8BSfqbHKoQhCZMuPBwobqDpEB%2BJxATdA9LxKr1ulCD6Io3tUKnGRZGCI1RkCgwQqqDFOrAYvLhOZJ6s5BWAM%2FVvv53q3I4x2cfLlLjoh%2BqMiCD5xmA%2FipnALZ%2Bevr7Mn6jjyWkqUbfGremRzPqCrfbKI6AT3aZjl0mYjqy7elVx72MSWxKCcv4jTF%2F7clIifIYVYrjXBOVtuxwymU6En4zcL7fOmNJ6a43t%2BJk5yhhb9%2B6WRE9rh0svtzReiePj0X6pw5NyYg5nmWUqTGRba8g1OBCgHyqYj629lEbS4jpgdv1XmvK%2BYqwNzWyUkTMNRfXyumbkwe2%2BYaebIZTGH0qqADuH3twAX0l7LKLvQMMzHKNsUz3fZz2zcoQpx9nn8KhgVmEYX1o1b519h1gA49MBukmPDCYGn%2FAMNumF69W%2FKkMmCtAp%2FYmqesoYVmtha8Xl7x4VK%2BBTbHuh26seuOd32MX2V0aaxXv%2FBgqNXGMVpyUBe8p8yUnO3vZtFwvxxVkaqPtvsyWTpbR88YqMXoALXcqSsJsCCoGwwYU1tLoyhV4SRo%2BD3hiowLZbquxwxuHNuSF8LRvYLlthpjEulxue2WwIIdKtZE1yIj9RzX%2BT5xO9u0f%2FRtiplS8NkS%2B3n9zDIu%2B%2F7O7fB7TCRHsl3ytliX8V%2FTq7LkM7Qw67ORqawzMFD5Wdzkex6%2BKMtcj6D%2F1fXJP1VzzRzJwc07Xi2lgS4PkWUO0E5J1Du1vZkrowCLaiNsVLnl1L4AzKXz2sGoan6h3uu%2BGQyoAIqI%2BngRgGC4ByheEFQv%2FHwYUvbArM7Z3V2UZ%2FILzfpTceIsK5y1VLHJoJuNdzX77XC96FK7Lrtx9E3RWzxyNh2HZyvwBvBLXUdAYE50aIi5HFrJHIQDhLDb8n9rOi%2BqubcDZVUioNsDh2eSvl05cI6kYRGmq4S7FD4L6XGNSP6igx20UNQTPA%2BECAKU2KvcvacbOlBF3RUPEjyqtwr5uJ4Se0Z1e2BBcIWDE62RlRzPy2JaQNoSx%2Fc3BQeUEqrx8H%2BMHFPeBx65cHjHicNTK%2BwS0Bw0q%2FqtIDmm6P61M5XTytI2rqCL0IB2PtpZta9dnyLt%2FaYZhPvZyi1gSCakAhp5sWse4It3VYXYBG7C9UqZRPlKxGmqxcpGtJC7oUhHmfzEmfCd7mhIkOVz4nKZK34%2FkmHheCLOYOVGkCjxxzRObQhJzz4ZQGIzwdBD7n8puVcM5qcEumUL6RFVo%2BCRP2UdOzxFAD2Xg%2B8kOxCLl9PzY%2BLRyZe1NBTPGiis%2FnbGZ9ETtbLjoU4f6PDNuQgL0qRnBQRnm7h1Ozf3Hqg8sr1G62%2BC6D2WNFsSProtgPQJq9BZEFBK%2BsnHIVIrjxrJXLW7fHkeAfKQ9EyVbyLWNtKq8VzaThqF6HTIDxWF3FDxoc0MQejc3u8YBeWIv%2F3HGF%2FnY1pBh6VtZqcpQHeP8aO4w%2FRQv0YQoJVmtjYOJWEV68wmIPfq%2BPMjrSBjBtrMXT7fiNLJjxSrXxPttPAWm9MbGsZNx43YQISEsHXiPcgbB5%2ByIH8oCyd9hiRY7QOeqOmvKBcb%2FOzHBvmmw7oHykoQ6Ij1sWvSw01hqvUERpYre9Nw%2BfMaJNmF2d7aooaDxawXY4TRx3rOA52%2BwEbdMH45Rno2RSr4CrCItt%2FH6im8CY4tEXxkiNnoF4g9DxOlLBhQIwYuFeM1SRMjfj69clxTRSpE2e%2F9DYErAEhGKGwtr6veWPp8Cg%3D%3D&__VIEWSTATEENCRYPTED=&__PREVIOUSPAGE=1EZcPAR6Y2GOzrkS5xANLA2&__EVENTVALIDATION=1VdB0tqGHZG%2BxdK5uIRJQZ5WKmC9Qh1QqrohrSND3Tvu50X2JEho9LVI1%2FlaB94PmHeZ5xQmNYJkbNxEpg5nzJvO4XjJm5pB%2FrJP6bY9MKqZWgPL75zn5OHbrAH4AzyaDrCbIuHkM47Iq0ngyVfeUzZZfD%2BjKMg4a5ECfvWqOgA%3D&__ASYNCPOST=true&',
  203.       ( NVPair('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8'), ))
  204.  
  205.     return result
  206.  
  207.   def page5(self):
  208.     """GET Default.aspx (requests 501-511)."""
  209.     result = request501.GET('/Default.aspx')
  210.  
  211.     grinder.sleep(137)
  212.     request502.GET('/css/common_feauters.css', None,
  213.       ( NVPair('If-Modified-Since', 'Wed, 03 Feb 2010 15:38:20 GMT'),
  214.         NVPair('If-None-Match', '\"0fe79e9e6a4ca1:0\"'), ))
  215.  
  216.     grinder.sleep(5279)
  217.     request503.GET('/css/styles_common.css', None,
  218.       ( NVPair('If-Modified-Since', 'Fri, 18 Jun 2010 10:19:40 GMT'),
  219.         NVPair('If-None-Match', '\"0c6d5c2cfecb1:0\"'), ))
  220.  
  221.     grinder.sleep(4959)
  222.     request504.GET('/css/styles.css', None,
  223.       ( NVPair('If-Modified-Since', 'Wed, 02 Jun 2010 12:58:18 GMT'),
  224.         NVPair('If-None-Match', '\"0516545532cb1:0\"'), ))
  225.  
  226.     grinder.sleep(20)
  227.     request505.GET('/css/ie.css', None,
  228.       ( NVPair('If-Modified-Since', 'Wed, 03 Feb 2010 15:38:20 GMT'),
  229.         NVPair('If-None-Match', '\"0fe79e9e6a4ca1:0\"'), ))
  230.  
  231.     request506.GET('/js/mootools/mootools-1.2.2-core-jm.js', None,
  232.       ( NVPair('If-Modified-Since', 'Wed, 03 Feb 2010 15:38:22 GMT'),
  233.         NVPair('If-None-Match', '\"02babeae6a4ca1:0\"'), ))
  234.  
  235.     request507.GET('/js/mootools/mootools-1.2.2.2-more.js', None,
  236.       ( NVPair('If-Modified-Since', 'Wed, 03 Feb 2010 15:38:22 GMT'),
  237.         NVPair('If-None-Match', '\"02babeae6a4ca1:0\"'), ))
  238.  
  239.     request508.GET('/css/print.css', None,
  240.       ( NVPair('If-Modified-Since', 'Mon, 08 Mar 2010 14:50:32 GMT'),
  241.         NVPair('If-None-Match', '\"0aca5b3cebeca1:0\"'), ))
  242.  
  243.     grinder.sleep(14970)
  244.     request509.GET('/js/ui-effects.js', None,
  245.       ( NVPair('If-Modified-Since', 'Fri, 12 Feb 2010 13:13:20 GMT'),
  246.         NVPair('If-None-Match', '\"0189725e5abca1:0\"'), ))
  247.  
  248.     grinder.sleep(167)
  249.     request510.GET('/js/validators.js', None,
  250.       ( NVPair('If-Modified-Since', 'Wed, 03 Feb 2010 15:38:24 GMT'),
  251.         NVPair('If-None-Match', '\"058dcebe6a4ca1:0\"'), ))
  252.  
  253.     grinder.sleep(12)
  254.     request511.GET('/img/logout_yellow.png')
  255.  
  256.     return result
  257.  
  258.   def __call__(self):
  259.     """This method is called for every run performed by the worker thread."""
  260.     self.page1()      # GET / (requests 101-108)
  261.  
  262.     grinder.sleep(4967)
  263.     self.page2()      # GET WebResource.axd (requests 201-203)
  264.  
  265.     grinder.sleep(136018)
  266.     self.page3()      # POST default.aspx (request 301)
  267.  
  268.     grinder.sleep(2882)
  269.     self.page4()      # POST default.aspx (request 401)
  270.  
  271.     grinder.sleep(216)
  272.     self.page5()      # GET Default.aspx (requests 501-511)
  273.  
  274.  
  275. def instrumentMethod(test, method_name, c=TestRunner):
  276.   """Instrument a method with the given Test."""
  277.   unadorned = getattr(c, method_name)
  278.   import new
  279.   method = new.instancemethod(test.wrap(unadorned), None, c)
  280.   setattr(c, method_name, method)
  281.  
  282. # Replace each method with an instrumented version.
  283. # You can call the unadorned method using self.page1.__target__().
  284. instrumentMethod(Test(100, 'Page 1'), 'page1')
  285. instrumentMethod(Test(200, 'Page 2'), 'page2')
  286. instrumentMethod(Test(300, 'Page 3'), 'page3')
  287. instrumentMethod(Test(400, 'Page 4'), 'page4')
  288. instrumentMethod(Test(500, 'Page 5'), 'page5')