diff --git a/README.md b/README.md index 71f76c9..af640bb 100644 --- a/README.md +++ b/README.md @@ -7,12 +7,17 @@ ```sh nimble install -dy + cd shadow -# the default shadow.yml will start 5k nodes, you might want to change that by removing -# lines and setting PEERS to the number of instances -./run.sh -# the output is a "latencies" file, or you can find each host output in the -# data.shadow folder +#the run.sh script is automated to meet different experiment needs, use ./run.sh +#The below example runs the simulation twice for a 500 node network. each publisher publishes a 2000 bytes messages, and messages are not fragmented + +./run.sh 2 500 2000 1 +# The number of nodes is maintained in the shadow.yaml file, and automatically updated by run.sh. +# The output files latencies(x), stats(x) and shadowlog(x) carries the outputs for each simulation run. +# The summary_dontwant.awk, summary_latency.awk, summary_latency_large.awk, and summary_shadowlog.awk parse the output files. +# The run.sh script automatically calls these files to display the output +# a temperary data.shadow folder is created for each simulation and removed by the run.sh after the simulation is over # you can use the plotter tool to extract useful metrics & generate a graph cd ../tools diff --git a/shadow/main.nim b/shadow/main.nim index 1c3cf72..5d66693 100644 --- a/shadow/main.nim +++ b/shadow/main.nim @@ -1,12 +1,17 @@ import stew/endians2, stew/byteutils, tables, strutils, os -import libp2p, libp2p/protocols/pubsub/rpc/messages -import libp2p/muxers/mplex/lpchannel, libp2p/protocols/ping + +import ../../nim-libp2p/libp2p, ../../nim-libp2p/libp2p/protocols/pubsub/rpc/messages +import ../../nim-libp2p/libp2p/muxers/mplex/lpchannel, ../../nim-libp2p/libp2p/protocols/ping + import chronos import sequtils, hashes, math, metrics from times import getTime, toUnix, fromUnix, `-`, initTime, `$`, inMilliseconds from nativesockets import getHostname -const chunks = 1 +var msg_size = parseInt(getEnv("MSG_SIZE")) +var chunks = parseInt(getEnv("FRAGMENTS")) +if chunks < 1 or chunks > 10: #we experiment with upto 10 fragments + chunks = 1 proc msgIdProvider(m: Message): Result[MessageId, ValidationResult] = return ok(($m.data.hash).toBytes()) @@ -16,7 +21,7 @@ proc main {.async.} = hostname = getHostname() myId = parseInt(hostname[4..^1]) #publisherCount = client.param(int, "publisher_count") - publisherCount = 10 + publisherCount = 15 #Every publisher sends one message isPublisher = myId <= publisherCount #isAttacker = (not isPublisher) and myId - publisherCount <= client.param(int, "attacker_count") isAttacker = false @@ -45,7 +50,7 @@ proc main {.async.} = anonymize = true, ) pingProtocol = Ping.new(rng=rng) - gossipSub.parameters.floodPublish = false + gossipSub.parameters.floodPublish = false #gossipSub.parameters.lazyPushThreshold = 1_000_000_000 #gossipSub.parameters.lazyPushThreshold = 0 gossipSub.parameters.opportunisticGraftThreshold = -10000 @@ -79,6 +84,9 @@ proc main {.async.} = sentNanosecs = nanoseconds(sentMoment - seconds(sentMoment.seconds)) sentDate = initTime(sentMoment.seconds, sentNanosecs) diff = getTime() - sentDate + + # pubId = byte(data[11]) + echo sentUint, " milliseconds: ", diff.inMilliseconds() @@ -121,7 +129,7 @@ proc main {.async.} = let connectTo = parseInt(getEnv("CONNECTTO")) var connected = 0 for peerInfo in peersInfo: - if connected >= connectTo: break + if connected >= connectTo+2: break let tAddress = "peer" & $peerInfo & ":5000" echo tAddress let addrs = resolveTAddress(tAddress).mapIt(MultiAddress.init(it).tryGet()) @@ -137,24 +145,42 @@ proc main {.async.} = # warmupMessages = client.param(int, "warmup_messages") #startOfTest = Moment.now() + milliseconds(warmupMessages * maxMessageDelay div 2) - await sleepAsync(10.seconds) - echo "Mesh size: ", gossipSub.mesh.getOrDefault("test").len + await sleepAsync(12.seconds) + echo "Mesh size: ", gossipSub.mesh.getOrDefault("test").len, + ", Total Peers Known : ", gossipSub.gossipsub.getOrDefault("test").len, + ", Direct Peers : ", gossipSub.subscribedDirectPeers.getOrDefault("test").len, + ", Fanout", gossipSub.fanout.getOrDefault("test").len, + ", Heartbeat : ", gossipSub.parameters.heartbeatInterval.milliseconds - for msg in 0 ..< 10:#client.param(int, "message_count"): - await sleepAsync(12.seconds) - if msg mod publisherCount == myId - 1: - #if myId == 1: + await sleepAsync(5.seconds) + + # Actual message publishing, one message published every 3 seconds + let + pubStart = 4 + pubEnd = pubStart + publisherCount + for msg in pubStart .. pubEnd:#client.param(int, "message_count"): + await sleepAsync(3.seconds) + if msg mod (pubEnd+1) == myId: let now = getTime() nowInt = seconds(now.toUnix()) + nanoseconds(times.nanosecond(now)) - #var nowBytes = @(toBytesLE(uint64(nowInt.nanoseconds))) & newSeq[byte](500_000 div chunks) - var nowBytes = @(toBytesLE(uint64(nowInt.nanoseconds))) & newSeq[byte](50) - #echo "sending ", uint64(nowInt.nanoseconds) + #[ + if chunks == 1: + var nowBytes = @(toBytesLE(uint64(nowInt.nanoseconds))) & newSeq[byte](50000) + else: + var nowBytes = @(toBytesLE(uint64(nowInt.nanoseconds))) & newSeq[byte](500_000 div chunks) + ]# + var nowBytes = @(toBytesLE(uint64(nowInt.nanoseconds))) & newSeq[byte](msg_size div chunks) for chunk in 0.. 0) + echo "Done Publishing ", nowInt.nanoseconds - #echo "BW: ", libp2p_protocols_bytes.value(labelValues=["/meshsub/1.1.0", "in"]) + libp2p_protocols_bytes.value(labelValues=["/meshsub/1.1.0", "out"]) - #echo "DUPS: ", libp2p_gossipsub_duplicate.value(), " / ", libp2p_gossipsub_received.value() - + #we need to export these counters from gossipsub.nim + echo "statcounters: dup_during_validation ", libp2p_gossipsub_duplicate_during_validation.value(), + "\tidontwant_saves ", libp2p_gossipsub_idontwant_saved_messages.value(), + "\tdup_received ", libp2p_gossipsub_duplicate.value(), + "\tUnique_msg_received ", libp2p_gossipsub_received.value(), + "\tStaggered_Saves ", libp2p_gossipsub_staggerSave.value(), + "\tDontWant_IN_Stagger ", libp2p_gossipsub_staggerDontWantSave.value() waitFor(main()) diff --git a/shadow/run.sh b/shadow/run.sh index 66cc355..379894c 100755 --- a/shadow/run.sh +++ b/shadow/run.sh @@ -1,8 +1,48 @@ #!/bin/sh -set -e +if [ $# -ne 4 ]; then + echo "Usage: $0 " + exit 1 +fi -nim c -d:chronicles_colors=None --threads:on -d:metrics -d:libp2p_network_protocols_metrics -d:release main -rm -rf shadow.data/ -shadow shadow.yaml -grep -rne 'milliseconds\|BW' shadow.data/ > latencies +runs="$1" #number of simulation runs +nodes="$2" #number of nodes to simulate +msg_size="$3" #message size to use (in bytes) +num_frag="$4" #number of fragments per message (1 for no fragmentation) +connect_to=5 +shadow_file="shadow.yaml" + +#we modify shadow.yaml for simulation environment +sed -i '/environment:/q' "$shadow_file" +sed -E -i "s/\"PEERS\": \"[0-9]+\".*}/\"PEERS\": \"$nodes\", \"CONNECTTO\": \"$connect_to\", \ +\"MSG_SIZE\": \"$msg_size\", \"FRAGMENTS\": \"$num_frag\"}/" "$shadow_file" + +#we modify shadow.yaml for the number of nodes +counter=2 +while [ $counter -le $nodes ]; do + echo " peer$counter: *client_host" >> "$shadow_file" + counter=$((counter + 1)) +done + +rm -f shadowlog* latencies* stats* main && rm -rf shadow.data/ +nim c -d:chronicles_colors=None --threads:on -d:metrics -d:libp2p_network_protocols_metrics -d:release main + +for i in $(seq $runs); do + echo "Running for turn "$i + shadow shadow.yaml > shadowlog$i && + grep -rne 'milliseconds\|BW' shadow.data/ > latencies$i && + grep -rne 'statcounters:' shadow.data/ > stats$i + #uncomment to to receive every nodes log in shadow data + #rm -rf shadow.data/ +done + +for i in $(seq $runs); do + echo "Summary for turn "$i + if [ "$msg_size" -lt 1000 ]; then + awk -f summary_latency.awk latencies$i #precise per hop coverage for short messages only + else + awk -f summary_latency_large.awk latencies$i #estimated coverage for large messages (TxTime adds to latency) + fi + awk -f summary_shadowlog.awk shadowlog$i + awk -f summary_dontwant.awk stats$i +done diff --git a/shadow/shadow.yaml b/shadow/shadow.yaml index 116ff4d..210a862 100644 --- a/shadow/shadow.yaml +++ b/shadow/shadow.yaml @@ -31,7 +31,7 @@ hosts: processes: - path: ./main start_time: 5s - environment: {"PEERS": "10", "CONNECTTO": "5"} + environment: {"PEERS": "500", "CONNECTTO": "5", "MSG_SIZE": "500", "FRAGMENTS": "1"} peer2: *client_host peer3: *client_host peer4: *client_host @@ -41,4993 +41,4 @@ hosts: peer8: *client_host peer9: *client_host peer10: *client_host -# peer11: *client_host -# peer12: *client_host -# peer13: *client_host -# peer14: *client_host -# peer15: *client_host -# peer16: *client_host -# peer17: *client_host -# peer18: *client_host -# peer19: *client_host -# peer20: *client_host -# peer21: *client_host -# peer22: *client_host -# peer23: *client_host -# peer24: *client_host -# peer25: *client_host -# peer26: *client_host -# peer27: *client_host -# peer28: *client_host -# peer29: *client_host -# peer30: *client_host -# peer31: *client_host -# peer32: *client_host -# peer33: *client_host -# peer34: *client_host -# peer35: *client_host -# peer36: *client_host -# peer37: *client_host -# peer38: *client_host -# peer39: *client_host -# peer40: *client_host -# peer41: *client_host -# peer42: *client_host -# peer43: *client_host -# peer44: *client_host -# peer45: *client_host -# peer46: *client_host -# peer47: *client_host -# peer48: *client_host -# peer49: *client_host -# peer50: *client_host -# peer51: *client_host -# peer52: *client_host -# peer53: *client_host -# peer54: *client_host -# peer55: *client_host -# peer56: *client_host -# peer57: *client_host -# peer58: *client_host -# peer59: *client_host -# peer60: *client_host -# peer61: *client_host -# peer62: *client_host -# peer63: *client_host -# peer64: *client_host -# peer65: *client_host -# peer66: *client_host -# peer67: *client_host -# peer68: *client_host -# peer69: *client_host -# peer70: *client_host -# peer71: *client_host -# peer72: *client_host -# peer73: *client_host -# peer74: *client_host -# peer75: *client_host -# peer76: *client_host -# peer77: *client_host -# peer78: *client_host -# peer79: *client_host -# peer80: *client_host -# peer81: *client_host -# peer82: *client_host -# peer83: *client_host -# peer84: *client_host -# peer85: *client_host -# peer86: *client_host -# peer87: *client_host -# peer88: *client_host -# peer89: *client_host -# peer90: *client_host -# peer91: *client_host -# peer92: *client_host -# peer93: *client_host -# peer94: *client_host -# peer95: *client_host -# peer96: *client_host -# peer97: *client_host -# peer98: *client_host -# peer99: *client_host -# peer100: *client_host -# peer101: *client_host -# peer102: *client_host -# peer103: *client_host -# peer104: *client_host -# peer105: *client_host -# peer106: *client_host -# peer107: *client_host -# peer108: *client_host -# peer109: *client_host -# peer110: *client_host -# peer111: *client_host -# peer112: *client_host -# peer113: *client_host -# peer114: *client_host -# peer115: *client_host -# peer116: *client_host -# peer117: *client_host -# peer118: *client_host -# peer119: *client_host -# peer120: *client_host -# peer121: *client_host -# peer122: *client_host -# peer123: *client_host -# peer124: *client_host -# peer125: *client_host -# peer126: *client_host -# peer127: *client_host -# peer128: *client_host -# peer129: *client_host -# peer130: *client_host -# peer131: *client_host -# peer132: *client_host -# peer133: *client_host -# peer134: *client_host -# peer135: *client_host -# peer136: *client_host -# peer137: *client_host -# peer138: *client_host -# peer139: *client_host -# peer140: *client_host -# peer141: *client_host -# peer142: *client_host -# peer143: *client_host -# peer144: *client_host -# peer145: *client_host -# peer146: *client_host -# peer147: *client_host -# peer148: *client_host -# peer149: *client_host -# peer150: *client_host -# peer151: *client_host -# peer152: *client_host -# peer153: *client_host -# peer154: *client_host -# peer155: *client_host -# peer156: *client_host -# peer157: *client_host -# peer158: *client_host -# peer159: *client_host -# peer160: *client_host -# peer161: *client_host -# peer162: *client_host -# peer163: *client_host -# peer164: *client_host -# peer165: *client_host -# peer166: *client_host -# peer167: *client_host -# peer168: *client_host -# peer169: *client_host -# peer170: *client_host -# peer171: *client_host -# peer172: *client_host -# peer173: *client_host -# peer174: *client_host -# peer175: *client_host -# peer176: *client_host -# peer177: *client_host -# peer178: *client_host -# peer179: *client_host -# peer180: *client_host -# peer181: *client_host -# peer182: *client_host -# peer183: *client_host -# peer184: *client_host -# peer185: *client_host -# peer186: *client_host -# peer187: *client_host -# peer188: *client_host -# peer189: *client_host -# peer190: *client_host -# peer191: *client_host -# peer192: *client_host -# peer193: *client_host -# peer194: *client_host -# peer195: *client_host -# peer196: *client_host -# peer197: *client_host -# peer198: *client_host -# peer199: *client_host -# peer200: *client_host -# peer201: *client_host -# peer202: *client_host -# peer203: *client_host -# peer204: *client_host -# peer205: *client_host -# peer206: *client_host -# peer207: *client_host -# peer208: *client_host -# peer209: *client_host -# peer210: *client_host -# peer211: *client_host -# peer212: *client_host -# peer213: *client_host -# peer214: *client_host -# peer215: *client_host -# peer216: *client_host -# peer217: *client_host -# peer218: *client_host -# peer219: *client_host -# peer220: *client_host -# peer221: *client_host -# peer222: *client_host -# peer223: *client_host -# peer224: *client_host -# peer225: *client_host -# peer226: *client_host -# peer227: *client_host -# peer228: *client_host -# peer229: *client_host -# peer230: *client_host -# peer231: *client_host -# peer232: *client_host -# peer233: *client_host -# peer234: *client_host -# peer235: *client_host -# peer236: *client_host -# peer237: *client_host -# peer238: *client_host -# peer239: *client_host -# peer240: *client_host -# peer241: *client_host -# peer242: *client_host -# peer243: *client_host -# peer244: *client_host -# peer245: *client_host -# peer246: *client_host -# peer247: *client_host -# peer248: *client_host -# peer249: *client_host -# peer250: *client_host -# peer251: *client_host -# peer252: *client_host -# peer253: *client_host -# peer254: *client_host -# peer255: *client_host -# peer256: *client_host -# peer257: *client_host -# peer258: *client_host -# peer259: *client_host -# peer260: *client_host -# peer261: *client_host -# peer262: *client_host -# peer263: *client_host -# peer264: *client_host -# peer265: *client_host -# peer266: *client_host -# peer267: *client_host -# peer268: *client_host -# peer269: *client_host -# peer270: *client_host -# peer271: *client_host -# peer272: *client_host -# peer273: *client_host -# peer274: *client_host -# peer275: *client_host -# peer276: *client_host -# peer277: *client_host -# peer278: *client_host -# peer279: *client_host -# peer280: *client_host -# peer281: *client_host -# peer282: *client_host -# peer283: *client_host -# peer284: *client_host -# peer285: *client_host -# peer286: *client_host -# peer287: *client_host -# peer288: *client_host -# peer289: *client_host -# peer290: *client_host -# peer291: *client_host -# peer292: *client_host -# peer293: *client_host -# peer294: *client_host -# peer295: *client_host -# peer296: *client_host -# peer297: *client_host -# peer298: *client_host -# peer299: *client_host -# peer300: *client_host -# peer301: *client_host -# peer302: *client_host -# peer303: *client_host -# peer304: *client_host -# peer305: *client_host -# peer306: *client_host -# peer307: *client_host -# peer308: *client_host -# peer309: *client_host -# peer310: *client_host -# peer311: *client_host -# peer312: *client_host -# peer313: *client_host -# peer314: *client_host -# peer315: *client_host -# peer316: *client_host -# peer317: *client_host -# peer318: *client_host -# peer319: *client_host -# peer320: *client_host -# peer321: *client_host -# peer322: *client_host -# peer323: *client_host -# peer324: *client_host -# peer325: *client_host -# peer326: *client_host -# peer327: *client_host -# peer328: *client_host -# peer329: *client_host -# peer330: *client_host -# peer331: *client_host -# peer332: *client_host -# peer333: *client_host -# peer334: *client_host -# peer335: *client_host -# peer336: *client_host -# peer337: *client_host -# peer338: *client_host -# peer339: *client_host -# peer340: *client_host -# peer341: *client_host -# peer342: *client_host -# peer343: *client_host -# peer344: *client_host -# peer345: *client_host -# peer346: *client_host -# peer347: *client_host -# peer348: *client_host -# peer349: *client_host -# peer350: *client_host -# peer351: *client_host -# peer352: *client_host -# peer353: *client_host -# peer354: *client_host -# peer355: *client_host -# peer356: *client_host -# peer357: *client_host -# peer358: *client_host -# peer359: *client_host -# peer360: *client_host -# peer361: *client_host -# peer362: *client_host -# peer363: *client_host -# peer364: *client_host -# peer365: *client_host -# peer366: *client_host -# peer367: *client_host -# peer368: *client_host -# peer369: *client_host -# peer370: *client_host -# peer371: *client_host -# peer372: *client_host -# peer373: *client_host -# peer374: *client_host -# peer375: *client_host -# peer376: *client_host -# peer377: *client_host -# peer378: *client_host -# peer379: *client_host -# peer380: *client_host -# peer381: *client_host -# peer382: *client_host -# peer383: *client_host -# peer384: *client_host -# peer385: *client_host -# peer386: *client_host -# peer387: *client_host -# peer388: *client_host -# peer389: *client_host -# peer390: *client_host -# peer391: *client_host -# peer392: *client_host -# peer393: *client_host -# peer394: *client_host -# peer395: *client_host -# peer396: *client_host -# peer397: *client_host -# peer398: *client_host -# peer399: *client_host -# peer400: *client_host -# peer401: *client_host -# peer402: *client_host -# peer403: *client_host -# peer404: *client_host -# peer405: *client_host -# peer406: *client_host -# peer407: *client_host -# peer408: *client_host -# peer409: *client_host -# peer410: *client_host -# peer411: *client_host -# peer412: *client_host -# peer413: *client_host -# peer414: *client_host -# peer415: *client_host -# peer416: *client_host -# peer417: *client_host -# peer418: *client_host -# peer419: *client_host -# peer420: *client_host -# peer421: *client_host -# peer422: *client_host -# peer423: *client_host -# peer424: *client_host -# peer425: *client_host -# peer426: *client_host -# peer427: *client_host -# peer428: *client_host -# peer429: *client_host -# peer430: *client_host -# peer431: *client_host -# peer432: *client_host -# peer433: *client_host -# peer434: *client_host -# peer435: *client_host -# peer436: *client_host -# peer437: *client_host -# peer438: *client_host -# peer439: *client_host -# peer440: *client_host -# peer441: *client_host -# peer442: *client_host -# peer443: *client_host -# peer444: *client_host -# peer445: *client_host -# peer446: *client_host -# peer447: *client_host -# peer448: *client_host -# peer449: *client_host -# peer450: *client_host -# peer451: *client_host -# peer452: *client_host -# peer453: *client_host -# peer454: *client_host -# peer455: *client_host -# peer456: *client_host -# peer457: *client_host -# peer458: *client_host -# peer459: *client_host -# peer460: *client_host -# peer461: *client_host -# peer462: *client_host -# peer463: *client_host -# peer464: *client_host -# peer465: *client_host -# peer466: *client_host -# peer467: *client_host -# peer468: *client_host -# peer469: *client_host -# peer470: *client_host -# peer471: *client_host -# peer472: *client_host -# peer473: *client_host -# peer474: *client_host -# peer475: *client_host -# peer476: *client_host -# peer477: *client_host -# peer478: *client_host -# peer479: *client_host -# peer480: *client_host -# peer481: *client_host -# peer482: *client_host -# peer483: *client_host -# peer484: *client_host -# peer485: *client_host -# peer486: *client_host -# peer487: *client_host -# peer488: *client_host -# peer489: *client_host -# peer490: *client_host -# peer491: *client_host -# peer492: *client_host -# peer493: *client_host -# peer494: *client_host -# peer495: *client_host -# peer496: *client_host -# peer497: *client_host -# peer498: *client_host -# peer499: *client_host -# peer500: *client_host -# peer501: *client_host -# peer502: *client_host -# peer503: *client_host -# peer504: *client_host -# peer505: *client_host -# peer506: *client_host -# peer507: *client_host -# peer508: *client_host -# peer509: *client_host -# peer510: *client_host -# peer511: *client_host -# peer512: *client_host -# peer513: *client_host -# peer514: *client_host -# peer515: *client_host -# peer516: *client_host -# peer517: *client_host -# peer518: *client_host -# peer519: *client_host -# peer520: *client_host -# peer521: *client_host -# peer522: *client_host -# peer523: *client_host -# peer524: *client_host -# peer525: *client_host -# peer526: *client_host -# peer527: *client_host -# peer528: *client_host -# peer529: *client_host -# peer530: *client_host -# peer531: *client_host -# peer532: *client_host -# peer533: *client_host -# peer534: *client_host -# peer535: *client_host -# peer536: *client_host -# peer537: *client_host -# peer538: *client_host -# peer539: *client_host -# peer540: *client_host -# peer541: *client_host -# peer542: *client_host -# peer543: *client_host -# peer544: *client_host -# peer545: *client_host -# peer546: *client_host -# peer547: *client_host -# peer548: *client_host -# peer549: *client_host -# peer550: *client_host -# peer551: *client_host -# peer552: *client_host -# peer553: *client_host -# peer554: *client_host -# peer555: *client_host -# peer556: *client_host -# peer557: *client_host -# peer558: *client_host -# peer559: *client_host -# peer560: *client_host -# peer561: *client_host -# peer562: *client_host -# peer563: *client_host -# peer564: *client_host -# peer565: *client_host -# peer566: *client_host -# peer567: *client_host -# peer568: *client_host -# peer569: *client_host -# peer570: *client_host -# peer571: *client_host -# peer572: *client_host -# peer573: *client_host -# peer574: *client_host -# peer575: *client_host -# peer576: *client_host -# peer577: *client_host -# peer578: *client_host -# peer579: *client_host -# peer580: *client_host -# peer581: *client_host -# peer582: *client_host -# peer583: *client_host -# peer584: *client_host -# peer585: *client_host -# peer586: *client_host -# peer587: *client_host -# peer588: *client_host -# peer589: *client_host -# peer590: *client_host -# peer591: *client_host -# peer592: *client_host -# peer593: *client_host -# peer594: *client_host -# peer595: *client_host -# peer596: *client_host -# peer597: *client_host -# peer598: *client_host -# peer599: *client_host -# peer600: *client_host -# peer601: *client_host -# peer602: *client_host -# peer603: *client_host -# peer604: *client_host -# peer605: *client_host -# peer606: *client_host -# peer607: *client_host -# peer608: *client_host -# peer609: *client_host -# peer610: *client_host -# peer611: *client_host -# peer612: *client_host -# peer613: *client_host -# peer614: *client_host -# peer615: *client_host -# peer616: *client_host -# peer617: *client_host -# peer618: *client_host -# peer619: *client_host -# peer620: *client_host -# peer621: *client_host -# peer622: *client_host -# peer623: *client_host -# peer624: *client_host -# peer625: *client_host -# peer626: *client_host -# peer627: *client_host -# peer628: *client_host -# peer629: *client_host -# peer630: *client_host -# peer631: *client_host -# peer632: *client_host -# peer633: *client_host -# peer634: *client_host -# peer635: *client_host -# peer636: *client_host -# peer637: *client_host -# peer638: *client_host -# peer639: *client_host -# peer640: *client_host -# peer641: *client_host -# peer642: *client_host -# peer643: *client_host -# peer644: *client_host -# peer645: *client_host -# peer646: *client_host -# peer647: *client_host -# peer648: *client_host -# peer649: *client_host -# peer650: *client_host -# peer651: *client_host -# peer652: *client_host -# peer653: *client_host -# peer654: *client_host -# peer655: *client_host -# peer656: *client_host -# peer657: *client_host -# peer658: *client_host -# peer659: *client_host -# peer660: *client_host -# peer661: *client_host -# peer662: *client_host -# peer663: *client_host -# peer664: *client_host -# peer665: *client_host -# peer666: *client_host -# peer667: *client_host -# peer668: *client_host -# peer669: *client_host -# peer670: *client_host -# peer671: *client_host -# peer672: *client_host -# peer673: *client_host -# peer674: *client_host -# peer675: *client_host -# peer676: *client_host -# peer677: *client_host -# peer678: *client_host -# peer679: *client_host -# peer680: *client_host -# peer681: *client_host -# peer682: *client_host -# peer683: *client_host -# peer684: *client_host -# peer685: *client_host -# peer686: *client_host -# peer687: *client_host -# peer688: *client_host -# peer689: *client_host -# peer690: *client_host -# peer691: *client_host -# peer692: *client_host -# peer693: *client_host -# peer694: *client_host -# peer695: *client_host -# peer696: *client_host -# peer697: *client_host -# peer698: *client_host -# peer699: *client_host -# peer700: *client_host -# peer701: *client_host -# peer702: *client_host -# peer703: *client_host -# peer704: *client_host -# peer705: *client_host -# peer706: *client_host -# peer707: *client_host -# peer708: *client_host -# peer709: *client_host -# peer710: *client_host -# peer711: *client_host -# peer712: *client_host -# peer713: *client_host -# peer714: *client_host -# peer715: *client_host -# peer716: *client_host -# peer717: *client_host -# peer718: *client_host -# peer719: *client_host -# peer720: *client_host -# peer721: *client_host -# peer722: *client_host -# peer723: *client_host -# peer724: *client_host -# peer725: *client_host -# peer726: *client_host -# peer727: *client_host -# peer728: *client_host -# peer729: *client_host -# peer730: *client_host -# peer731: *client_host -# peer732: *client_host -# peer733: *client_host -# peer734: *client_host -# peer735: *client_host -# peer736: *client_host -# peer737: *client_host -# peer738: *client_host -# peer739: *client_host -# peer740: *client_host -# peer741: *client_host -# peer742: *client_host -# peer743: *client_host -# peer744: *client_host -# peer745: *client_host -# peer746: *client_host -# peer747: *client_host -# peer748: *client_host -# peer749: *client_host -# peer750: *client_host -# peer751: *client_host -# peer752: *client_host -# peer753: *client_host -# peer754: *client_host -# peer755: *client_host -# peer756: *client_host -# peer757: *client_host -# peer758: *client_host -# peer759: *client_host -# peer760: *client_host -# peer761: *client_host -# peer762: *client_host -# peer763: *client_host -# peer764: *client_host -# peer765: *client_host -# peer766: *client_host -# peer767: *client_host -# peer768: *client_host -# peer769: *client_host -# peer770: *client_host -# peer771: *client_host -# peer772: *client_host -# peer773: *client_host -# peer774: *client_host -# peer775: *client_host -# peer776: *client_host -# peer777: *client_host -# peer778: *client_host -# peer779: *client_host -# peer780: *client_host -# peer781: *client_host -# peer782: *client_host -# peer783: *client_host -# peer784: *client_host -# peer785: *client_host -# peer786: *client_host -# peer787: *client_host -# peer788: *client_host -# peer789: *client_host -# peer790: *client_host -# peer791: *client_host -# peer792: *client_host -# peer793: *client_host -# peer794: *client_host -# peer795: *client_host -# peer796: *client_host -# peer797: *client_host -# peer798: *client_host -# peer799: *client_host -# peer800: *client_host -# peer801: *client_host -# peer802: *client_host -# peer803: *client_host -# peer804: *client_host -# peer805: *client_host -# peer806: *client_host -# peer807: *client_host -# peer808: *client_host -# peer809: *client_host -# peer810: *client_host -# peer811: *client_host -# peer812: *client_host -# peer813: *client_host -# peer814: *client_host -# peer815: *client_host -# peer816: *client_host -# peer817: *client_host -# peer818: *client_host -# peer819: *client_host -# peer820: *client_host -# peer821: *client_host -# peer822: *client_host -# peer823: *client_host -# peer824: *client_host -# peer825: *client_host -# peer826: *client_host -# peer827: *client_host -# peer828: *client_host -# peer829: *client_host -# peer830: *client_host -# peer831: *client_host -# peer832: *client_host -# peer833: *client_host -# peer834: *client_host -# peer835: *client_host -# peer836: *client_host -# peer837: *client_host -# peer838: *client_host -# peer839: *client_host -# peer840: *client_host -# peer841: *client_host -# peer842: *client_host -# peer843: *client_host -# peer844: *client_host -# peer845: *client_host -# peer846: *client_host -# peer847: *client_host -# peer848: *client_host -# peer849: *client_host -# peer850: *client_host -# peer851: *client_host -# peer852: *client_host -# peer853: *client_host -# peer854: *client_host -# peer855: *client_host -# peer856: *client_host -# peer857: *client_host -# peer858: *client_host -# peer859: *client_host -# peer860: *client_host -# peer861: *client_host -# peer862: *client_host -# peer863: *client_host -# peer864: *client_host -# peer865: *client_host -# peer866: *client_host -# peer867: *client_host -# peer868: *client_host -# peer869: *client_host -# peer870: *client_host -# peer871: *client_host -# peer872: *client_host -# peer873: *client_host -# peer874: *client_host -# peer875: *client_host -# peer876: *client_host -# peer877: *client_host -# peer878: *client_host -# peer879: *client_host -# peer880: *client_host -# peer881: *client_host -# peer882: *client_host -# peer883: *client_host -# peer884: *client_host -# peer885: *client_host -# peer886: *client_host -# peer887: *client_host -# peer888: *client_host -# peer889: *client_host -# peer890: *client_host -# peer891: *client_host -# peer892: *client_host -# peer893: *client_host -# peer894: *client_host -# peer895: *client_host -# peer896: *client_host -# peer897: *client_host -# peer898: *client_host -# peer899: *client_host -# peer900: *client_host -# peer901: *client_host -# peer902: *client_host -# peer903: *client_host -# peer904: *client_host -# peer905: *client_host -# peer906: *client_host -# peer907: *client_host -# peer908: *client_host -# peer909: *client_host -# peer910: *client_host -# peer911: *client_host -# peer912: *client_host -# peer913: *client_host -# peer914: *client_host -# peer915: *client_host -# peer916: *client_host -# peer917: *client_host -# peer918: *client_host -# peer919: *client_host -# peer920: *client_host -# peer921: *client_host -# peer922: *client_host -# peer923: *client_host -# peer924: *client_host -# peer925: *client_host -# peer926: *client_host -# peer927: *client_host -# peer928: *client_host -# peer929: *client_host -# peer930: *client_host -# peer931: *client_host -# peer932: *client_host -# peer933: *client_host -# peer934: *client_host -# peer935: *client_host -# peer936: *client_host -# peer937: *client_host -# peer938: *client_host -# peer939: *client_host -# peer940: *client_host -# peer941: *client_host -# peer942: *client_host -# peer943: *client_host -# peer944: *client_host -# peer945: *client_host -# peer946: *client_host -# peer947: *client_host -# peer948: *client_host -# peer949: *client_host -# peer950: *client_host -# peer951: *client_host -# peer952: *client_host -# peer953: *client_host -# peer954: *client_host -# peer955: *client_host -# peer956: *client_host -# peer957: *client_host -# peer958: *client_host -# peer959: *client_host -# peer960: *client_host -# peer961: *client_host -# peer962: *client_host -# peer963: *client_host -# peer964: *client_host -# peer965: *client_host -# peer966: *client_host -# peer967: *client_host -# peer968: *client_host -# peer969: *client_host -# peer970: *client_host -# peer971: *client_host -# peer972: *client_host -# peer973: *client_host -# peer974: *client_host -# peer975: *client_host -# peer976: *client_host -# peer977: *client_host -# peer978: *client_host -# peer979: *client_host -# peer980: *client_host -# peer981: *client_host -# peer982: *client_host -# peer983: *client_host -# peer984: *client_host -# peer985: *client_host -# peer986: *client_host -# peer987: *client_host -# peer988: *client_host -# peer989: *client_host -# peer990: *client_host -# peer991: *client_host -# peer992: *client_host -# peer993: *client_host -# peer994: *client_host -# peer995: *client_host -# peer996: *client_host -# peer997: *client_host -# peer998: *client_host -# peer999: *client_host -# peer1000: *client_host -# peer1001: *client_host -# peer1002: *client_host -# peer1003: *client_host -# peer1004: *client_host -# peer1005: *client_host -# peer1006: *client_host -# peer1007: *client_host -# peer1008: *client_host -# peer1009: *client_host -# peer1010: *client_host -# peer1011: *client_host -# peer1012: *client_host -# peer1013: *client_host -# peer1014: *client_host -# peer1015: *client_host -# peer1016: *client_host -# peer1017: *client_host -# peer1018: *client_host -# peer1019: *client_host -# peer1020: *client_host -# peer1021: *client_host -# peer1022: *client_host -# peer1023: *client_host -# peer1024: *client_host -# peer1025: *client_host -# peer1026: *client_host -# peer1027: *client_host -# peer1028: *client_host -# peer1029: *client_host -# peer1030: *client_host -# peer1031: *client_host -# peer1032: *client_host -# peer1033: *client_host -# peer1034: *client_host -# peer1035: *client_host -# peer1036: *client_host -# peer1037: *client_host -# peer1038: *client_host -# peer1039: *client_host -# peer1040: *client_host -# peer1041: *client_host -# peer1042: *client_host -# peer1043: *client_host -# peer1044: *client_host -# peer1045: *client_host -# peer1046: *client_host -# peer1047: *client_host -# peer1048: *client_host -# peer1049: *client_host -# peer1050: *client_host -# peer1051: *client_host -# peer1052: *client_host -# peer1053: *client_host -# peer1054: *client_host -# peer1055: *client_host -# peer1056: *client_host -# peer1057: *client_host -# peer1058: *client_host -# peer1059: *client_host -# peer1060: *client_host -# peer1061: *client_host -# peer1062: *client_host -# peer1063: *client_host -# peer1064: *client_host -# peer1065: *client_host -# peer1066: *client_host -# peer1067: *client_host -# peer1068: *client_host -# peer1069: *client_host -# peer1070: *client_host -# peer1071: *client_host -# peer1072: *client_host -# peer1073: *client_host -# peer1074: *client_host -# peer1075: *client_host -# peer1076: *client_host -# peer1077: *client_host -# peer1078: *client_host -# peer1079: *client_host -# peer1080: *client_host -# peer1081: *client_host -# peer1082: *client_host -# peer1083: *client_host -# peer1084: *client_host -# peer1085: *client_host -# peer1086: *client_host -# peer1087: *client_host -# peer1088: *client_host -# peer1089: *client_host -# peer1090: *client_host -# peer1091: *client_host -# peer1092: *client_host -# peer1093: *client_host -# peer1094: *client_host -# peer1095: *client_host -# peer1096: *client_host -# peer1097: *client_host -# peer1098: *client_host -# peer1099: *client_host -# peer1100: *client_host -# peer1101: *client_host -# peer1102: *client_host -# peer1103: *client_host -# peer1104: *client_host -# peer1105: *client_host -# peer1106: *client_host -# peer1107: *client_host -# peer1108: *client_host -# peer1109: *client_host -# peer1110: *client_host -# peer1111: *client_host -# peer1112: *client_host -# peer1113: *client_host -# peer1114: *client_host -# peer1115: *client_host -# peer1116: *client_host -# peer1117: *client_host -# peer1118: *client_host -# peer1119: *client_host -# peer1120: *client_host -# peer1121: *client_host -# peer1122: *client_host -# peer1123: *client_host -# peer1124: *client_host -# peer1125: *client_host -# peer1126: *client_host -# peer1127: *client_host -# peer1128: *client_host -# peer1129: *client_host -# peer1130: *client_host -# peer1131: *client_host -# peer1132: *client_host -# peer1133: *client_host -# peer1134: *client_host -# peer1135: *client_host -# peer1136: *client_host -# peer1137: *client_host -# peer1138: *client_host -# peer1139: *client_host -# peer1140: *client_host -# peer1141: *client_host -# peer1142: *client_host -# peer1143: *client_host -# peer1144: *client_host -# peer1145: *client_host -# peer1146: *client_host -# peer1147: *client_host -# peer1148: *client_host -# peer1149: *client_host -# peer1150: *client_host -# peer1151: *client_host -# peer1152: *client_host -# peer1153: *client_host -# peer1154: *client_host -# peer1155: *client_host -# peer1156: *client_host -# peer1157: *client_host -# peer1158: *client_host -# peer1159: *client_host -# peer1160: *client_host -# peer1161: *client_host -# peer1162: *client_host -# peer1163: *client_host -# peer1164: *client_host -# peer1165: *client_host -# peer1166: *client_host -# peer1167: *client_host -# peer1168: *client_host -# peer1169: *client_host -# peer1170: *client_host -# peer1171: *client_host -# peer1172: *client_host -# peer1173: *client_host -# peer1174: *client_host -# peer1175: *client_host -# peer1176: *client_host -# peer1177: *client_host -# peer1178: *client_host -# peer1179: *client_host -# peer1180: *client_host -# peer1181: *client_host -# peer1182: *client_host -# peer1183: *client_host -# peer1184: *client_host -# peer1185: *client_host -# peer1186: *client_host -# peer1187: *client_host -# peer1188: *client_host -# peer1189: *client_host -# peer1190: *client_host -# peer1191: *client_host -# peer1192: *client_host -# peer1193: *client_host -# peer1194: *client_host -# peer1195: *client_host -# peer1196: *client_host -# peer1197: *client_host -# peer1198: *client_host -# peer1199: *client_host -# peer1200: *client_host -# peer1201: *client_host -# peer1202: *client_host -# peer1203: *client_host -# peer1204: *client_host -# peer1205: *client_host -# peer1206: *client_host -# peer1207: *client_host -# peer1208: *client_host -# peer1209: *client_host -# peer1210: *client_host -# peer1211: *client_host -# peer1212: *client_host -# peer1213: *client_host -# peer1214: *client_host -# peer1215: *client_host -# peer1216: *client_host -# peer1217: *client_host -# peer1218: *client_host -# peer1219: *client_host -# peer1220: *client_host -# peer1221: *client_host -# peer1222: *client_host -# peer1223: *client_host -# peer1224: *client_host -# peer1225: *client_host -# peer1226: *client_host -# peer1227: *client_host -# peer1228: *client_host -# peer1229: *client_host -# peer1230: *client_host -# peer1231: *client_host -# peer1232: *client_host -# peer1233: *client_host -# peer1234: *client_host -# peer1235: *client_host -# peer1236: *client_host -# peer1237: *client_host -# peer1238: *client_host -# peer1239: *client_host -# peer1240: *client_host -# peer1241: *client_host -# peer1242: *client_host -# peer1243: *client_host -# peer1244: *client_host -# peer1245: *client_host -# peer1246: *client_host -# peer1247: *client_host -# peer1248: *client_host -# peer1249: *client_host -# peer1250: *client_host -# peer1251: *client_host -# peer1252: *client_host -# peer1253: *client_host -# peer1254: *client_host -# peer1255: *client_host -# peer1256: *client_host -# peer1257: *client_host -# peer1258: *client_host -# peer1259: *client_host -# peer1260: *client_host -# peer1261: *client_host -# peer1262: *client_host -# peer1263: *client_host -# peer1264: *client_host -# peer1265: *client_host -# peer1266: *client_host -# peer1267: *client_host -# peer1268: *client_host -# peer1269: *client_host -# peer1270: *client_host -# peer1271: *client_host -# peer1272: *client_host -# peer1273: *client_host -# peer1274: *client_host -# peer1275: *client_host -# peer1276: *client_host -# peer1277: *client_host -# peer1278: *client_host -# peer1279: *client_host -# peer1280: *client_host -# peer1281: *client_host -# peer1282: *client_host -# peer1283: *client_host -# peer1284: *client_host -# peer1285: *client_host -# peer1286: *client_host -# peer1287: *client_host -# peer1288: *client_host -# peer1289: *client_host -# peer1290: *client_host -# peer1291: *client_host -# peer1292: *client_host -# peer1293: *client_host -# peer1294: *client_host -# peer1295: *client_host -# peer1296: *client_host -# peer1297: *client_host -# peer1298: *client_host -# peer1299: *client_host -# peer1300: *client_host -# peer1301: *client_host -# peer1302: *client_host -# peer1303: *client_host -# peer1304: *client_host -# peer1305: *client_host -# peer1306: *client_host -# peer1307: *client_host -# peer1308: *client_host -# peer1309: *client_host -# peer1310: *client_host -# peer1311: *client_host -# peer1312: *client_host -# peer1313: *client_host -# peer1314: *client_host -# peer1315: *client_host -# peer1316: *client_host -# peer1317: *client_host -# peer1318: *client_host -# peer1319: *client_host -# peer1320: *client_host -# peer1321: *client_host -# peer1322: *client_host -# peer1323: *client_host -# peer1324: *client_host -# peer1325: *client_host -# peer1326: *client_host -# peer1327: *client_host -# peer1328: *client_host -# peer1329: *client_host -# peer1330: *client_host -# peer1331: *client_host -# peer1332: *client_host -# peer1333: *client_host -# peer1334: *client_host -# peer1335: *client_host -# peer1336: *client_host -# peer1337: *client_host -# peer1338: *client_host -# peer1339: *client_host -# peer1340: *client_host -# peer1341: *client_host -# peer1342: *client_host -# peer1343: *client_host -# peer1344: *client_host -# peer1345: *client_host -# peer1346: *client_host -# peer1347: *client_host -# peer1348: *client_host -# peer1349: *client_host -# peer1350: *client_host -# peer1351: *client_host -# peer1352: *client_host -# peer1353: *client_host -# peer1354: *client_host -# peer1355: *client_host -# peer1356: *client_host -# peer1357: *client_host -# peer1358: *client_host -# peer1359: *client_host -# peer1360: *client_host -# peer1361: *client_host -# peer1362: *client_host -# peer1363: *client_host -# peer1364: *client_host -# peer1365: *client_host -# peer1366: *client_host -# peer1367: *client_host -# peer1368: *client_host -# peer1369: *client_host -# peer1370: *client_host -# peer1371: *client_host -# peer1372: *client_host -# peer1373: *client_host -# peer1374: *client_host -# peer1375: *client_host -# peer1376: *client_host -# peer1377: *client_host -# peer1378: *client_host -# peer1379: *client_host -# peer1380: *client_host -# peer1381: *client_host -# peer1382: *client_host -# peer1383: *client_host -# peer1384: *client_host -# peer1385: *client_host -# peer1386: *client_host -# peer1387: *client_host -# peer1388: *client_host -# peer1389: *client_host -# peer1390: *client_host -# peer1391: *client_host -# peer1392: *client_host -# peer1393: *client_host -# peer1394: *client_host -# peer1395: *client_host -# peer1396: *client_host -# peer1397: *client_host -# peer1398: *client_host -# peer1399: *client_host -# peer1400: *client_host -# peer1401: *client_host -# peer1402: *client_host -# peer1403: *client_host -# peer1404: *client_host -# peer1405: *client_host -# peer1406: *client_host -# peer1407: *client_host -# peer1408: *client_host -# peer1409: *client_host -# peer1410: *client_host -# peer1411: *client_host -# peer1412: *client_host -# peer1413: *client_host -# peer1414: *client_host -# peer1415: *client_host -# peer1416: *client_host -# peer1417: *client_host -# peer1418: *client_host -# peer1419: *client_host -# peer1420: *client_host -# peer1421: *client_host -# peer1422: *client_host -# peer1423: *client_host -# peer1424: *client_host -# peer1425: *client_host -# peer1426: *client_host -# peer1427: *client_host -# peer1428: *client_host -# peer1429: *client_host -# peer1430: *client_host -# peer1431: *client_host -# peer1432: *client_host -# peer1433: *client_host -# peer1434: *client_host -# peer1435: *client_host -# peer1436: *client_host -# peer1437: *client_host -# peer1438: *client_host -# peer1439: *client_host -# peer1440: *client_host -# peer1441: *client_host -# peer1442: *client_host -# peer1443: *client_host -# peer1444: *client_host -# peer1445: *client_host -# peer1446: *client_host -# peer1447: *client_host -# peer1448: *client_host -# peer1449: *client_host -# peer1450: *client_host -# peer1451: *client_host -# peer1452: *client_host -# peer1453: *client_host -# peer1454: *client_host -# peer1455: *client_host -# peer1456: *client_host -# peer1457: *client_host -# peer1458: *client_host -# peer1459: *client_host -# peer1460: *client_host -# peer1461: *client_host -# peer1462: *client_host -# peer1463: *client_host -# peer1464: *client_host -# peer1465: *client_host -# peer1466: *client_host -# peer1467: *client_host -# peer1468: *client_host -# peer1469: *client_host -# peer1470: *client_host -# peer1471: *client_host -# peer1472: *client_host -# peer1473: *client_host -# peer1474: *client_host -# peer1475: *client_host -# peer1476: *client_host -# peer1477: *client_host -# peer1478: *client_host -# peer1479: *client_host -# peer1480: *client_host -# peer1481: *client_host -# peer1482: *client_host -# peer1483: *client_host -# peer1484: *client_host -# peer1485: *client_host -# peer1486: *client_host -# peer1487: *client_host -# peer1488: *client_host -# peer1489: *client_host -# peer1490: *client_host -# peer1491: *client_host -# peer1492: *client_host -# peer1493: *client_host -# peer1494: *client_host -# peer1495: *client_host -# peer1496: *client_host -# peer1497: *client_host -# peer1498: *client_host -# peer1499: *client_host -# peer1500: *client_host -# peer1501: *client_host -# peer1502: *client_host -# peer1503: *client_host -# peer1504: *client_host -# peer1505: *client_host -# peer1506: *client_host -# peer1507: *client_host -# peer1508: *client_host -# peer1509: *client_host -# peer1510: *client_host -# peer1511: *client_host -# peer1512: *client_host -# peer1513: *client_host -# peer1514: *client_host -# peer1515: *client_host -# peer1516: *client_host -# peer1517: *client_host -# peer1518: *client_host -# peer1519: *client_host -# peer1520: *client_host -# peer1521: *client_host -# peer1522: *client_host -# peer1523: *client_host -# peer1524: *client_host -# peer1525: *client_host -# peer1526: *client_host -# peer1527: *client_host -# peer1528: *client_host -# peer1529: *client_host -# peer1530: *client_host -# peer1531: *client_host -# peer1532: *client_host -# peer1533: *client_host -# peer1534: *client_host -# peer1535: *client_host -# peer1536: *client_host -# peer1537: *client_host -# peer1538: *client_host -# peer1539: *client_host -# peer1540: *client_host -# peer1541: *client_host -# peer1542: *client_host -# peer1543: *client_host -# peer1544: *client_host -# peer1545: *client_host -# peer1546: *client_host -# peer1547: *client_host -# peer1548: *client_host -# peer1549: *client_host -# peer1550: *client_host -# peer1551: *client_host -# peer1552: *client_host -# peer1553: *client_host -# peer1554: *client_host -# peer1555: *client_host -# peer1556: *client_host -# peer1557: *client_host -# peer1558: *client_host -# peer1559: *client_host -# peer1560: *client_host -# peer1561: *client_host -# peer1562: *client_host -# peer1563: *client_host -# peer1564: *client_host -# peer1565: *client_host -# peer1566: *client_host -# peer1567: *client_host -# peer1568: *client_host -# peer1569: *client_host -# peer1570: *client_host -# peer1571: *client_host -# peer1572: *client_host -# peer1573: *client_host -# peer1574: *client_host -# peer1575: *client_host -# peer1576: *client_host -# peer1577: *client_host -# peer1578: *client_host -# peer1579: *client_host -# peer1580: *client_host -# peer1581: *client_host -# peer1582: *client_host -# peer1583: *client_host -# peer1584: *client_host -# peer1585: *client_host -# peer1586: *client_host -# peer1587: *client_host -# peer1588: *client_host -# peer1589: *client_host -# peer1590: *client_host -# peer1591: *client_host -# peer1592: *client_host -# peer1593: *client_host -# peer1594: *client_host -# peer1595: *client_host -# peer1596: *client_host -# peer1597: *client_host -# peer1598: *client_host -# peer1599: *client_host -# peer1600: *client_host -# peer1601: *client_host -# peer1602: *client_host -# peer1603: *client_host -# peer1604: *client_host -# peer1605: *client_host -# peer1606: *client_host -# peer1607: *client_host -# peer1608: *client_host -# peer1609: *client_host -# peer1610: *client_host -# peer1611: *client_host -# peer1612: *client_host -# peer1613: *client_host -# peer1614: *client_host -# peer1615: *client_host -# peer1616: *client_host -# peer1617: *client_host -# peer1618: *client_host -# peer1619: *client_host -# peer1620: *client_host -# peer1621: *client_host -# peer1622: *client_host -# peer1623: *client_host -# peer1624: *client_host -# peer1625: *client_host -# peer1626: *client_host -# peer1627: *client_host -# peer1628: *client_host -# peer1629: *client_host -# peer1630: *client_host -# peer1631: *client_host -# peer1632: *client_host -# peer1633: *client_host -# peer1634: *client_host -# peer1635: *client_host -# peer1636: *client_host -# peer1637: *client_host -# peer1638: *client_host -# peer1639: *client_host -# peer1640: *client_host -# peer1641: *client_host -# peer1642: *client_host -# peer1643: *client_host -# peer1644: *client_host -# peer1645: *client_host -# peer1646: *client_host -# peer1647: *client_host -# peer1648: *client_host -# peer1649: *client_host -# peer1650: *client_host -# peer1651: *client_host -# peer1652: *client_host -# peer1653: *client_host -# peer1654: *client_host -# peer1655: *client_host -# peer1656: *client_host -# peer1657: *client_host -# peer1658: *client_host -# peer1659: *client_host -# peer1660: *client_host -# peer1661: *client_host -# peer1662: *client_host -# peer1663: *client_host -# peer1664: *client_host -# peer1665: *client_host -# peer1666: *client_host -# peer1667: *client_host -# peer1668: *client_host -# peer1669: *client_host -# peer1670: *client_host -# peer1671: *client_host -# peer1672: *client_host -# peer1673: *client_host -# peer1674: *client_host -# peer1675: *client_host -# peer1676: *client_host -# peer1677: *client_host -# peer1678: *client_host -# peer1679: *client_host -# peer1680: *client_host -# peer1681: *client_host -# peer1682: *client_host -# peer1683: *client_host -# peer1684: *client_host -# peer1685: *client_host -# peer1686: *client_host -# peer1687: *client_host -# peer1688: *client_host -# peer1689: *client_host -# peer1690: *client_host -# peer1691: *client_host -# peer1692: *client_host -# peer1693: *client_host -# peer1694: *client_host -# peer1695: *client_host -# peer1696: *client_host -# peer1697: *client_host -# peer1698: *client_host -# peer1699: *client_host -# peer1700: *client_host -# peer1701: *client_host -# peer1702: *client_host -# peer1703: *client_host -# peer1704: *client_host -# peer1705: *client_host -# peer1706: *client_host -# peer1707: *client_host -# peer1708: *client_host -# peer1709: *client_host -# peer1710: *client_host -# peer1711: *client_host -# peer1712: *client_host -# peer1713: *client_host -# peer1714: *client_host -# peer1715: *client_host -# peer1716: *client_host -# peer1717: *client_host -# peer1718: *client_host -# peer1719: *client_host -# peer1720: *client_host -# peer1721: *client_host -# peer1722: *client_host -# peer1723: *client_host -# peer1724: *client_host -# peer1725: *client_host -# peer1726: *client_host -# peer1727: *client_host -# peer1728: *client_host -# peer1729: *client_host -# peer1730: *client_host -# peer1731: *client_host -# peer1732: *client_host -# peer1733: *client_host -# peer1734: *client_host -# peer1735: *client_host -# peer1736: *client_host -# peer1737: *client_host -# peer1738: *client_host -# peer1739: *client_host -# peer1740: *client_host -# peer1741: *client_host -# peer1742: *client_host -# peer1743: *client_host -# peer1744: *client_host -# peer1745: *client_host -# peer1746: *client_host -# peer1747: *client_host -# peer1748: *client_host -# peer1749: *client_host -# peer1750: *client_host -# peer1751: *client_host -# peer1752: *client_host -# peer1753: *client_host -# peer1754: *client_host -# peer1755: *client_host -# peer1756: *client_host -# peer1757: *client_host -# peer1758: *client_host -# peer1759: *client_host -# peer1760: *client_host -# peer1761: *client_host -# peer1762: *client_host -# peer1763: *client_host -# peer1764: *client_host -# peer1765: *client_host -# peer1766: *client_host -# peer1767: *client_host -# peer1768: *client_host -# peer1769: *client_host -# peer1770: *client_host -# peer1771: *client_host -# peer1772: *client_host -# peer1773: *client_host -# peer1774: *client_host -# peer1775: *client_host -# peer1776: *client_host -# peer1777: *client_host -# peer1778: *client_host -# peer1779: *client_host -# peer1780: *client_host -# peer1781: *client_host -# peer1782: *client_host -# peer1783: *client_host -# peer1784: *client_host -# peer1785: *client_host -# peer1786: *client_host -# peer1787: *client_host -# peer1788: *client_host -# peer1789: *client_host -# peer1790: *client_host -# peer1791: *client_host -# peer1792: *client_host -# peer1793: *client_host -# peer1794: *client_host -# peer1795: *client_host -# peer1796: *client_host -# peer1797: *client_host -# peer1798: *client_host -# peer1799: *client_host -# peer1800: *client_host -# peer1801: *client_host -# peer1802: *client_host -# peer1803: *client_host -# peer1804: *client_host -# peer1805: *client_host -# peer1806: *client_host -# peer1807: *client_host -# peer1808: *client_host -# peer1809: *client_host -# peer1810: *client_host -# peer1811: *client_host -# peer1812: *client_host -# peer1813: *client_host -# peer1814: *client_host -# peer1815: *client_host -# peer1816: *client_host -# peer1817: *client_host -# peer1818: *client_host -# peer1819: *client_host -# peer1820: *client_host -# peer1821: *client_host -# peer1822: *client_host -# peer1823: *client_host -# peer1824: *client_host -# peer1825: *client_host -# peer1826: *client_host -# peer1827: *client_host -# peer1828: *client_host -# peer1829: *client_host -# peer1830: *client_host -# peer1831: *client_host -# peer1832: *client_host -# peer1833: *client_host -# peer1834: *client_host -# peer1835: *client_host -# peer1836: *client_host -# peer1837: *client_host -# peer1838: *client_host -# peer1839: *client_host -# peer1840: *client_host -# peer1841: *client_host -# peer1842: *client_host -# peer1843: *client_host -# peer1844: *client_host -# peer1845: *client_host -# peer1846: *client_host -# peer1847: *client_host -# peer1848: *client_host -# peer1849: *client_host -# peer1850: *client_host -# peer1851: *client_host -# peer1852: *client_host -# peer1853: *client_host -# peer1854: *client_host -# peer1855: *client_host -# peer1856: *client_host -# peer1857: *client_host -# peer1858: *client_host -# peer1859: *client_host -# peer1860: *client_host -# peer1861: *client_host -# peer1862: *client_host -# peer1863: *client_host -# peer1864: *client_host -# peer1865: *client_host -# peer1866: *client_host -# peer1867: *client_host -# peer1868: *client_host -# peer1869: *client_host -# peer1870: *client_host -# peer1871: *client_host -# peer1872: *client_host -# peer1873: *client_host -# peer1874: *client_host -# peer1875: *client_host -# peer1876: *client_host -# peer1877: *client_host -# peer1878: *client_host -# peer1879: *client_host -# peer1880: *client_host -# peer1881: *client_host -# peer1882: *client_host -# peer1883: *client_host -# peer1884: *client_host -# peer1885: *client_host -# peer1886: *client_host -# peer1887: *client_host -# peer1888: *client_host -# peer1889: *client_host -# peer1890: *client_host -# peer1891: *client_host -# peer1892: *client_host -# peer1893: *client_host -# peer1894: *client_host -# peer1895: *client_host -# peer1896: *client_host -# peer1897: *client_host -# peer1898: *client_host -# peer1899: *client_host -# peer1900: *client_host -# peer1901: *client_host -# peer1902: *client_host -# peer1903: *client_host -# peer1904: *client_host -# peer1905: *client_host -# peer1906: *client_host -# peer1907: *client_host -# peer1908: *client_host -# peer1909: *client_host -# peer1910: *client_host -# peer1911: *client_host -# peer1912: *client_host -# peer1913: *client_host -# peer1914: *client_host -# peer1915: *client_host -# peer1916: *client_host -# peer1917: *client_host -# peer1918: *client_host -# peer1919: *client_host -# peer1920: *client_host -# peer1921: *client_host -# peer1922: *client_host -# peer1923: *client_host -# peer1924: *client_host -# peer1925: *client_host -# peer1926: *client_host -# peer1927: *client_host -# peer1928: *client_host -# peer1929: *client_host -# peer1930: *client_host -# peer1931: *client_host -# peer1932: *client_host -# peer1933: *client_host -# peer1934: *client_host -# peer1935: *client_host -# peer1936: *client_host -# peer1937: *client_host -# peer1938: *client_host -# peer1939: *client_host -# peer1940: *client_host -# peer1941: *client_host -# peer1942: *client_host -# peer1943: *client_host -# peer1944: *client_host -# peer1945: *client_host -# peer1946: *client_host -# peer1947: *client_host -# peer1948: *client_host -# peer1949: *client_host -# peer1950: *client_host -# peer1951: *client_host -# peer1952: *client_host -# peer1953: *client_host -# peer1954: *client_host -# peer1955: *client_host -# peer1956: *client_host -# peer1957: *client_host -# peer1958: *client_host -# peer1959: *client_host -# peer1960: *client_host -# peer1961: *client_host -# peer1962: *client_host -# peer1963: *client_host -# peer1964: *client_host -# peer1965: *client_host -# peer1966: *client_host -# peer1967: *client_host -# peer1968: *client_host -# peer1969: *client_host -# peer1970: *client_host -# peer1971: *client_host -# peer1972: *client_host -# peer1973: *client_host -# peer1974: *client_host -# peer1975: *client_host -# peer1976: *client_host -# peer1977: *client_host -# peer1978: *client_host -# peer1979: *client_host -# peer1980: *client_host -# peer1981: *client_host -# peer1982: *client_host -# peer1983: *client_host -# peer1984: *client_host -# peer1985: *client_host -# peer1986: *client_host -# peer1987: *client_host -# peer1988: *client_host -# peer1989: *client_host -# peer1990: *client_host -# peer1991: *client_host -# peer1992: *client_host -# peer1993: *client_host -# peer1994: *client_host -# peer1995: *client_host -# peer1996: *client_host -# peer1997: *client_host -# peer1998: *client_host -# peer1999: *client_host -# peer2000: *client_host -# peer2001: *client_host -# peer2002: *client_host -# peer2003: *client_host -# peer2004: *client_host -# peer2005: *client_host -# peer2006: *client_host -# peer2007: *client_host -# peer2008: *client_host -# peer2009: *client_host -# peer2010: *client_host -# peer2011: *client_host -# peer2012: *client_host -# peer2013: *client_host -# peer2014: *client_host -# peer2015: *client_host -# peer2016: *client_host -# peer2017: *client_host -# peer2018: *client_host -# peer2019: *client_host -# peer2020: *client_host -# peer2021: *client_host -# peer2022: *client_host -# peer2023: *client_host -# peer2024: *client_host -# peer2025: *client_host -# peer2026: *client_host -# peer2027: *client_host -# peer2028: *client_host -# peer2029: *client_host -# peer2030: *client_host -# peer2031: *client_host -# peer2032: *client_host -# peer2033: *client_host -# peer2034: *client_host -# peer2035: *client_host -# peer2036: *client_host -# peer2037: *client_host -# peer2038: *client_host -# peer2039: *client_host -# peer2040: *client_host -# peer2041: *client_host -# peer2042: *client_host -# peer2043: *client_host -# peer2044: *client_host -# peer2045: *client_host -# peer2046: *client_host -# peer2047: *client_host -# peer2048: *client_host -# peer2049: *client_host -# peer2050: *client_host -# peer2051: *client_host -# peer2052: *client_host -# peer2053: *client_host -# peer2054: *client_host -# peer2055: *client_host -# peer2056: *client_host -# peer2057: *client_host -# peer2058: *client_host -# peer2059: *client_host -# peer2060: *client_host -# peer2061: *client_host -# peer2062: *client_host -# peer2063: *client_host -# peer2064: *client_host -# peer2065: *client_host -# peer2066: *client_host -# peer2067: *client_host -# peer2068: *client_host -# peer2069: *client_host -# peer2070: *client_host -# peer2071: *client_host -# peer2072: *client_host -# peer2073: *client_host -# peer2074: *client_host -# peer2075: *client_host -# peer2076: *client_host -# peer2077: *client_host -# peer2078: *client_host -# peer2079: *client_host -# peer2080: *client_host -# peer2081: *client_host -# peer2082: *client_host -# peer2083: *client_host -# peer2084: *client_host -# peer2085: *client_host -# peer2086: *client_host -# peer2087: *client_host -# peer2088: *client_host -# peer2089: *client_host -# peer2090: *client_host -# peer2091: *client_host -# peer2092: *client_host -# peer2093: *client_host -# peer2094: *client_host -# peer2095: *client_host -# peer2096: *client_host -# peer2097: *client_host -# peer2098: *client_host -# peer2099: *client_host -# peer2100: *client_host -# peer2101: *client_host -# peer2102: *client_host -# peer2103: *client_host -# peer2104: *client_host -# peer2105: *client_host -# peer2106: *client_host -# peer2107: *client_host -# peer2108: *client_host -# peer2109: *client_host -# peer2110: *client_host -# peer2111: *client_host -# peer2112: *client_host -# peer2113: *client_host -# peer2114: *client_host -# peer2115: *client_host -# peer2116: *client_host -# peer2117: *client_host -# peer2118: *client_host -# peer2119: *client_host -# peer2120: *client_host -# peer2121: *client_host -# peer2122: *client_host -# peer2123: *client_host -# peer2124: *client_host -# peer2125: *client_host -# peer2126: *client_host -# peer2127: *client_host -# peer2128: *client_host -# peer2129: *client_host -# peer2130: *client_host -# peer2131: *client_host -# peer2132: *client_host -# peer2133: *client_host -# peer2134: *client_host -# peer2135: *client_host -# peer2136: *client_host -# peer2137: *client_host -# peer2138: *client_host -# peer2139: *client_host -# peer2140: *client_host -# peer2141: *client_host -# peer2142: *client_host -# peer2143: *client_host -# peer2144: *client_host -# peer2145: *client_host -# peer2146: *client_host -# peer2147: *client_host -# peer2148: *client_host -# peer2149: *client_host -# peer2150: *client_host -# peer2151: *client_host -# peer2152: *client_host -# peer2153: *client_host -# peer2154: *client_host -# peer2155: *client_host -# peer2156: *client_host -# peer2157: *client_host -# peer2158: *client_host -# peer2159: *client_host -# peer2160: *client_host -# peer2161: *client_host -# peer2162: *client_host -# peer2163: *client_host -# peer2164: *client_host -# peer2165: *client_host -# peer2166: *client_host -# peer2167: *client_host -# peer2168: *client_host -# peer2169: *client_host -# peer2170: *client_host -# peer2171: *client_host -# peer2172: *client_host -# peer2173: *client_host -# peer2174: *client_host -# peer2175: *client_host -# peer2176: *client_host -# peer2177: *client_host -# peer2178: *client_host -# peer2179: *client_host -# peer2180: *client_host -# peer2181: *client_host -# peer2182: *client_host -# peer2183: *client_host -# peer2184: *client_host -# peer2185: *client_host -# peer2186: *client_host -# peer2187: *client_host -# peer2188: *client_host -# peer2189: *client_host -# peer2190: *client_host -# peer2191: *client_host -# peer2192: *client_host -# peer2193: *client_host -# peer2194: *client_host -# peer2195: *client_host -# peer2196: *client_host -# peer2197: *client_host -# peer2198: *client_host -# peer2199: *client_host -# peer2200: *client_host -# peer2201: *client_host -# peer2202: *client_host -# peer2203: *client_host -# peer2204: *client_host -# peer2205: *client_host -# peer2206: *client_host -# peer2207: *client_host -# peer2208: *client_host -# peer2209: *client_host -# peer2210: *client_host -# peer2211: *client_host -# peer2212: *client_host -# peer2213: *client_host -# peer2214: *client_host -# peer2215: *client_host -# peer2216: *client_host -# peer2217: *client_host -# peer2218: *client_host -# peer2219: *client_host -# peer2220: *client_host -# peer2221: *client_host -# peer2222: *client_host -# peer2223: *client_host -# peer2224: *client_host -# peer2225: *client_host -# peer2226: *client_host -# peer2227: *client_host -# peer2228: *client_host -# peer2229: *client_host -# peer2230: *client_host -# peer2231: *client_host -# peer2232: *client_host -# peer2233: *client_host -# peer2234: *client_host -# peer2235: *client_host -# peer2236: *client_host -# peer2237: *client_host -# peer2238: *client_host -# peer2239: *client_host -# peer2240: *client_host -# peer2241: *client_host -# peer2242: *client_host -# peer2243: *client_host -# peer2244: *client_host -# peer2245: *client_host -# peer2246: *client_host -# peer2247: *client_host -# peer2248: *client_host -# peer2249: *client_host -# peer2250: *client_host -# peer2251: *client_host -# peer2252: *client_host -# peer2253: *client_host -# peer2254: *client_host -# peer2255: *client_host -# peer2256: *client_host -# peer2257: *client_host -# peer2258: *client_host -# peer2259: *client_host -# peer2260: *client_host -# peer2261: *client_host -# peer2262: *client_host -# peer2263: *client_host -# peer2264: *client_host -# peer2265: *client_host -# peer2266: *client_host -# peer2267: *client_host -# peer2268: *client_host -# peer2269: *client_host -# peer2270: *client_host -# peer2271: *client_host -# peer2272: *client_host -# peer2273: *client_host -# peer2274: *client_host -# peer2275: *client_host -# peer2276: *client_host -# peer2277: *client_host -# peer2278: *client_host -# peer2279: *client_host -# peer2280: *client_host -# peer2281: *client_host -# peer2282: *client_host -# peer2283: *client_host -# peer2284: *client_host -# peer2285: *client_host -# peer2286: *client_host -# peer2287: *client_host -# peer2288: *client_host -# peer2289: *client_host -# peer2290: *client_host -# peer2291: *client_host -# peer2292: *client_host -# peer2293: *client_host -# peer2294: *client_host -# peer2295: *client_host -# peer2296: *client_host -# peer2297: *client_host -# peer2298: *client_host -# peer2299: *client_host -# peer2300: *client_host -# peer2301: *client_host -# peer2302: *client_host -# peer2303: *client_host -# peer2304: *client_host -# peer2305: *client_host -# peer2306: *client_host -# peer2307: *client_host -# peer2308: *client_host -# peer2309: *client_host -# peer2310: *client_host -# peer2311: *client_host -# peer2312: *client_host -# peer2313: *client_host -# peer2314: *client_host -# peer2315: *client_host -# peer2316: *client_host -# peer2317: *client_host -# peer2318: *client_host -# peer2319: *client_host -# peer2320: *client_host -# peer2321: *client_host -# peer2322: *client_host -# peer2323: *client_host -# peer2324: *client_host -# peer2325: *client_host -# peer2326: *client_host -# peer2327: *client_host -# peer2328: *client_host -# peer2329: *client_host -# peer2330: *client_host -# peer2331: *client_host -# peer2332: *client_host -# peer2333: *client_host -# peer2334: *client_host -# peer2335: *client_host -# peer2336: *client_host -# peer2337: *client_host -# peer2338: *client_host -# peer2339: *client_host -# peer2340: *client_host -# peer2341: *client_host -# peer2342: *client_host -# peer2343: *client_host -# peer2344: *client_host -# peer2345: *client_host -# peer2346: *client_host -# peer2347: *client_host -# peer2348: *client_host -# peer2349: *client_host -# peer2350: *client_host -# peer2351: *client_host -# peer2352: *client_host -# peer2353: *client_host -# peer2354: *client_host -# peer2355: *client_host -# peer2356: *client_host -# peer2357: *client_host -# peer2358: *client_host -# peer2359: *client_host -# peer2360: *client_host -# peer2361: *client_host -# peer2362: *client_host -# peer2363: *client_host -# peer2364: *client_host -# peer2365: *client_host -# peer2366: *client_host -# peer2367: *client_host -# peer2368: *client_host -# peer2369: *client_host -# peer2370: *client_host -# peer2371: *client_host -# peer2372: *client_host -# peer2373: *client_host -# peer2374: *client_host -# peer2375: *client_host -# peer2376: *client_host -# peer2377: *client_host -# peer2378: *client_host -# peer2379: *client_host -# peer2380: *client_host -# peer2381: *client_host -# peer2382: *client_host -# peer2383: *client_host -# peer2384: *client_host -# peer2385: *client_host -# peer2386: *client_host -# peer2387: *client_host -# peer2388: *client_host -# peer2389: *client_host -# peer2390: *client_host -# peer2391: *client_host -# peer2392: *client_host -# peer2393: *client_host -# peer2394: *client_host -# peer2395: *client_host -# peer2396: *client_host -# peer2397: *client_host -# peer2398: *client_host -# peer2399: *client_host -# peer2400: *client_host -# peer2401: *client_host -# peer2402: *client_host -# peer2403: *client_host -# peer2404: *client_host -# peer2405: *client_host -# peer2406: *client_host -# peer2407: *client_host -# peer2408: *client_host -# peer2409: *client_host -# peer2410: *client_host -# peer2411: *client_host -# peer2412: *client_host -# peer2413: *client_host -# peer2414: *client_host -# peer2415: *client_host -# peer2416: *client_host -# peer2417: *client_host -# peer2418: *client_host -# peer2419: *client_host -# peer2420: *client_host -# peer2421: *client_host -# peer2422: *client_host -# peer2423: *client_host -# peer2424: *client_host -# peer2425: *client_host -# peer2426: *client_host -# peer2427: *client_host -# peer2428: *client_host -# peer2429: *client_host -# peer2430: *client_host -# peer2431: *client_host -# peer2432: *client_host -# peer2433: *client_host -# peer2434: *client_host -# peer2435: *client_host -# peer2436: *client_host -# peer2437: *client_host -# peer2438: *client_host -# peer2439: *client_host -# peer2440: *client_host -# peer2441: *client_host -# peer2442: *client_host -# peer2443: *client_host -# peer2444: *client_host -# peer2445: *client_host -# peer2446: *client_host -# peer2447: *client_host -# peer2448: *client_host -# peer2449: *client_host -# peer2450: *client_host -# peer2451: *client_host -# peer2452: *client_host -# peer2453: *client_host -# peer2454: *client_host -# peer2455: *client_host -# peer2456: *client_host -# peer2457: *client_host -# peer2458: *client_host -# peer2459: *client_host -# peer2460: *client_host -# peer2461: *client_host -# peer2462: *client_host -# peer2463: *client_host -# peer2464: *client_host -# peer2465: *client_host -# peer2466: *client_host -# peer2467: *client_host -# peer2468: *client_host -# peer2469: *client_host -# peer2470: *client_host -# peer2471: *client_host -# peer2472: *client_host -# peer2473: *client_host -# peer2474: *client_host -# peer2475: *client_host -# peer2476: *client_host -# peer2477: *client_host -# peer2478: *client_host -# peer2479: *client_host -# peer2480: *client_host -# peer2481: *client_host -# peer2482: *client_host -# peer2483: *client_host -# peer2484: *client_host -# peer2485: *client_host -# peer2486: *client_host -# peer2487: *client_host -# peer2488: *client_host -# peer2489: *client_host -# peer2490: *client_host -# peer2491: *client_host -# peer2492: *client_host -# peer2493: *client_host -# peer2494: *client_host -# peer2495: *client_host -# peer2496: *client_host -# peer2497: *client_host -# peer2498: *client_host -# peer2499: *client_host -# peer2500: *client_host -# peer2501: *client_host -# peer2502: *client_host -# peer2503: *client_host -# peer2504: *client_host -# peer2505: *client_host -# peer2506: *client_host -# peer2507: *client_host -# peer2508: *client_host -# peer2509: *client_host -# peer2510: *client_host -# peer2511: *client_host -# peer2512: *client_host -# peer2513: *client_host -# peer2514: *client_host -# peer2515: *client_host -# peer2516: *client_host -# peer2517: *client_host -# peer2518: *client_host -# peer2519: *client_host -# peer2520: *client_host -# peer2521: *client_host -# peer2522: *client_host -# peer2523: *client_host -# peer2524: *client_host -# peer2525: *client_host -# peer2526: *client_host -# peer2527: *client_host -# peer2528: *client_host -# peer2529: *client_host -# peer2530: *client_host -# peer2531: *client_host -# peer2532: *client_host -# peer2533: *client_host -# peer2534: *client_host -# peer2535: *client_host -# peer2536: *client_host -# peer2537: *client_host -# peer2538: *client_host -# peer2539: *client_host -# peer2540: *client_host -# peer2541: *client_host -# peer2542: *client_host -# peer2543: *client_host -# peer2544: *client_host -# peer2545: *client_host -# peer2546: *client_host -# peer2547: *client_host -# peer2548: *client_host -# peer2549: *client_host -# peer2550: *client_host -# peer2551: *client_host -# peer2552: *client_host -# peer2553: *client_host -# peer2554: *client_host -# peer2555: *client_host -# peer2556: *client_host -# peer2557: *client_host -# peer2558: *client_host -# peer2559: *client_host -# peer2560: *client_host -# peer2561: *client_host -# peer2562: *client_host -# peer2563: *client_host -# peer2564: *client_host -# peer2565: *client_host -# peer2566: *client_host -# peer2567: *client_host -# peer2568: *client_host -# peer2569: *client_host -# peer2570: *client_host -# peer2571: *client_host -# peer2572: *client_host -# peer2573: *client_host -# peer2574: *client_host -# peer2575: *client_host -# peer2576: *client_host -# peer2577: *client_host -# peer2578: *client_host -# peer2579: *client_host -# peer2580: *client_host -# peer2581: *client_host -# peer2582: *client_host -# peer2583: *client_host -# peer2584: *client_host -# peer2585: *client_host -# peer2586: *client_host -# peer2587: *client_host -# peer2588: *client_host -# peer2589: *client_host -# peer2590: *client_host -# peer2591: *client_host -# peer2592: *client_host -# peer2593: *client_host -# peer2594: *client_host -# peer2595: *client_host -# peer2596: *client_host -# peer2597: *client_host -# peer2598: *client_host -# peer2599: *client_host -# peer2600: *client_host -# peer2601: *client_host -# peer2602: *client_host -# peer2603: *client_host -# peer2604: *client_host -# peer2605: *client_host -# peer2606: *client_host -# peer2607: *client_host -# peer2608: *client_host -# peer2609: *client_host -# peer2610: *client_host -# peer2611: *client_host -# peer2612: *client_host -# peer2613: *client_host -# peer2614: *client_host -# peer2615: *client_host -# peer2616: *client_host -# peer2617: *client_host -# peer2618: *client_host -# peer2619: *client_host -# peer2620: *client_host -# peer2621: *client_host -# peer2622: *client_host -# peer2623: *client_host -# peer2624: *client_host -# peer2625: *client_host -# peer2626: *client_host -# peer2627: *client_host -# peer2628: *client_host -# peer2629: *client_host -# peer2630: *client_host -# peer2631: *client_host -# peer2632: *client_host -# peer2633: *client_host -# peer2634: *client_host -# peer2635: *client_host -# peer2636: *client_host -# peer2637: *client_host -# peer2638: *client_host -# peer2639: *client_host -# peer2640: *client_host -# peer2641: *client_host -# peer2642: *client_host -# peer2643: *client_host -# peer2644: *client_host -# peer2645: *client_host -# peer2646: *client_host -# peer2647: *client_host -# peer2648: *client_host -# peer2649: *client_host -# peer2650: *client_host -# peer2651: *client_host -# peer2652: *client_host -# peer2653: *client_host -# peer2654: *client_host -# peer2655: *client_host -# peer2656: *client_host -# peer2657: *client_host -# peer2658: *client_host -# peer2659: *client_host -# peer2660: *client_host -# peer2661: *client_host -# peer2662: *client_host -# peer2663: *client_host -# peer2664: *client_host -# peer2665: *client_host -# peer2666: *client_host -# peer2667: *client_host -# peer2668: *client_host -# peer2669: *client_host -# peer2670: *client_host -# peer2671: *client_host -# peer2672: *client_host -# peer2673: *client_host -# peer2674: *client_host -# peer2675: *client_host -# peer2676: *client_host -# peer2677: *client_host -# peer2678: *client_host -# peer2679: *client_host -# peer2680: *client_host -# peer2681: *client_host -# peer2682: *client_host -# peer2683: *client_host -# peer2684: *client_host -# peer2685: *client_host -# peer2686: *client_host -# peer2687: *client_host -# peer2688: *client_host -# peer2689: *client_host -# peer2690: *client_host -# peer2691: *client_host -# peer2692: *client_host -# peer2693: *client_host -# peer2694: *client_host -# peer2695: *client_host -# peer2696: *client_host -# peer2697: *client_host -# peer2698: *client_host -# peer2699: *client_host -# peer2700: *client_host -# peer2701: *client_host -# peer2702: *client_host -# peer2703: *client_host -# peer2704: *client_host -# peer2705: *client_host -# peer2706: *client_host -# peer2707: *client_host -# peer2708: *client_host -# peer2709: *client_host -# peer2710: *client_host -# peer2711: *client_host -# peer2712: *client_host -# peer2713: *client_host -# peer2714: *client_host -# peer2715: *client_host -# peer2716: *client_host -# peer2717: *client_host -# peer2718: *client_host -# peer2719: *client_host -# peer2720: *client_host -# peer2721: *client_host -# peer2722: *client_host -# peer2723: *client_host -# peer2724: *client_host -# peer2725: *client_host -# peer2726: *client_host -# peer2727: *client_host -# peer2728: *client_host -# peer2729: *client_host -# peer2730: *client_host -# peer2731: *client_host -# peer2732: *client_host -# peer2733: *client_host -# peer2734: *client_host -# peer2735: *client_host -# peer2736: *client_host -# peer2737: *client_host -# peer2738: *client_host -# peer2739: *client_host -# peer2740: *client_host -# peer2741: *client_host -# peer2742: *client_host -# peer2743: *client_host -# peer2744: *client_host -# peer2745: *client_host -# peer2746: *client_host -# peer2747: *client_host -# peer2748: *client_host -# peer2749: *client_host -# peer2750: *client_host -# peer2751: *client_host -# peer2752: *client_host -# peer2753: *client_host -# peer2754: *client_host -# peer2755: *client_host -# peer2756: *client_host -# peer2757: *client_host -# peer2758: *client_host -# peer2759: *client_host -# peer2760: *client_host -# peer2761: *client_host -# peer2762: *client_host -# peer2763: *client_host -# peer2764: *client_host -# peer2765: *client_host -# peer2766: *client_host -# peer2767: *client_host -# peer2768: *client_host -# peer2769: *client_host -# peer2770: *client_host -# peer2771: *client_host -# peer2772: *client_host -# peer2773: *client_host -# peer2774: *client_host -# peer2775: *client_host -# peer2776: *client_host -# peer2777: *client_host -# peer2778: *client_host -# peer2779: *client_host -# peer2780: *client_host -# peer2781: *client_host -# peer2782: *client_host -# peer2783: *client_host -# peer2784: *client_host -# peer2785: *client_host -# peer2786: *client_host -# peer2787: *client_host -# peer2788: *client_host -# peer2789: *client_host -# peer2790: *client_host -# peer2791: *client_host -# peer2792: *client_host -# peer2793: *client_host -# peer2794: *client_host -# peer2795: *client_host -# peer2796: *client_host -# peer2797: *client_host -# peer2798: *client_host -# peer2799: *client_host -# peer2800: *client_host -# peer2801: *client_host -# peer2802: *client_host -# peer2803: *client_host -# peer2804: *client_host -# peer2805: *client_host -# peer2806: *client_host -# peer2807: *client_host -# peer2808: *client_host -# peer2809: *client_host -# peer2810: *client_host -# peer2811: *client_host -# peer2812: *client_host -# peer2813: *client_host -# peer2814: *client_host -# peer2815: *client_host -# peer2816: *client_host -# peer2817: *client_host -# peer2818: *client_host -# peer2819: *client_host -# peer2820: *client_host -# peer2821: *client_host -# peer2822: *client_host -# peer2823: *client_host -# peer2824: *client_host -# peer2825: *client_host -# peer2826: *client_host -# peer2827: *client_host -# peer2828: *client_host -# peer2829: *client_host -# peer2830: *client_host -# peer2831: *client_host -# peer2832: *client_host -# peer2833: *client_host -# peer2834: *client_host -# peer2835: *client_host -# peer2836: *client_host -# peer2837: *client_host -# peer2838: *client_host -# peer2839: *client_host -# peer2840: *client_host -# peer2841: *client_host -# peer2842: *client_host -# peer2843: *client_host -# peer2844: *client_host -# peer2845: *client_host -# peer2846: *client_host -# peer2847: *client_host -# peer2848: *client_host -# peer2849: *client_host -# peer2850: *client_host -# peer2851: *client_host -# peer2852: *client_host -# peer2853: *client_host -# peer2854: *client_host -# peer2855: *client_host -# peer2856: *client_host -# peer2857: *client_host -# peer2858: *client_host -# peer2859: *client_host -# peer2860: *client_host -# peer2861: *client_host -# peer2862: *client_host -# peer2863: *client_host -# peer2864: *client_host -# peer2865: *client_host -# peer2866: *client_host -# peer2867: *client_host -# peer2868: *client_host -# peer2869: *client_host -# peer2870: *client_host -# peer2871: *client_host -# peer2872: *client_host -# peer2873: *client_host -# peer2874: *client_host -# peer2875: *client_host -# peer2876: *client_host -# peer2877: *client_host -# peer2878: *client_host -# peer2879: *client_host -# peer2880: *client_host -# peer2881: *client_host -# peer2882: *client_host -# peer2883: *client_host -# peer2884: *client_host -# peer2885: *client_host -# peer2886: *client_host -# peer2887: *client_host -# peer2888: *client_host -# peer2889: *client_host -# peer2890: *client_host -# peer2891: *client_host -# peer2892: *client_host -# peer2893: *client_host -# peer2894: *client_host -# peer2895: *client_host -# peer2896: *client_host -# peer2897: *client_host -# peer2898: *client_host -# peer2899: *client_host -# peer2900: *client_host -# peer2901: *client_host -# peer2902: *client_host -# peer2903: *client_host -# peer2904: *client_host -# peer2905: *client_host -# peer2906: *client_host -# peer2907: *client_host -# peer2908: *client_host -# peer2909: *client_host -# peer2910: *client_host -# peer2911: *client_host -# peer2912: *client_host -# peer2913: *client_host -# peer2914: *client_host -# peer2915: *client_host -# peer2916: *client_host -# peer2917: *client_host -# peer2918: *client_host -# peer2919: *client_host -# peer2920: *client_host -# peer2921: *client_host -# peer2922: *client_host -# peer2923: *client_host -# peer2924: *client_host -# peer2925: *client_host -# peer2926: *client_host -# peer2927: *client_host -# peer2928: *client_host -# peer2929: *client_host -# peer2930: *client_host -# peer2931: *client_host -# peer2932: *client_host -# peer2933: *client_host -# peer2934: *client_host -# peer2935: *client_host -# peer2936: *client_host -# peer2937: *client_host -# peer2938: *client_host -# peer2939: *client_host -# peer2940: *client_host -# peer2941: *client_host -# peer2942: *client_host -# peer2943: *client_host -# peer2944: *client_host -# peer2945: *client_host -# peer2946: *client_host -# peer2947: *client_host -# peer2948: *client_host -# peer2949: *client_host -# peer2950: *client_host -# peer2951: *client_host -# peer2952: *client_host -# peer2953: *client_host -# peer2954: *client_host -# peer2955: *client_host -# peer2956: *client_host -# peer2957: *client_host -# peer2958: *client_host -# peer2959: *client_host -# peer2960: *client_host -# peer2961: *client_host -# peer2962: *client_host -# peer2963: *client_host -# peer2964: *client_host -# peer2965: *client_host -# peer2966: *client_host -# peer2967: *client_host -# peer2968: *client_host -# peer2969: *client_host -# peer2970: *client_host -# peer2971: *client_host -# peer2972: *client_host -# peer2973: *client_host -# peer2974: *client_host -# peer2975: *client_host -# peer2976: *client_host -# peer2977: *client_host -# peer2978: *client_host -# peer2979: *client_host -# peer2980: *client_host -# peer2981: *client_host -# peer2982: *client_host -# peer2983: *client_host -# peer2984: *client_host -# peer2985: *client_host -# peer2986: *client_host -# peer2987: *client_host -# peer2988: *client_host -# peer2989: *client_host -# peer2990: *client_host -# peer2991: *client_host -# peer2992: *client_host -# peer2993: *client_host -# peer2994: *client_host -# peer2995: *client_host -# peer2996: *client_host -# peer2997: *client_host -# peer2998: *client_host -# peer2999: *client_host -# peer3000: *client_host -# peer3001: *client_host -# peer3002: *client_host -# peer3003: *client_host -# peer3004: *client_host -# peer3005: *client_host -# peer3006: *client_host -# peer3007: *client_host -# peer3008: *client_host -# peer3009: *client_host -# peer3010: *client_host -# peer3011: *client_host -# peer3012: *client_host -# peer3013: *client_host -# peer3014: *client_host -# peer3015: *client_host -# peer3016: *client_host -# peer3017: *client_host -# peer3018: *client_host -# peer3019: *client_host -# peer3020: *client_host -# peer3021: *client_host -# peer3022: *client_host -# peer3023: *client_host -# peer3024: *client_host -# peer3025: *client_host -# peer3026: *client_host -# peer3027: *client_host -# peer3028: *client_host -# peer3029: *client_host -# peer3030: *client_host -# peer3031: *client_host -# peer3032: *client_host -# peer3033: *client_host -# peer3034: *client_host -# peer3035: *client_host -# peer3036: *client_host -# peer3037: *client_host -# peer3038: *client_host -# peer3039: *client_host -# peer3040: *client_host -# peer3041: *client_host -# peer3042: *client_host -# peer3043: *client_host -# peer3044: *client_host -# peer3045: *client_host -# peer3046: *client_host -# peer3047: *client_host -# peer3048: *client_host -# peer3049: *client_host -# peer3050: *client_host -# peer3051: *client_host -# peer3052: *client_host -# peer3053: *client_host -# peer3054: *client_host -# peer3055: *client_host -# peer3056: *client_host -# peer3057: *client_host -# peer3058: *client_host -# peer3059: *client_host -# peer3060: *client_host -# peer3061: *client_host -# peer3062: *client_host -# peer3063: *client_host -# peer3064: *client_host -# peer3065: *client_host -# peer3066: *client_host -# peer3067: *client_host -# peer3068: *client_host -# peer3069: *client_host -# peer3070: *client_host -# peer3071: *client_host -# peer3072: *client_host -# peer3073: *client_host -# peer3074: *client_host -# peer3075: *client_host -# peer3076: *client_host -# peer3077: *client_host -# peer3078: *client_host -# peer3079: *client_host -# peer3080: *client_host -# peer3081: *client_host -# peer3082: *client_host -# peer3083: *client_host -# peer3084: *client_host -# peer3085: *client_host -# peer3086: *client_host -# peer3087: *client_host -# peer3088: *client_host -# peer3089: *client_host -# peer3090: *client_host -# peer3091: *client_host -# peer3092: *client_host -# peer3093: *client_host -# peer3094: *client_host -# peer3095: *client_host -# peer3096: *client_host -# peer3097: *client_host -# peer3098: *client_host -# peer3099: *client_host -# peer3100: *client_host -# peer3101: *client_host -# peer3102: *client_host -# peer3103: *client_host -# peer3104: *client_host -# peer3105: *client_host -# peer3106: *client_host -# peer3107: *client_host -# peer3108: *client_host -# peer3109: *client_host -# peer3110: *client_host -# peer3111: *client_host -# peer3112: *client_host -# peer3113: *client_host -# peer3114: *client_host -# peer3115: *client_host -# peer3116: *client_host -# peer3117: *client_host -# peer3118: *client_host -# peer3119: *client_host -# peer3120: *client_host -# peer3121: *client_host -# peer3122: *client_host -# peer3123: *client_host -# peer3124: *client_host -# peer3125: *client_host -# peer3126: *client_host -# peer3127: *client_host -# peer3128: *client_host -# peer3129: *client_host -# peer3130: *client_host -# peer3131: *client_host -# peer3132: *client_host -# peer3133: *client_host -# peer3134: *client_host -# peer3135: *client_host -# peer3136: *client_host -# peer3137: *client_host -# peer3138: *client_host -# peer3139: *client_host -# peer3140: *client_host -# peer3141: *client_host -# peer3142: *client_host -# peer3143: *client_host -# peer3144: *client_host -# peer3145: *client_host -# peer3146: *client_host -# peer3147: *client_host -# peer3148: *client_host -# peer3149: *client_host -# peer3150: *client_host -# peer3151: *client_host -# peer3152: *client_host -# peer3153: *client_host -# peer3154: *client_host -# peer3155: *client_host -# peer3156: *client_host -# peer3157: *client_host -# peer3158: *client_host -# peer3159: *client_host -# peer3160: *client_host -# peer3161: *client_host -# peer3162: *client_host -# peer3163: *client_host -# peer3164: *client_host -# peer3165: *client_host -# peer3166: *client_host -# peer3167: *client_host -# peer3168: *client_host -# peer3169: *client_host -# peer3170: *client_host -# peer3171: *client_host -# peer3172: *client_host -# peer3173: *client_host -# peer3174: *client_host -# peer3175: *client_host -# peer3176: *client_host -# peer3177: *client_host -# peer3178: *client_host -# peer3179: *client_host -# peer3180: *client_host -# peer3181: *client_host -# peer3182: *client_host -# peer3183: *client_host -# peer3184: *client_host -# peer3185: *client_host -# peer3186: *client_host -# peer3187: *client_host -# peer3188: *client_host -# peer3189: *client_host -# peer3190: *client_host -# peer3191: *client_host -# peer3192: *client_host -# peer3193: *client_host -# peer3194: *client_host -# peer3195: *client_host -# peer3196: *client_host -# peer3197: *client_host -# peer3198: *client_host -# peer3199: *client_host -# peer3200: *client_host -# peer3201: *client_host -# peer3202: *client_host -# peer3203: *client_host -# peer3204: *client_host -# peer3205: *client_host -# peer3206: *client_host -# peer3207: *client_host -# peer3208: *client_host -# peer3209: *client_host -# peer3210: *client_host -# peer3211: *client_host -# peer3212: *client_host -# peer3213: *client_host -# peer3214: *client_host -# peer3215: *client_host -# peer3216: *client_host -# peer3217: *client_host -# peer3218: *client_host -# peer3219: *client_host -# peer3220: *client_host -# peer3221: *client_host -# peer3222: *client_host -# peer3223: *client_host -# peer3224: *client_host -# peer3225: *client_host -# peer3226: *client_host -# peer3227: *client_host -# peer3228: *client_host -# peer3229: *client_host -# peer3230: *client_host -# peer3231: *client_host -# peer3232: *client_host -# peer3233: *client_host -# peer3234: *client_host -# peer3235: *client_host -# peer3236: *client_host -# peer3237: *client_host -# peer3238: *client_host -# peer3239: *client_host -# peer3240: *client_host -# peer3241: *client_host -# peer3242: *client_host -# peer3243: *client_host -# peer3244: *client_host -# peer3245: *client_host -# peer3246: *client_host -# peer3247: *client_host -# peer3248: *client_host -# peer3249: *client_host -# peer3250: *client_host -# peer3251: *client_host -# peer3252: *client_host -# peer3253: *client_host -# peer3254: *client_host -# peer3255: *client_host -# peer3256: *client_host -# peer3257: *client_host -# peer3258: *client_host -# peer3259: *client_host -# peer3260: *client_host -# peer3261: *client_host -# peer3262: *client_host -# peer3263: *client_host -# peer3264: *client_host -# peer3265: *client_host -# peer3266: *client_host -# peer3267: *client_host -# peer3268: *client_host -# peer3269: *client_host -# peer3270: *client_host -# peer3271: *client_host -# peer3272: *client_host -# peer3273: *client_host -# peer3274: *client_host -# peer3275: *client_host -# peer3276: *client_host -# peer3277: *client_host -# peer3278: *client_host -# peer3279: *client_host -# peer3280: *client_host -# peer3281: *client_host -# peer3282: *client_host -# peer3283: *client_host -# peer3284: *client_host -# peer3285: *client_host -# peer3286: *client_host -# peer3287: *client_host -# peer3288: *client_host -# peer3289: *client_host -# peer3290: *client_host -# peer3291: *client_host -# peer3292: *client_host -# peer3293: *client_host -# peer3294: *client_host -# peer3295: *client_host -# peer3296: *client_host -# peer3297: *client_host -# peer3298: *client_host -# peer3299: *client_host -# peer3300: *client_host -# peer3301: *client_host -# peer3302: *client_host -# peer3303: *client_host -# peer3304: *client_host -# peer3305: *client_host -# peer3306: *client_host -# peer3307: *client_host -# peer3308: *client_host -# peer3309: *client_host -# peer3310: *client_host -# peer3311: *client_host -# peer3312: *client_host -# peer3313: *client_host -# peer3314: *client_host -# peer3315: *client_host -# peer3316: *client_host -# peer3317: *client_host -# peer3318: *client_host -# peer3319: *client_host -# peer3320: *client_host -# peer3321: *client_host -# peer3322: *client_host -# peer3323: *client_host -# peer3324: *client_host -# peer3325: *client_host -# peer3326: *client_host -# peer3327: *client_host -# peer3328: *client_host -# peer3329: *client_host -# peer3330: *client_host -# peer3331: *client_host -# peer3332: *client_host -# peer3333: *client_host -# peer3334: *client_host -# peer3335: *client_host -# peer3336: *client_host -# peer3337: *client_host -# peer3338: *client_host -# peer3339: *client_host -# peer3340: *client_host -# peer3341: *client_host -# peer3342: *client_host -# peer3343: *client_host -# peer3344: *client_host -# peer3345: *client_host -# peer3346: *client_host -# peer3347: *client_host -# peer3348: *client_host -# peer3349: *client_host -# peer3350: *client_host -# peer3351: *client_host -# peer3352: *client_host -# peer3353: *client_host -# peer3354: *client_host -# peer3355: *client_host -# peer3356: *client_host -# peer3357: *client_host -# peer3358: *client_host -# peer3359: *client_host -# peer3360: *client_host -# peer3361: *client_host -# peer3362: *client_host -# peer3363: *client_host -# peer3364: *client_host -# peer3365: *client_host -# peer3366: *client_host -# peer3367: *client_host -# peer3368: *client_host -# peer3369: *client_host -# peer3370: *client_host -# peer3371: *client_host -# peer3372: *client_host -# peer3373: *client_host -# peer3374: *client_host -# peer3375: *client_host -# peer3376: *client_host -# peer3377: *client_host -# peer3378: *client_host -# peer3379: *client_host -# peer3380: *client_host -# peer3381: *client_host -# peer3382: *client_host -# peer3383: *client_host -# peer3384: *client_host -# peer3385: *client_host -# peer3386: *client_host -# peer3387: *client_host -# peer3388: *client_host -# peer3389: *client_host -# peer3390: *client_host -# peer3391: *client_host -# peer3392: *client_host -# peer3393: *client_host -# peer3394: *client_host -# peer3395: *client_host -# peer3396: *client_host -# peer3397: *client_host -# peer3398: *client_host -# peer3399: *client_host -# peer3400: *client_host -# peer3401: *client_host -# peer3402: *client_host -# peer3403: *client_host -# peer3404: *client_host -# peer3405: *client_host -# peer3406: *client_host -# peer3407: *client_host -# peer3408: *client_host -# peer3409: *client_host -# peer3410: *client_host -# peer3411: *client_host -# peer3412: *client_host -# peer3413: *client_host -# peer3414: *client_host -# peer3415: *client_host -# peer3416: *client_host -# peer3417: *client_host -# peer3418: *client_host -# peer3419: *client_host -# peer3420: *client_host -# peer3421: *client_host -# peer3422: *client_host -# peer3423: *client_host -# peer3424: *client_host -# peer3425: *client_host -# peer3426: *client_host -# peer3427: *client_host -# peer3428: *client_host -# peer3429: *client_host -# peer3430: *client_host -# peer3431: *client_host -# peer3432: *client_host -# peer3433: *client_host -# peer3434: *client_host -# peer3435: *client_host -# peer3436: *client_host -# peer3437: *client_host -# peer3438: *client_host -# peer3439: *client_host -# peer3440: *client_host -# peer3441: *client_host -# peer3442: *client_host -# peer3443: *client_host -# peer3444: *client_host -# peer3445: *client_host -# peer3446: *client_host -# peer3447: *client_host -# peer3448: *client_host -# peer3449: *client_host -# peer3450: *client_host -# peer3451: *client_host -# peer3452: *client_host -# peer3453: *client_host -# peer3454: *client_host -# peer3455: *client_host -# peer3456: *client_host -# peer3457: *client_host -# peer3458: *client_host -# peer3459: *client_host -# peer3460: *client_host -# peer3461: *client_host -# peer3462: *client_host -# peer3463: *client_host -# peer3464: *client_host -# peer3465: *client_host -# peer3466: *client_host -# peer3467: *client_host -# peer3468: *client_host -# peer3469: *client_host -# peer3470: *client_host -# peer3471: *client_host -# peer3472: *client_host -# peer3473: *client_host -# peer3474: *client_host -# peer3475: *client_host -# peer3476: *client_host -# peer3477: *client_host -# peer3478: *client_host -# peer3479: *client_host -# peer3480: *client_host -# peer3481: *client_host -# peer3482: *client_host -# peer3483: *client_host -# peer3484: *client_host -# peer3485: *client_host -# peer3486: *client_host -# peer3487: *client_host -# peer3488: *client_host -# peer3489: *client_host -# peer3490: *client_host -# peer3491: *client_host -# peer3492: *client_host -# peer3493: *client_host -# peer3494: *client_host -# peer3495: *client_host -# peer3496: *client_host -# peer3497: *client_host -# peer3498: *client_host -# peer3499: *client_host -# peer3500: *client_host -# peer3501: *client_host -# peer3502: *client_host -# peer3503: *client_host -# peer3504: *client_host -# peer3505: *client_host -# peer3506: *client_host -# peer3507: *client_host -# peer3508: *client_host -# peer3509: *client_host -# peer3510: *client_host -# peer3511: *client_host -# peer3512: *client_host -# peer3513: *client_host -# peer3514: *client_host -# peer3515: *client_host -# peer3516: *client_host -# peer3517: *client_host -# peer3518: *client_host -# peer3519: *client_host -# peer3520: *client_host -# peer3521: *client_host -# peer3522: *client_host -# peer3523: *client_host -# peer3524: *client_host -# peer3525: *client_host -# peer3526: *client_host -# peer3527: *client_host -# peer3528: *client_host -# peer3529: *client_host -# peer3530: *client_host -# peer3531: *client_host -# peer3532: *client_host -# peer3533: *client_host -# peer3534: *client_host -# peer3535: *client_host -# peer3536: *client_host -# peer3537: *client_host -# peer3538: *client_host -# peer3539: *client_host -# peer3540: *client_host -# peer3541: *client_host -# peer3542: *client_host -# peer3543: *client_host -# peer3544: *client_host -# peer3545: *client_host -# peer3546: *client_host -# peer3547: *client_host -# peer3548: *client_host -# peer3549: *client_host -# peer3550: *client_host -# peer3551: *client_host -# peer3552: *client_host -# peer3553: *client_host -# peer3554: *client_host -# peer3555: *client_host -# peer3556: *client_host -# peer3557: *client_host -# peer3558: *client_host -# peer3559: *client_host -# peer3560: *client_host -# peer3561: *client_host -# peer3562: *client_host -# peer3563: *client_host -# peer3564: *client_host -# peer3565: *client_host -# peer3566: *client_host -# peer3567: *client_host -# peer3568: *client_host -# peer3569: *client_host -# peer3570: *client_host -# peer3571: *client_host -# peer3572: *client_host -# peer3573: *client_host -# peer3574: *client_host -# peer3575: *client_host -# peer3576: *client_host -# peer3577: *client_host -# peer3578: *client_host -# peer3579: *client_host -# peer3580: *client_host -# peer3581: *client_host -# peer3582: *client_host -# peer3583: *client_host -# peer3584: *client_host -# peer3585: *client_host -# peer3586: *client_host -# peer3587: *client_host -# peer3588: *client_host -# peer3589: *client_host -# peer3590: *client_host -# peer3591: *client_host -# peer3592: *client_host -# peer3593: *client_host -# peer3594: *client_host -# peer3595: *client_host -# peer3596: *client_host -# peer3597: *client_host -# peer3598: *client_host -# peer3599: *client_host -# peer3600: *client_host -# peer3601: *client_host -# peer3602: *client_host -# peer3603: *client_host -# peer3604: *client_host -# peer3605: *client_host -# peer3606: *client_host -# peer3607: *client_host -# peer3608: *client_host -# peer3609: *client_host -# peer3610: *client_host -# peer3611: *client_host -# peer3612: *client_host -# peer3613: *client_host -# peer3614: *client_host -# peer3615: *client_host -# peer3616: *client_host -# peer3617: *client_host -# peer3618: *client_host -# peer3619: *client_host -# peer3620: *client_host -# peer3621: *client_host -# peer3622: *client_host -# peer3623: *client_host -# peer3624: *client_host -# peer3625: *client_host -# peer3626: *client_host -# peer3627: *client_host -# peer3628: *client_host -# peer3629: *client_host -# peer3630: *client_host -# peer3631: *client_host -# peer3632: *client_host -# peer3633: *client_host -# peer3634: *client_host -# peer3635: *client_host -# peer3636: *client_host -# peer3637: *client_host -# peer3638: *client_host -# peer3639: *client_host -# peer3640: *client_host -# peer3641: *client_host -# peer3642: *client_host -# peer3643: *client_host -# peer3644: *client_host -# peer3645: *client_host -# peer3646: *client_host -# peer3647: *client_host -# peer3648: *client_host -# peer3649: *client_host -# peer3650: *client_host -# peer3651: *client_host -# peer3652: *client_host -# peer3653: *client_host -# peer3654: *client_host -# peer3655: *client_host -# peer3656: *client_host -# peer3657: *client_host -# peer3658: *client_host -# peer3659: *client_host -# peer3660: *client_host -# peer3661: *client_host -# peer3662: *client_host -# peer3663: *client_host -# peer3664: *client_host -# peer3665: *client_host -# peer3666: *client_host -# peer3667: *client_host -# peer3668: *client_host -# peer3669: *client_host -# peer3670: *client_host -# peer3671: *client_host -# peer3672: *client_host -# peer3673: *client_host -# peer3674: *client_host -# peer3675: *client_host -# peer3676: *client_host -# peer3677: *client_host -# peer3678: *client_host -# peer3679: *client_host -# peer3680: *client_host -# peer3681: *client_host -# peer3682: *client_host -# peer3683: *client_host -# peer3684: *client_host -# peer3685: *client_host -# peer3686: *client_host -# peer3687: *client_host -# peer3688: *client_host -# peer3689: *client_host -# peer3690: *client_host -# peer3691: *client_host -# peer3692: *client_host -# peer3693: *client_host -# peer3694: *client_host -# peer3695: *client_host -# peer3696: *client_host -# peer3697: *client_host -# peer3698: *client_host -# peer3699: *client_host -# peer3700: *client_host -# peer3701: *client_host -# peer3702: *client_host -# peer3703: *client_host -# peer3704: *client_host -# peer3705: *client_host -# peer3706: *client_host -# peer3707: *client_host -# peer3708: *client_host -# peer3709: *client_host -# peer3710: *client_host -# peer3711: *client_host -# peer3712: *client_host -# peer3713: *client_host -# peer3714: *client_host -# peer3715: *client_host -# peer3716: *client_host -# peer3717: *client_host -# peer3718: *client_host -# peer3719: *client_host -# peer3720: *client_host -# peer3721: *client_host -# peer3722: *client_host -# peer3723: *client_host -# peer3724: *client_host -# peer3725: *client_host -# peer3726: *client_host -# peer3727: *client_host -# peer3728: *client_host -# peer3729: *client_host -# peer3730: *client_host -# peer3731: *client_host -# peer3732: *client_host -# peer3733: *client_host -# peer3734: *client_host -# peer3735: *client_host -# peer3736: *client_host -# peer3737: *client_host -# peer3738: *client_host -# peer3739: *client_host -# peer3740: *client_host -# peer3741: *client_host -# peer3742: *client_host -# peer3743: *client_host -# peer3744: *client_host -# peer3745: *client_host -# peer3746: *client_host -# peer3747: *client_host -# peer3748: *client_host -# peer3749: *client_host -# peer3750: *client_host -# peer3751: *client_host -# peer3752: *client_host -# peer3753: *client_host -# peer3754: *client_host -# peer3755: *client_host -# peer3756: *client_host -# peer3757: *client_host -# peer3758: *client_host -# peer3759: *client_host -# peer3760: *client_host -# peer3761: *client_host -# peer3762: *client_host -# peer3763: *client_host -# peer3764: *client_host -# peer3765: *client_host -# peer3766: *client_host -# peer3767: *client_host -# peer3768: *client_host -# peer3769: *client_host -# peer3770: *client_host -# peer3771: *client_host -# peer3772: *client_host -# peer3773: *client_host -# peer3774: *client_host -# peer3775: *client_host -# peer3776: *client_host -# peer3777: *client_host -# peer3778: *client_host -# peer3779: *client_host -# peer3780: *client_host -# peer3781: *client_host -# peer3782: *client_host -# peer3783: *client_host -# peer3784: *client_host -# peer3785: *client_host -# peer3786: *client_host -# peer3787: *client_host -# peer3788: *client_host -# peer3789: *client_host -# peer3790: *client_host -# peer3791: *client_host -# peer3792: *client_host -# peer3793: *client_host -# peer3794: *client_host -# peer3795: *client_host -# peer3796: *client_host -# peer3797: *client_host -# peer3798: *client_host -# peer3799: *client_host -# peer3800: *client_host -# peer3801: *client_host -# peer3802: *client_host -# peer3803: *client_host -# peer3804: *client_host -# peer3805: *client_host -# peer3806: *client_host -# peer3807: *client_host -# peer3808: *client_host -# peer3809: *client_host -# peer3810: *client_host -# peer3811: *client_host -# peer3812: *client_host -# peer3813: *client_host -# peer3814: *client_host -# peer3815: *client_host -# peer3816: *client_host -# peer3817: *client_host -# peer3818: *client_host -# peer3819: *client_host -# peer3820: *client_host -# peer3821: *client_host -# peer3822: *client_host -# peer3823: *client_host -# peer3824: *client_host -# peer3825: *client_host -# peer3826: *client_host -# peer3827: *client_host -# peer3828: *client_host -# peer3829: *client_host -# peer3830: *client_host -# peer3831: *client_host -# peer3832: *client_host -# peer3833: *client_host -# peer3834: *client_host -# peer3835: *client_host -# peer3836: *client_host -# peer3837: *client_host -# peer3838: *client_host -# peer3839: *client_host -# peer3840: *client_host -# peer3841: *client_host -# peer3842: *client_host -# peer3843: *client_host -# peer3844: *client_host -# peer3845: *client_host -# peer3846: *client_host -# peer3847: *client_host -# peer3848: *client_host -# peer3849: *client_host -# peer3850: *client_host -# peer3851: *client_host -# peer3852: *client_host -# peer3853: *client_host -# peer3854: *client_host -# peer3855: *client_host -# peer3856: *client_host -# peer3857: *client_host -# peer3858: *client_host -# peer3859: *client_host -# peer3860: *client_host -# peer3861: *client_host -# peer3862: *client_host -# peer3863: *client_host -# peer3864: *client_host -# peer3865: *client_host -# peer3866: *client_host -# peer3867: *client_host -# peer3868: *client_host -# peer3869: *client_host -# peer3870: *client_host -# peer3871: *client_host -# peer3872: *client_host -# peer3873: *client_host -# peer3874: *client_host -# peer3875: *client_host -# peer3876: *client_host -# peer3877: *client_host -# peer3878: *client_host -# peer3879: *client_host -# peer3880: *client_host -# peer3881: *client_host -# peer3882: *client_host -# peer3883: *client_host -# peer3884: *client_host -# peer3885: *client_host -# peer3886: *client_host -# peer3887: *client_host -# peer3888: *client_host -# peer3889: *client_host -# peer3890: *client_host -# peer3891: *client_host -# peer3892: *client_host -# peer3893: *client_host -# peer3894: *client_host -# peer3895: *client_host -# peer3896: *client_host -# peer3897: *client_host -# peer3898: *client_host -# peer3899: *client_host -# peer3900: *client_host -# peer3901: *client_host -# peer3902: *client_host -# peer3903: *client_host -# peer3904: *client_host -# peer3905: *client_host -# peer3906: *client_host -# peer3907: *client_host -# peer3908: *client_host -# peer3909: *client_host -# peer3910: *client_host -# peer3911: *client_host -# peer3912: *client_host -# peer3913: *client_host -# peer3914: *client_host -# peer3915: *client_host -# peer3916: *client_host -# peer3917: *client_host -# peer3918: *client_host -# peer3919: *client_host -# peer3920: *client_host -# peer3921: *client_host -# peer3922: *client_host -# peer3923: *client_host -# peer3924: *client_host -# peer3925: *client_host -# peer3926: *client_host -# peer3927: *client_host -# peer3928: *client_host -# peer3929: *client_host -# peer3930: *client_host -# peer3931: *client_host -# peer3932: *client_host -# peer3933: *client_host -# peer3934: *client_host -# peer3935: *client_host -# peer3936: *client_host -# peer3937: *client_host -# peer3938: *client_host -# peer3939: *client_host -# peer3940: *client_host -# peer3941: *client_host -# peer3942: *client_host -# peer3943: *client_host -# peer3944: *client_host -# peer3945: *client_host -# peer3946: *client_host -# peer3947: *client_host -# peer3948: *client_host -# peer3949: *client_host -# peer3950: *client_host -# peer3951: *client_host -# peer3952: *client_host -# peer3953: *client_host -# peer3954: *client_host -# peer3955: *client_host -# peer3956: *client_host -# peer3957: *client_host -# peer3958: *client_host -# peer3959: *client_host -# peer3960: *client_host -# peer3961: *client_host -# peer3962: *client_host -# peer3963: *client_host -# peer3964: *client_host -# peer3965: *client_host -# peer3966: *client_host -# peer3967: *client_host -# peer3968: *client_host -# peer3969: *client_host -# peer3970: *client_host -# peer3971: *client_host -# peer3972: *client_host -# peer3973: *client_host -# peer3974: *client_host -# peer3975: *client_host -# peer3976: *client_host -# peer3977: *client_host -# peer3978: *client_host -# peer3979: *client_host -# peer3980: *client_host -# peer3981: *client_host -# peer3982: *client_host -# peer3983: *client_host -# peer3984: *client_host -# peer3985: *client_host -# peer3986: *client_host -# peer3987: *client_host -# peer3988: *client_host -# peer3989: *client_host -# peer3990: *client_host -# peer3991: *client_host -# peer3992: *client_host -# peer3993: *client_host -# peer3994: *client_host -# peer3995: *client_host -# peer3996: *client_host -# peer3997: *client_host -# peer3998: *client_host -# peer3999: *client_host -# peer4000: *client_host -# peer4001: *client_host -# peer4002: *client_host -# peer4003: *client_host -# peer4004: *client_host -# peer4005: *client_host -# peer4006: *client_host -# peer4007: *client_host -# peer4008: *client_host -# peer4009: *client_host -# peer4010: *client_host -# peer4011: *client_host -# peer4012: *client_host -# peer4013: *client_host -# peer4014: *client_host -# peer4015: *client_host -# peer4016: *client_host -# peer4017: *client_host -# peer4018: *client_host -# peer4019: *client_host -# peer4020: *client_host -# peer4021: *client_host -# peer4022: *client_host -# peer4023: *client_host -# peer4024: *client_host -# peer4025: *client_host -# peer4026: *client_host -# peer4027: *client_host -# peer4028: *client_host -# peer4029: *client_host -# peer4030: *client_host -# peer4031: *client_host -# peer4032: *client_host -# peer4033: *client_host -# peer4034: *client_host -# peer4035: *client_host -# peer4036: *client_host -# peer4037: *client_host -# peer4038: *client_host -# peer4039: *client_host -# peer4040: *client_host -# peer4041: *client_host -# peer4042: *client_host -# peer4043: *client_host -# peer4044: *client_host -# peer4045: *client_host -# peer4046: *client_host -# peer4047: *client_host -# peer4048: *client_host -# peer4049: *client_host -# peer4050: *client_host -# peer4051: *client_host -# peer4052: *client_host -# peer4053: *client_host -# peer4054: *client_host -# peer4055: *client_host -# peer4056: *client_host -# peer4057: *client_host -# peer4058: *client_host -# peer4059: *client_host -# peer4060: *client_host -# peer4061: *client_host -# peer4062: *client_host -# peer4063: *client_host -# peer4064: *client_host -# peer4065: *client_host -# peer4066: *client_host -# peer4067: *client_host -# peer4068: *client_host -# peer4069: *client_host -# peer4070: *client_host -# peer4071: *client_host -# peer4072: *client_host -# peer4073: *client_host -# peer4074: *client_host -# peer4075: *client_host -# peer4076: *client_host -# peer4077: *client_host -# peer4078: *client_host -# peer4079: *client_host -# peer4080: *client_host -# peer4081: *client_host -# peer4082: *client_host -# peer4083: *client_host -# peer4084: *client_host -# peer4085: *client_host -# peer4086: *client_host -# peer4087: *client_host -# peer4088: *client_host -# peer4089: *client_host -# peer4090: *client_host -# peer4091: *client_host -# peer4092: *client_host -# peer4093: *client_host -# peer4094: *client_host -# peer4095: *client_host -# peer4096: *client_host -# peer4097: *client_host -# peer4098: *client_host -# peer4099: *client_host -# peer4100: *client_host -# peer4101: *client_host -# peer4102: *client_host -# peer4103: *client_host -# peer4104: *client_host -# peer4105: *client_host -# peer4106: *client_host -# peer4107: *client_host -# peer4108: *client_host -# peer4109: *client_host -# peer4110: *client_host -# peer4111: *client_host -# peer4112: *client_host -# peer4113: *client_host -# peer4114: *client_host -# peer4115: *client_host -# peer4116: *client_host -# peer4117: *client_host -# peer4118: *client_host -# peer4119: *client_host -# peer4120: *client_host -# peer4121: *client_host -# peer4122: *client_host -# peer4123: *client_host -# peer4124: *client_host -# peer4125: *client_host -# peer4126: *client_host -# peer4127: *client_host -# peer4128: *client_host -# peer4129: *client_host -# peer4130: *client_host -# peer4131: *client_host -# peer4132: *client_host -# peer4133: *client_host -# peer4134: *client_host -# peer4135: *client_host -# peer4136: *client_host -# peer4137: *client_host -# peer4138: *client_host -# peer4139: *client_host -# peer4140: *client_host -# peer4141: *client_host -# peer4142: *client_host -# peer4143: *client_host -# peer4144: *client_host -# peer4145: *client_host -# peer4146: *client_host -# peer4147: *client_host -# peer4148: *client_host -# peer4149: *client_host -# peer4150: *client_host -# peer4151: *client_host -# peer4152: *client_host -# peer4153: *client_host -# peer4154: *client_host -# peer4155: *client_host -# peer4156: *client_host -# peer4157: *client_host -# peer4158: *client_host -# peer4159: *client_host -# peer4160: *client_host -# peer4161: *client_host -# peer4162: *client_host -# peer4163: *client_host -# peer4164: *client_host -# peer4165: *client_host -# peer4166: *client_host -# peer4167: *client_host -# peer4168: *client_host -# peer4169: *client_host -# peer4170: *client_host -# peer4171: *client_host -# peer4172: *client_host -# peer4173: *client_host -# peer4174: *client_host -# peer4175: *client_host -# peer4176: *client_host -# peer4177: *client_host -# peer4178: *client_host -# peer4179: *client_host -# peer4180: *client_host -# peer4181: *client_host -# peer4182: *client_host -# peer4183: *client_host -# peer4184: *client_host -# peer4185: *client_host -# peer4186: *client_host -# peer4187: *client_host -# peer4188: *client_host -# peer4189: *client_host -# peer4190: *client_host -# peer4191: *client_host -# peer4192: *client_host -# peer4193: *client_host -# peer4194: *client_host -# peer4195: *client_host -# peer4196: *client_host -# peer4197: *client_host -# peer4198: *client_host -# peer4199: *client_host -# peer4200: *client_host -# peer4201: *client_host -# peer4202: *client_host -# peer4203: *client_host -# peer4204: *client_host -# peer4205: *client_host -# peer4206: *client_host -# peer4207: *client_host -# peer4208: *client_host -# peer4209: *client_host -# peer4210: *client_host -# peer4211: *client_host -# peer4212: *client_host -# peer4213: *client_host -# peer4214: *client_host -# peer4215: *client_host -# peer4216: *client_host -# peer4217: *client_host -# peer4218: *client_host -# peer4219: *client_host -# peer4220: *client_host -# peer4221: *client_host -# peer4222: *client_host -# peer4223: *client_host -# peer4224: *client_host -# peer4225: *client_host -# peer4226: *client_host -# peer4227: *client_host -# peer4228: *client_host -# peer4229: *client_host -# peer4230: *client_host -# peer4231: *client_host -# peer4232: *client_host -# peer4233: *client_host -# peer4234: *client_host -# peer4235: *client_host -# peer4236: *client_host -# peer4237: *client_host -# peer4238: *client_host -# peer4239: *client_host -# peer4240: *client_host -# peer4241: *client_host -# peer4242: *client_host -# peer4243: *client_host -# peer4244: *client_host -# peer4245: *client_host -# peer4246: *client_host -# peer4247: *client_host -# peer4248: *client_host -# peer4249: *client_host -# peer4250: *client_host -# peer4251: *client_host -# peer4252: *client_host -# peer4253: *client_host -# peer4254: *client_host -# peer4255: *client_host -# peer4256: *client_host -# peer4257: *client_host -# peer4258: *client_host -# peer4259: *client_host -# peer4260: *client_host -# peer4261: *client_host -# peer4262: *client_host -# peer4263: *client_host -# peer4264: *client_host -# peer4265: *client_host -# peer4266: *client_host -# peer4267: *client_host -# peer4268: *client_host -# peer4269: *client_host -# peer4270: *client_host -# peer4271: *client_host -# peer4272: *client_host -# peer4273: *client_host -# peer4274: *client_host -# peer4275: *client_host -# peer4276: *client_host -# peer4277: *client_host -# peer4278: *client_host -# peer4279: *client_host -# peer4280: *client_host -# peer4281: *client_host -# peer4282: *client_host -# peer4283: *client_host -# peer4284: *client_host -# peer4285: *client_host -# peer4286: *client_host -# peer4287: *client_host -# peer4288: *client_host -# peer4289: *client_host -# peer4290: *client_host -# peer4291: *client_host -# peer4292: *client_host -# peer4293: *client_host -# peer4294: *client_host -# peer4295: *client_host -# peer4296: *client_host -# peer4297: *client_host -# peer4298: *client_host -# peer4299: *client_host -# peer4300: *client_host -# peer4301: *client_host -# peer4302: *client_host -# peer4303: *client_host -# peer4304: *client_host -# peer4305: *client_host -# peer4306: *client_host -# peer4307: *client_host -# peer4308: *client_host -# peer4309: *client_host -# peer4310: *client_host -# peer4311: *client_host -# peer4312: *client_host -# peer4313: *client_host -# peer4314: *client_host -# peer4315: *client_host -# peer4316: *client_host -# peer4317: *client_host -# peer4318: *client_host -# peer4319: *client_host -# peer4320: *client_host -# peer4321: *client_host -# peer4322: *client_host -# peer4323: *client_host -# peer4324: *client_host -# peer4325: *client_host -# peer4326: *client_host -# peer4327: *client_host -# peer4328: *client_host -# peer4329: *client_host -# peer4330: *client_host -# peer4331: *client_host -# peer4332: *client_host -# peer4333: *client_host -# peer4334: *client_host -# peer4335: *client_host -# peer4336: *client_host -# peer4337: *client_host -# peer4338: *client_host -# peer4339: *client_host -# peer4340: *client_host -# peer4341: *client_host -# peer4342: *client_host -# peer4343: *client_host -# peer4344: *client_host -# peer4345: *client_host -# peer4346: *client_host -# peer4347: *client_host -# peer4348: *client_host -# peer4349: *client_host -# peer4350: *client_host -# peer4351: *client_host -# peer4352: *client_host -# peer4353: *client_host -# peer4354: *client_host -# peer4355: *client_host -# peer4356: *client_host -# peer4357: *client_host -# peer4358: *client_host -# peer4359: *client_host -# peer4360: *client_host -# peer4361: *client_host -# peer4362: *client_host -# peer4363: *client_host -# peer4364: *client_host -# peer4365: *client_host -# peer4366: *client_host -# peer4367: *client_host -# peer4368: *client_host -# peer4369: *client_host -# peer4370: *client_host -# peer4371: *client_host -# peer4372: *client_host -# peer4373: *client_host -# peer4374: *client_host -# peer4375: *client_host -# peer4376: *client_host -# peer4377: *client_host -# peer4378: *client_host -# peer4379: *client_host -# peer4380: *client_host -# peer4381: *client_host -# peer4382: *client_host -# peer4383: *client_host -# peer4384: *client_host -# peer4385: *client_host -# peer4386: *client_host -# peer4387: *client_host -# peer4388: *client_host -# peer4389: *client_host -# peer4390: *client_host -# peer4391: *client_host -# peer4392: *client_host -# peer4393: *client_host -# peer4394: *client_host -# peer4395: *client_host -# peer4396: *client_host -# peer4397: *client_host -# peer4398: *client_host -# peer4399: *client_host -# peer4400: *client_host -# peer4401: *client_host -# peer4402: *client_host -# peer4403: *client_host -# peer4404: *client_host -# peer4405: *client_host -# peer4406: *client_host -# peer4407: *client_host -# peer4408: *client_host -# peer4409: *client_host -# peer4410: *client_host -# peer4411: *client_host -# peer4412: *client_host -# peer4413: *client_host -# peer4414: *client_host -# peer4415: *client_host -# peer4416: *client_host -# peer4417: *client_host -# peer4418: *client_host -# peer4419: *client_host -# peer4420: *client_host -# peer4421: *client_host -# peer4422: *client_host -# peer4423: *client_host -# peer4424: *client_host -# peer4425: *client_host -# peer4426: *client_host -# peer4427: *client_host -# peer4428: *client_host -# peer4429: *client_host -# peer4430: *client_host -# peer4431: *client_host -# peer4432: *client_host -# peer4433: *client_host -# peer4434: *client_host -# peer4435: *client_host -# peer4436: *client_host -# peer4437: *client_host -# peer4438: *client_host -# peer4439: *client_host -# peer4440: *client_host -# peer4441: *client_host -# peer4442: *client_host -# peer4443: *client_host -# peer4444: *client_host -# peer4445: *client_host -# peer4446: *client_host -# peer4447: *client_host -# peer4448: *client_host -# peer4449: *client_host -# peer4450: *client_host -# peer4451: *client_host -# peer4452: *client_host -# peer4453: *client_host -# peer4454: *client_host -# peer4455: *client_host -# peer4456: *client_host -# peer4457: *client_host -# peer4458: *client_host -# peer4459: *client_host -# peer4460: *client_host -# peer4461: *client_host -# peer4462: *client_host -# peer4463: *client_host -# peer4464: *client_host -# peer4465: *client_host -# peer4466: *client_host -# peer4467: *client_host -# peer4468: *client_host -# peer4469: *client_host -# peer4470: *client_host -# peer4471: *client_host -# peer4472: *client_host -# peer4473: *client_host -# peer4474: *client_host -# peer4475: *client_host -# peer4476: *client_host -# peer4477: *client_host -# peer4478: *client_host -# peer4479: *client_host -# peer4480: *client_host -# peer4481: *client_host -# peer4482: *client_host -# peer4483: *client_host -# peer4484: *client_host -# peer4485: *client_host -# peer4486: *client_host -# peer4487: *client_host -# peer4488: *client_host -# peer4489: *client_host -# peer4490: *client_host -# peer4491: *client_host -# peer4492: *client_host -# peer4493: *client_host -# peer4494: *client_host -# peer4495: *client_host -# peer4496: *client_host -# peer4497: *client_host -# peer4498: *client_host -# peer4499: *client_host -# peer4500: *client_host -# peer4501: *client_host -# peer4502: *client_host -# peer4503: *client_host -# peer4504: *client_host -# peer4505: *client_host -# peer4506: *client_host -# peer4507: *client_host -# peer4508: *client_host -# peer4509: *client_host -# peer4510: *client_host -# peer4511: *client_host -# peer4512: *client_host -# peer4513: *client_host -# peer4514: *client_host -# peer4515: *client_host -# peer4516: *client_host -# peer4517: *client_host -# peer4518: *client_host -# peer4519: *client_host -# peer4520: *client_host -# peer4521: *client_host -# peer4522: *client_host -# peer4523: *client_host -# peer4524: *client_host -# peer4525: *client_host -# peer4526: *client_host -# peer4527: *client_host -# peer4528: *client_host -# peer4529: *client_host -# peer4530: *client_host -# peer4531: *client_host -# peer4532: *client_host -# peer4533: *client_host -# peer4534: *client_host -# peer4535: *client_host -# peer4536: *client_host -# peer4537: *client_host -# peer4538: *client_host -# peer4539: *client_host -# peer4540: *client_host -# peer4541: *client_host -# peer4542: *client_host -# peer4543: *client_host -# peer4544: *client_host -# peer4545: *client_host -# peer4546: *client_host -# peer4547: *client_host -# peer4548: *client_host -# peer4549: *client_host -# peer4550: *client_host -# peer4551: *client_host -# peer4552: *client_host -# peer4553: *client_host -# peer4554: *client_host -# peer4555: *client_host -# peer4556: *client_host -# peer4557: *client_host -# peer4558: *client_host -# peer4559: *client_host -# peer4560: *client_host -# peer4561: *client_host -# peer4562: *client_host -# peer4563: *client_host -# peer4564: *client_host -# peer4565: *client_host -# peer4566: *client_host -# peer4567: *client_host -# peer4568: *client_host -# peer4569: *client_host -# peer4570: *client_host -# peer4571: *client_host -# peer4572: *client_host -# peer4573: *client_host -# peer4574: *client_host -# peer4575: *client_host -# peer4576: *client_host -# peer4577: *client_host -# peer4578: *client_host -# peer4579: *client_host -# peer4580: *client_host -# peer4581: *client_host -# peer4582: *client_host -# peer4583: *client_host -# peer4584: *client_host -# peer4585: *client_host -# peer4586: *client_host -# peer4587: *client_host -# peer4588: *client_host -# peer4589: *client_host -# peer4590: *client_host -# peer4591: *client_host -# peer4592: *client_host -# peer4593: *client_host -# peer4594: *client_host -# peer4595: *client_host -# peer4596: *client_host -# peer4597: *client_host -# peer4598: *client_host -# peer4599: *client_host -# peer4600: *client_host -# peer4601: *client_host -# peer4602: *client_host -# peer4603: *client_host -# peer4604: *client_host -# peer4605: *client_host -# peer4606: *client_host -# peer4607: *client_host -# peer4608: *client_host -# peer4609: *client_host -# peer4610: *client_host -# peer4611: *client_host -# peer4612: *client_host -# peer4613: *client_host -# peer4614: *client_host -# peer4615: *client_host -# peer4616: *client_host -# peer4617: *client_host -# peer4618: *client_host -# peer4619: *client_host -# peer4620: *client_host -# peer4621: *client_host -# peer4622: *client_host -# peer4623: *client_host -# peer4624: *client_host -# peer4625: *client_host -# peer4626: *client_host -# peer4627: *client_host -# peer4628: *client_host -# peer4629: *client_host -# peer4630: *client_host -# peer4631: *client_host -# peer4632: *client_host -# peer4633: *client_host -# peer4634: *client_host -# peer4635: *client_host -# peer4636: *client_host -# peer4637: *client_host -# peer4638: *client_host -# peer4639: *client_host -# peer4640: *client_host -# peer4641: *client_host -# peer4642: *client_host -# peer4643: *client_host -# peer4644: *client_host -# peer4645: *client_host -# peer4646: *client_host -# peer4647: *client_host -# peer4648: *client_host -# peer4649: *client_host -# peer4650: *client_host -# peer4651: *client_host -# peer4652: *client_host -# peer4653: *client_host -# peer4654: *client_host -# peer4655: *client_host -# peer4656: *client_host -# peer4657: *client_host -# peer4658: *client_host -# peer4659: *client_host -# peer4660: *client_host -# peer4661: *client_host -# peer4662: *client_host -# peer4663: *client_host -# peer4664: *client_host -# peer4665: *client_host -# peer4666: *client_host -# peer4667: *client_host -# peer4668: *client_host -# peer4669: *client_host -# peer4670: *client_host -# peer4671: *client_host -# peer4672: *client_host -# peer4673: *client_host -# peer4674: *client_host -# peer4675: *client_host -# peer4676: *client_host -# peer4677: *client_host -# peer4678: *client_host -# peer4679: *client_host -# peer4680: *client_host -# peer4681: *client_host -# peer4682: *client_host -# peer4683: *client_host -# peer4684: *client_host -# peer4685: *client_host -# peer4686: *client_host -# peer4687: *client_host -# peer4688: *client_host -# peer4689: *client_host -# peer4690: *client_host -# peer4691: *client_host -# peer4692: *client_host -# peer4693: *client_host -# peer4694: *client_host -# peer4695: *client_host -# peer4696: *client_host -# peer4697: *client_host -# peer4698: *client_host -# peer4699: *client_host -# peer4700: *client_host -# peer4701: *client_host -# peer4702: *client_host -# peer4703: *client_host -# peer4704: *client_host -# peer4705: *client_host -# peer4706: *client_host -# peer4707: *client_host -# peer4708: *client_host -# peer4709: *client_host -# peer4710: *client_host -# peer4711: *client_host -# peer4712: *client_host -# peer4713: *client_host -# peer4714: *client_host -# peer4715: *client_host -# peer4716: *client_host -# peer4717: *client_host -# peer4718: *client_host -# peer4719: *client_host -# peer4720: *client_host -# peer4721: *client_host -# peer4722: *client_host -# peer4723: *client_host -# peer4724: *client_host -# peer4725: *client_host -# peer4726: *client_host -# peer4727: *client_host -# peer4728: *client_host -# peer4729: *client_host -# peer4730: *client_host -# peer4731: *client_host -# peer4732: *client_host -# peer4733: *client_host -# peer4734: *client_host -# peer4735: *client_host -# peer4736: *client_host -# peer4737: *client_host -# peer4738: *client_host -# peer4739: *client_host -# peer4740: *client_host -# peer4741: *client_host -# peer4742: *client_host -# peer4743: *client_host -# peer4744: *client_host -# peer4745: *client_host -# peer4746: *client_host -# peer4747: *client_host -# peer4748: *client_host -# peer4749: *client_host -# peer4750: *client_host -# peer4751: *client_host -# peer4752: *client_host -# peer4753: *client_host -# peer4754: *client_host -# peer4755: *client_host -# peer4756: *client_host -# peer4757: *client_host -# peer4758: *client_host -# peer4759: *client_host -# peer4760: *client_host -# peer4761: *client_host -# peer4762: *client_host -# peer4763: *client_host -# peer4764: *client_host -# peer4765: *client_host -# peer4766: *client_host -# peer4767: *client_host -# peer4768: *client_host -# peer4769: *client_host -# peer4770: *client_host -# peer4771: *client_host -# peer4772: *client_host -# peer4773: *client_host -# peer4774: *client_host -# peer4775: *client_host -# peer4776: *client_host -# peer4777: *client_host -# peer4778: *client_host -# peer4779: *client_host -# peer4780: *client_host -# peer4781: *client_host -# peer4782: *client_host -# peer4783: *client_host -# peer4784: *client_host -# peer4785: *client_host -# peer4786: *client_host -# peer4787: *client_host -# peer4788: *client_host -# peer4789: *client_host -# peer4790: *client_host -# peer4791: *client_host -# peer4792: *client_host -# peer4793: *client_host -# peer4794: *client_host -# peer4795: *client_host -# peer4796: *client_host -# peer4797: *client_host -# peer4798: *client_host -# peer4799: *client_host -# peer4800: *client_host -# peer4801: *client_host -# peer4802: *client_host -# peer4803: *client_host -# peer4804: *client_host -# peer4805: *client_host -# peer4806: *client_host -# peer4807: *client_host -# peer4808: *client_host -# peer4809: *client_host -# peer4810: *client_host -# peer4811: *client_host -# peer4812: *client_host -# peer4813: *client_host -# peer4814: *client_host -# peer4815: *client_host -# peer4816: *client_host -# peer4817: *client_host -# peer4818: *client_host -# peer4819: *client_host -# peer4820: *client_host -# peer4821: *client_host -# peer4822: *client_host -# peer4823: *client_host -# peer4824: *client_host -# peer4825: *client_host -# peer4826: *client_host -# peer4827: *client_host -# peer4828: *client_host -# peer4829: *client_host -# peer4830: *client_host -# peer4831: *client_host -# peer4832: *client_host -# peer4833: *client_host -# peer4834: *client_host -# peer4835: *client_host -# peer4836: *client_host -# peer4837: *client_host -# peer4838: *client_host -# peer4839: *client_host -# peer4840: *client_host -# peer4841: *client_host -# peer4842: *client_host -# peer4843: *client_host -# peer4844: *client_host -# peer4845: *client_host -# peer4846: *client_host -# peer4847: *client_host -# peer4848: *client_host -# peer4849: *client_host -# peer4850: *client_host -# peer4851: *client_host -# peer4852: *client_host -# peer4853: *client_host -# peer4854: *client_host -# peer4855: *client_host -# peer4856: *client_host -# peer4857: *client_host -# peer4858: *client_host -# peer4859: *client_host -# peer4860: *client_host -# peer4861: *client_host -# peer4862: *client_host -# peer4863: *client_host -# peer4864: *client_host -# peer4865: *client_host -# peer4866: *client_host -# peer4867: *client_host -# peer4868: *client_host -# peer4869: *client_host -# peer4870: *client_host -# peer4871: *client_host -# peer4872: *client_host -# peer4873: *client_host -# peer4874: *client_host -# peer4875: *client_host -# peer4876: *client_host -# peer4877: *client_host -# peer4878: *client_host -# peer4879: *client_host -# peer4880: *client_host -# peer4881: *client_host -# peer4882: *client_host -# peer4883: *client_host -# peer4884: *client_host -# peer4885: *client_host -# peer4886: *client_host -# peer4887: *client_host -# peer4888: *client_host -# peer4889: *client_host -# peer4890: *client_host -# peer4891: *client_host -# peer4892: *client_host -# peer4893: *client_host -# peer4894: *client_host -# peer4895: *client_host -# peer4896: *client_host -# peer4897: *client_host -# peer4898: *client_host -# peer4899: *client_host -# peer4900: *client_host -# peer4901: *client_host -# peer4902: *client_host -# peer4903: *client_host -# peer4904: *client_host -# peer4905: *client_host -# peer4906: *client_host -# peer4907: *client_host -# peer4908: *client_host -# peer4909: *client_host -# peer4910: *client_host -# peer4911: *client_host -# peer4912: *client_host -# peer4913: *client_host -# peer4914: *client_host -# peer4915: *client_host -# peer4916: *client_host -# peer4917: *client_host -# peer4918: *client_host -# peer4919: *client_host -# peer4920: *client_host -# peer4921: *client_host -# peer4922: *client_host -# peer4923: *client_host -# peer4924: *client_host -# peer4925: *client_host -# peer4926: *client_host -# peer4927: *client_host -# peer4928: *client_host -# peer4929: *client_host -# peer4930: *client_host -# peer4931: *client_host -# peer4932: *client_host -# peer4933: *client_host -# peer4934: *client_host -# peer4935: *client_host -# peer4936: *client_host -# peer4937: *client_host -# peer4938: *client_host -# peer4939: *client_host -# peer4940: *client_host -# peer4941: *client_host -# peer4942: *client_host -# peer4943: *client_host -# peer4944: *client_host -# peer4945: *client_host -# peer4946: *client_host -# peer4947: *client_host -# peer4948: *client_host -# peer4949: *client_host -# peer4950: *client_host -# peer4951: *client_host -# peer4952: *client_host -# peer4953: *client_host -# peer4954: *client_host -# peer4955: *client_host -# peer4956: *client_host -# peer4957: *client_host -# peer4958: *client_host -# peer4959: *client_host -# peer4960: *client_host -# peer4961: *client_host -# peer4962: *client_host -# peer4963: *client_host -# peer4964: *client_host -# peer4965: *client_host -# peer4966: *client_host -# peer4967: *client_host -# peer4968: *client_host -# peer4969: *client_host -# peer4970: *client_host -# peer4971: *client_host -# peer4972: *client_host -# peer4973: *client_host -# peer4974: *client_host -# peer4975: *client_host -# peer4976: *client_host -# peer4977: *client_host -# peer4978: *client_host -# peer4979: *client_host -# peer4980: *client_host -# peer4981: *client_host -# peer4982: *client_host -# peer4983: *client_host -# peer4984: *client_host -# peer4985: *client_host -# peer4986: *client_host -# peer4987: *client_host -# peer4988: *client_host -# peer4989: *client_host -# peer4990: *client_host -# peer4991: *client_host -# peer4992: *client_host -# peer4993: *client_host -# peer4994: *client_host -# peer4995: *client_host -# peer4996: *client_host -# peer4997: *client_host -# peer4998: *client_host -# peer4999: *client_host -# peer5000: *client_host + \ No newline at end of file diff --git a/shadow/summary_dontwant.awk b/shadow/summary_dontwant.awk new file mode 100644 index 0000000..3f4e214 --- /dev/null +++ b/shadow/summary_dontwant.awk @@ -0,0 +1,30 @@ +BEGIN { + FS = " "; #default column separator + idontwant_saves = min_idontwant = max_idontwant = 0; + dup_received = min_dup = max_dup = 0; + unique_msg_received = 0; + stagger_saves = 0; + stagger_DontWantSaves = 0; +} + +{ + #print $5, $7, $9 + idontwant_saves += $5 + if ($5 < min_idontwant || min_idontwant == 0) min_idontwant = $5 + if ($5 > max_idontwant) max_idontwant = $5 + + dup_received += $7 + if ($7 < min_dup || min_dup == 0) min_dup = $7 + if ($7 > max_dup) max_dup = $7 + + unique_msg_received += $9 + stagger_saves += $11 + stagger_DontWantSaves += $13 + +} + +END { + print "idontwant_saves min, max, avg, total : ", min_idontwant, "\t", max_idontwant, "\t", idontwant_saves/NR, "\t", idontwant_saves + print "dup_received min, max, avg, total : ", min_dup, "\t", max_dup, "\t", dup_received/NR, "\t", dup_received + print "Unique_msg_received: ", unique_msg_received, "\tStagger Saves : ", stagger_saves, "\tStaggerDontWantSaves", stagger_DontWantSaves +} diff --git a/shadow/summary_latency.awk b/shadow/summary_latency.awk new file mode 100644 index 0000000..f31d4e9 --- /dev/null +++ b/shadow/summary_latency.awk @@ -0,0 +1,49 @@ +# we parse the latencies(x) file produced by run.sh to receive results summary (Max/Avg Latency --> per packet, overall) +# runs $awk -f result_summary.awk latencies(x) + +BEGIN { + FS = " "; #default column separator + network_size = 0 + max_nw_lat = sum_nw_lat = 0 + hop_lat = 100 #should be consistent with shadow.yaml +} + +{ + clean_int = $3 + gsub(/[^0-9]/, "", clean_int); + if ($3 == clean_int){ #get rid of unwanted rows + sum_nw_lat += $NF + if (max_nw_lat < $NF) {max_nw_lat = $NF} + if (split($1, arr, "peer|/main|:.*:")) { + #$3 = rx_latency, arr[4] = publish_time, arr[2] = peerID + lat_arr[arr[4], $3]++; + msg_arr[arr[4]] = 1; #we maintain set of messages identified by their publish time + if (network_size < arr[2]) {network_size = arr[2]} + } + } +} + +END { + + print "Total Nodes : ", network_size, "Total Messages Published : ", length(msg_arr), + "Network Latency\t MAX : ", max_nw_lat, "\tAverage : ", sum_nw_lat/NR + print " Message ID \t Avg Latency \t Messages Received" + for (value in msg_arr) { + sum_rx_msgs = 0; + latency = 0; + for (key in lat_arr) { + split(key, parts, SUBSEP); + if (parts[1] == value) { + sum_rx_msgs = sum_rx_msgs + lat_arr[key]; #total receives / message + latency = latency + (lat_arr[key] * parts[2]) + spread[ int((parts[2]) / hop_lat) ] = lat_arr[key] #hop-by-hop spread count of messages + } + } + + print value, "\t", latency/sum_rx_msgs, "\t ", sum_rx_msgs, "spread is", + spread[1], spread[2], spread[3], spread[4], spread[5], spread[6], spread[7] + delete spread + } +} + + diff --git a/shadow/summary_latency_large.awk b/shadow/summary_latency_large.awk new file mode 100644 index 0000000..1e49a99 --- /dev/null +++ b/shadow/summary_latency_large.awk @@ -0,0 +1,73 @@ +# we parse the latencies(x) file produced by run.sh to receive results summary (Max/Avg Latency --> per packet, overall) +# runs $awk -f result_summary.awk latencies(x) + +BEGIN { + FS = " "; #default column separator + network_size = 0 + max_nw_lat = sum_nw_lat = sum_max_delays = 0 + hop_lat = 100 #should be consistent with shadow.yaml +} + +{ + clean_int = $3 + gsub(/[^0-9]/, "", clean_int); + if ($3 == clean_int){ #get rid of unwanted rows + sum_nw_lat += $NF + if (max_nw_lat < $NF) {max_nw_lat = $NF} + if (split($1, arr, "peer|/main|:.*:")) { + #$3 = rx_latency, arr[4] = publish_time, arr[2] = peerID + + #We compute network-wide dissemination latency for each message + if (max_msg_latency[arr[4]] < $NF) {max_msg_latency[arr[4]] = $NF} + + #we round to values to nearest hop_lat to estimate hop coverage + rounded_RxTime = (int($3/hop_lat + 0.5)) * hop_lat + lat_arr[arr[4], rounded_RxTime]++; + msg_arr[arr[4]] = 1; #we maintain set of messages identified by their publish time + if (network_size < arr[2]) {network_size = arr[2]} + } + } +} + +END { + + print "Total Nodes : ", network_size, "Total Messages Published : ", length(msg_arr), + "Network Latency\t MAX : ", max_nw_lat, "\tAverage : ", sum_nw_lat/NR + print " Message ID \t Avg Latency \t Messages Received" + for (value in msg_arr) { + sum_rx_msgs = 0; + latency = 0; + spread[1] = spread[2] = spread[3] = spread[4] = spread[5] = spread[6] = spread[7] = spread[8] = spread[9] = 0 + spread[10] = spread[11] = spread[12] = spread[13] = spread[14] = spread[15] = spread[16] = spread[17] = spread[18] = 0 + for (key in lat_arr) { + split(key, parts, SUBSEP); + if (parts[1] == value) { + #parts[2] recv time + #10% 20% 30%....90% under parts[2] + sum_rx_msgs = sum_rx_msgs + lat_arr[key]; #total receives / message + latency = latency + (lat_arr[key] * parts[2]) + spread[ int((parts[2]) / hop_lat) ] = lat_arr[key] #hop-by-hop spread count of messages + } + } + + print value, "\t", latency/sum_rx_msgs, "\t ", sum_rx_msgs, "spread is", + spread[1], spread[2], spread[3], spread[4], spread[5], spread[6], spread[7], spread[8], spread[9], + spread[10], spread[11], spread[12], spread[13], spread[14], spread[15], spread[16], spread[17], spread[18], + spread[19], spread[20], spread[21], spread[22], spread[23], spread[24], spread[25], spread[26], spread[27], + spread[28], spread[29], spread[30], spread[31], spread[32], spread[33], spread[34], spread[35], spread[36], + spread[37], spread[38], spread[39], spread[40], spread[41], spread[42], spread[43], spread[44], spread[45], + spread[46], spread[47], spread[48], spread[49], spread[50], spread[51], spread[52], spread[53], spread[54] + delete spread + } + + for (delay_val in max_msg_latency) { + print "MAX delay for ", delay_val, "is \t", max_msg_latency[delay_val] + sum_max_delays = sum_max_delays + max_msg_latency[delay_val] + } + + print "Total Messages Published : ", length(max_msg_latency), "Average Max Message Dissemination Latency : ", sum_max_delays/length(max_msg_latency) + + +} + + diff --git a/shadow/summary_shadowlog.awk b/shadow/summary_shadowlog.awk new file mode 100644 index 0000000..4fac407 --- /dev/null +++ b/shadow/summary_shadowlog.awk @@ -0,0 +1,145 @@ +BEGIN { + FS = " "; #column separator + fg_index = 7 #flags start index in $10 + flag_size = 12 #size of flags + local_in = 0 #inbound-localhost-counters + local_out = 1 #outbound-localhost-counters + remote_in = 2 #inbound-remote-counters + remote_out = 3 #outbound-remote-counters +} + +{ + if ($9 == "[node]") { + #$5: peer info, $10: traffic stats, we need to split + peerlist[$5] = 1 #list for all peers + + if (split($10, arr, ",|;")) { + #arr[2]: received bytes, arr[3]: transferred bytes + if (arr[2] > 0) {sum_rx[$5] += arr[2]} #bytes received + if (arr[3] > 0) {sum_tx[$5] += arr[3]} #bytes transferred + + #inbound-localhost-counters + idx = fg_index + (flag_size * local_in) + #if (arr[idx] > 0) { + local_in_pkt[$5] += arr[idx] + local_in_bytes[$5] += arr[idx+1] + local_in_ctrl_pkt[$5] += arr[idx+2] + local_in_ctrl_hdr_bytes[$5] += arr[idx+3] + local_in_data_pkt[$5] += arr[idx+6] + local_in_data_hdr_bytes[$5] += arr[idx+7] + local_in_data_bytes[$5] += arr[idx+8] + #} + #outbound-localhost-counters + idx = fg_index + (flag_size * local_out) + #if (arr[idx] > 0) { + local_out_pkt[$5] += arr[idx] + local_out_bytes[$5] += arr[idx+1] + local_out_ctrl_pkt[$5] += arr[idx+2] + local_out_ctrl_hdr_bytes[$5] += arr[idx+3] + local_out_data_pkt[$5] += arr[idx+6] + local_out_data_hdr_bytes[$5] += arr[idx+7] + local_out_data_bytes[$5] += arr[idx+8] + #} + #inbound-remote-counters + idx = fg_index + (flag_size * remote_in) + #if (arr[idx] > 0) { + remote_in_pkt[$5] += arr[idx] + remote_in_bytes[$5] += arr[idx+1] + remote_in_ctrl_pkt[$5] += arr[idx+2] + remote_in_ctrl_hdr_bytes[$5] += arr[idx+3] + remote_in_data_pkt[$5] += arr[idx+6] + remote_in_data_hdr_bytes[$5] += arr[idx+7] + remote_in_data_bytes[$5] += arr[idx+8] + #} + #outbound-remote-counters + idx = fg_index + (flag_size * remote_out) + #if (arr[idx] > 0) { + remote_out_pkt[$5] += arr[idx] + remote_out_bytes[$5] += arr[idx+1] + remote_out_ctrl_pkt[$5] += arr[idx+2] + remote_out_ctrl_hdr_bytes[$5] += arr[idx+3] + remote_out_data_pkt[$5] += arr[idx+6] + remote_out_data_hdr_bytes[$5] += arr[idx+7] + remote_out_data_bytes[$5] += arr[idx+8] + #} + + } + } +} + +END { + nw_size = length(peerlist) + min_in = max_in = min_out = max_out = sum_in = sum_out = avg_in = avg_out = 0 + for (value in peerlist) { #node specific tx/rx stats (bytes) + sum_in += sum_rx[value] + sum_out += sum_tx[value] + + if (sum_rx[value] < min_in || min_in == 0) min_in = sum_rx[value] + if (sum_tx[value] < min_out || min_out == 0) min_out = sum_tx[value] + if (sum_rx[value] > max_in) max_in = sum_rx[value] + if (sum_tx[value] > max_out) max_out = sum_tx[value] + } + avg_in = sum_in/nw_size + avg_out = sum_out/nw_size + + + + for (value in peerlist) { + + sum_sq_in += (sum_rx[value] - avg_in) ^ 2 #for stddev + sum_sq_out += (sum_tx[value] - avg_out) ^ 2 + + sum_local_in_pkt += local_in_pkt[value] + sum_local_in_bytes += local_in_bytes[value] + sum_local_in_ctrl_pkt += local_in_ctrl_pkt[value] + sum_local_in_ctrl_hdr_bytes += local_in_ctrl_hdr_bytes[value] + sum_local_in_data_pkt += local_in_data_pkt[value] + sum_local_in_data_hdr_bytes += local_in_data_hdr_bytes[value] + sum_local_in_data_bytes += local_in_data_bytes[value] + + sum_local_out_pkt += local_out_pkt[value] + sum_local_out_bytes += local_out_bytes[value] + sum_local_out_ctrl_pkt += local_out_ctrl_pkt[value] + sum_local_out_ctrl_hdr_bytes += local_out_ctrl_hdr_bytes[value] + sum_local_out_data_pkt += local_out_data_pkt[value] + sum_local_out_data_hdr_bytes += local_out_data_hdr_bytes[value] + sum_local_out_data_bytes += local_out_data_bytes[value] + + sum_remote_in_pkt += remote_in_pkt[value] + sum_romote_in_bytes += remote_in_bytes[value] + sum_remote_in_ctrl_pkt += remote_in_ctrl_pkt[value] + sum_remote_in_ctrl_hdr_bytes += remote_in_ctrl_hdr_bytes[value] + sum_remote_in_data_pkt += remote_in_data_pkt[value] + sum_remote_in_data_hdr_bytes += remote_in_data_hdr_bytes[value] + sum_remote_in_data_bytes +=remote_in_data_bytes[value] + + sum_remote_out_pkt +=remote_out_pkt[value] + sum_remote_out_bytes +=remote_out_bytes[value] + sum_remote_out_ctrl_pkt +=remote_out_ctrl_pkt[value] + sum_remote_out_ctrl_hdr_bytes +=remote_out_ctrl_hdr_bytes[value] + sum_remote_out_data_pkt +=remote_out_data_pkt[value] + sum_remote_out_data_hdr_bytes +=remote_out_data_hdr_bytes[value] + sum_remote_out_data_bytes +=remote_out_data_bytes[value] + + #} + } + + print "\nTotal Bytes Received : ", sum_in, "Total Bytes Transferred : ", sum_out + print "Per Node Pkt Receives : min, max, avg, stddev = ", min_in, max_in, avg_in, sqrt(sum_sq_in/nw_size) + print "Per Node Pkt Transfers: min, max, avg, stddev = ", min_out, max_out, avg_out, sqrt(sum_sq_out/nw_size) + + + print "Details..." + #print "Local IN pkt: ", sum_local_in_pkt, "Bytes : ", sum_local_in_bytes, "ctrlPkt: ", sum_local_in_ctrl_pkt, "ctrlHdrBytes: ", sum_local_in_ctrl_hdr_bytes, + # "DataPkt: ", sum_local_in_data_pkt, "DataHdrBytes: ", sum_local_in_data_hdr_bytes, "DataBytes", sum_local_in_data_bytes + #print "Local OUT pkt: ", sum_local_out_pkt, "Bytes : ", sum_local_out_bytes, "ctrlPkt: ", sum_local_out_ctrl_pkt, "ctrlHdrBytes: ", sum_local_out_ctrl_hdr_bytes, + # "DataPkt: ", sum_local_out_data_pkt, "DataHdrBytes: ", sum_local_out_data_hdr_bytes, "DataBytes", sum_local_out_data_bytes + print "Remote IN pkt: ", sum_remote_in_pkt, "Bytes : ", sum_romote_in_bytes, "ctrlPkt: ", sum_remote_in_ctrl_pkt, "ctrlHdrBytes: ", sum_remote_in_ctrl_hdr_bytes, + "DataPkt: ", sum_remote_in_data_pkt, "DataHdrBytes: ", sum_remote_in_data_hdr_bytes, "DataBytes", sum_remote_in_data_bytes + print "Remote OUT pkt: ", sum_remote_out_pkt, "Bytes : ", sum_romote_out_bytes, "ctrlPkt: ", sum_remote_out_ctrl_pkt, "ctrlHdrBytes: ", sum_remote_out_ctrl_hdr_bytes, + "DataPkt: ", sum_remote_out_data_pkt, "DataHdrBytes: ", sum_remote_out_data_hdr_bytes, "DataBytes", sum_remote_out_data_bytes + + +} + +