#include <DBKit/DBKBTree.h>
#include "test.h"

void test5(DBKBTree *tree)
{
  DBKBTreeNode *node;
  int index;

  NSLog(@"test 5");

  NSLog(@"insert 50 items");
  [tree insertKey: [NSNumber numberWithUnsignedLong: 122]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 245]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 491]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 474]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 440]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 372]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 236]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 473]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 438]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 368]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 228]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 457]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 406]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 304]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 100]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 201]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 403]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 298]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 88]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 177]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 355]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 202]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 405]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 302]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 96]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 193]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 387]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 266]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 24]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 49]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 99]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 199]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 399]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 290]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 72]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 145]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 291]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 74]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 149]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 299]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 90]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 181]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 363]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 218]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 437]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 366]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 224]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 449]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 390]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 272]];

  NSLog(@"Show tree structure");
  printTree(tree);

  NSLog(@"do 459 alternating deletes and inserts");
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 122]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 36]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 245]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 73]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 491]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 147]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 474]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 295]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 440]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 82]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 372]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 165]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 236]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 331]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 473]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 154]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 438]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 309]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 368]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 110]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 228]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 221]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 457]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 443]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 406]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 378]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 304]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 248]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 100]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 497]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 201]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 486]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 403]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 464]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 298]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 420]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 88]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 332]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 177]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 156]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 355]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 313]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 202]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 118]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 405]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 237]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 302]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 475]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 96]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 442]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 193]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 376]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 387]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 244]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 266]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 489]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 24]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 470]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 49]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 432]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 99]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 356]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 199]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 204]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 399]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 409]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 290]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 310]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 72]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 112]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 145]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 225]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 291]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 451]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 74]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 394]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 149]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 280]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 299]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 52]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 90]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 105]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 181]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 211]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 363]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 423]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 218]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 338]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 437]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 168]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 366]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 337]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 224]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 166]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 449]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 333]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 390]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 158]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 272]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 317]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 36]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 126]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 73]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 253]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 147]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 507]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 295]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 506]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 82]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 504]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 165]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 500]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 331]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 492]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 154]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 476]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 309]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 444]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 110]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 380]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 221]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 252]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 443]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 505]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 378]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 502]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 248]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 496]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 497]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 484]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 486]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 460]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 464]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 412]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 420]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 316]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 332]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 124]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 156]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 249]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 313]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 499]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 118]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 490]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 237]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 472]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 475]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 436]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 442]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 364]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 376]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 220]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 244]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 441]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 489]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 374]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 470]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 240]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 432]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 481]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 356]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 454]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 204]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 400]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 409]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 292]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 310]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 76]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 112]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 153]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 225]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 307]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 451]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 106]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 394]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 213]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 280]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 427]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 52]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 346]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 105]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 184]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 211]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 369]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 423]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 230]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 338]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 461]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 168]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 414]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 337]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 320]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 166]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 132]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 333]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 265]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 158]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 22]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 317]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 45]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 126]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 91]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 253]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 183]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 507]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 367]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 506]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 226]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 504]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 453]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 500]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 398]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 492]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 288]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 476]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 68]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 444]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 137]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 380]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 275]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 252]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 42]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 505]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 85]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 502]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 171]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 496]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 343]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 484]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 178]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 460]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 357]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 412]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 206]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 316]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 413]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 124]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 318]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 249]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 128]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 499]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 257]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 490]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 6]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 472]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 13]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 436]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 27]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 364]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 55]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 220]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 111]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 441]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 223]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 374]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 447]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 240]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 386]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 481]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 264]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 454]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 20]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 400]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 41]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 292]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 83]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 76]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 167]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 153]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 335]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 307]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 162]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 106]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 325]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 213]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 142]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 427]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 285]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 346]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 62]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 184]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 125]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 369]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 251]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 230]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 503]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 461]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 498]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 414]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 488]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 320]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 468]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 132]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 428]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 265]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 348]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 22]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 188]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 45]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 377]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 91]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 246]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 183]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 493]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 367]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 478]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 226]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 448]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 453]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 388]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 398]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 268]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 288]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 28]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 68]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 57]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 137]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 115]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 275]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 231]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 42]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 463]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 85]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 418]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 171]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 328]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 343]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 148]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 178]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 297]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 357]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 86]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 206]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 173]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 413]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 347]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 318]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 186]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 128]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 373]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 257]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 238]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 6]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 477]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 13]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 446]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 27]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 384]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 55]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 260]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 111]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 12]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 223]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 25]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 447]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 51]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 386]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 103]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 264]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 207]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 20]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 415]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 41]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 322]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 83]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 136]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 167]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 273]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 335]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 38]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 162]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 77]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 325]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 155]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 142]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 311]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 285]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 114]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 62]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 229]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 125]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 459]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 251]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 410]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 503]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 312]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 498]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 116]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 488]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 233]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 468]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 467]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 428]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 426]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 348]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 344]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 188]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 180]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 377]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 361]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 246]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 214]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 493]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 429]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 478]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 350]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 448]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 192]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 388]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 385]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 268]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 262]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 28]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 16]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 57]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 33]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 115]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 67]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 231]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 135]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 463]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 271]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 418]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 34]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 328]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 69]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 148]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 139]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 297]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 279]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 86]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 50]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 173]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 101]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 347]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 203]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 186]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 407]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 373]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 306]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 238]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 104]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 477]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 209]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 446]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 419]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 384]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 330]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 260]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 152]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 12]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 305]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 25]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 102]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 51]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 205]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 103]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 411]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 207]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 314]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 415]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 120]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 322]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 241]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 136]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 483]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 273]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 458]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 38]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 408]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 77]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 308]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 155]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 108]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 311]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 217]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 114]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 435]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 229]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 362]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 459]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 216]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 410]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 433]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 312]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 358]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 116]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 208]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 233]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 417]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 467]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 326]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 426]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 144]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 344]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 289]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 180]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 70]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 361]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 141]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 214]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 283]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 429]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 58]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 350]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 117]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 192]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 235]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 385]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 471]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 262]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 434]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 16]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 360]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 33]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 212]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 67]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 425]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 135]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 342]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 271]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 176]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 34]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 353]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 69]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 198]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 139]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 397]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 279]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 286]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 50]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 64]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 101]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 129]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 203]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 259]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 407]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 10]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 306]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 21]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 104]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 43]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 209]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 87]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 419]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 175]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 330]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 351]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 152]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 194]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 305]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 389]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 102]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 270]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 205]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 32]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 411]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 65]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 314]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 131]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 120]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 263]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 241]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 18]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 483]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 37]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 458]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 75]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 408]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 151]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 308]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 303]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 108]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 98]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 217]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 197]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 435]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 395]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 362]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 282]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 216]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 56]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 433]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 113]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 358]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 227]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 208]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 455]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 417]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 402]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 326]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 296]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 144]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 84]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 289]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 169]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 70]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 339]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 141]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 170]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 283]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 341]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 58]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 174]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 117]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 349]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 235]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 190]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 471]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 381]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 434]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 254]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 360]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 0]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 212]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 1]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 425]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 3]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 342]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 7]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 176]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 15]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 353]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 31]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 198]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 63]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 397]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 127]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 286]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 255]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 64]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 2]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 129]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 5]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 259]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 11]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 10]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 23]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 21]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 47]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 43]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 95]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 87]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 191]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 175]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 383]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 351]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 258]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 194]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 8]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 389]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 17]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 270]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 35]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 32]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 71]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 65]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 143]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 131]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 287]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 263]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 66]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 18]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 133]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 37]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 267]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 75]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 26]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 151]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 53]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 303]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 107]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 98]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 215]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 197]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 431]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 395]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 354]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 282]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 200]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 56]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 401]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 113]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 294]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 227]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 80]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 455]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 161]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 402]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 323]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 296]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 138]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 84]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 277]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 169]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 46]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 339]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 93]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 170]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 187]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 341]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 375]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 174]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 242]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 349]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 485]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 190]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 462]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 381]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 416]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 254]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 324]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 0]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 140]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 1]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 281]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 3]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 54]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 7]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 109]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 15]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 219]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 31]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 439]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 63]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 370]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 127]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 232]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 255]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 465]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 2]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 422]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 5]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 336]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 11]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 164]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 23]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 329]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 47]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 150]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 95]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 301]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 191]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 94]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 383]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 189]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 258]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 379]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 8]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 250]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 17]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 501]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 35]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 494]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 71]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 480]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 143]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 452]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 287]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 396]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 66]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 284]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 133]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 60]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 267]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 121]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 26]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 243]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 53]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 487]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 107]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 466]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 215]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 424]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 431]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 340]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 354]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 172]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 200]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 345]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 401]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 182]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 294]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 365]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 80]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 222]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 161]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 445]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 323]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 382]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 138]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 256]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 277]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 4]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 46]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 9]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 93]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 19]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 187]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 39]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 375]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 79]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 242]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 159]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 485]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 319]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 462]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 130]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 416]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 261]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 324]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 14]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 140]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 29]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 281]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 59]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 54]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 119]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 109]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 239]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 219]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 479]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 439]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 450]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 370]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 392]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 232]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 276]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 465]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 44]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 422]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 89]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 336]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 179]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 164]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 359]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 329]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 210]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 150]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 421]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 301]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 334]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 94]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 160]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 189]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 321]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 379]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 134]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 250]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 269]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 501]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 30]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 494]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 61]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 480]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 123]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 452]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 247]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 396]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 495]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 284]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 482]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 60]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 456]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 121]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 404]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 243]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 300]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 487]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 92]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 466]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 185]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 424]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 371]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 340]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 234]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 172]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 469]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 345]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 430]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 182]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 352]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 365]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 196]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 222]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 393]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 445]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 278]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 382]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 48]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 256]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 97]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 4]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 195]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 9]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 391]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 19]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 274]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 39]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 40]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 79]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 81]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 159]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 163]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 319]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 327]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 130]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 146]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 261]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 293]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 14]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 78]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 29]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 157]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 59]];
  [tree insertKey: [NSNumber numberWithUnsignedLong: 315]];

  NSLog(@"Show tree structure");
  printTree(tree);

  NSLog(@"test for successful searches");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 81] getIndex: &index];
  if (node == nil) NSLog(@"************* ERROR not found *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 163] getIndex: &index];
  if (node == nil) NSLog(@"************* ERROR not found *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 327] getIndex: &index];
  if (node == nil) NSLog(@"************* ERROR not found *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 146] getIndex: &index];
  if (node == nil) NSLog(@"************* ERROR not found *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 293] getIndex: &index];
  if (node == nil) NSLog(@"************* ERROR not found *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 78] getIndex: &index];
  if (node == nil) NSLog(@"************* ERROR not found *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 157] getIndex: &index];
  if (node == nil) NSLog(@"************* ERROR not found *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 315] getIndex: &index];
  if (node == nil) NSLog(@"************* ERROR not found *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 119] getIndex: &index];
  if (node == nil) NSLog(@"************* ERROR not found *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 239] getIndex: &index];
  if (node == nil) NSLog(@"************* ERROR not found *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 479] getIndex: &index];
  if (node == nil) NSLog(@"************* ERROR not found *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 450] getIndex: &index];
  if (node == nil) NSLog(@"************* ERROR not found *****************");

  NSLog(@"test for unsuccessful searches");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 122] getIndex: &index];
  if (node) NSLog(@"************* ERROR found unexisting element *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 245] getIndex: &index];
  if (node) NSLog(@"************* ERROR found unexisting element *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 491] getIndex: &index];
  if (node) NSLog(@"************* ERROR found unexisting element *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 474] getIndex: &index];
  if (node) NSLog(@"************* ERROR found unexisting element *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 440] getIndex: &index];
  if (node) NSLog(@"************* ERROR found unexisting element *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 372] getIndex: &index];
  if (node) NSLog(@"************* ERROR found unexisting element *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 236] getIndex: &index];
  if (node) NSLog(@"************* ERROR found unexisting element *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 473] getIndex: &index];
  if (node) NSLog(@"************* ERROR found unexisting element *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 438] getIndex: &index];
  if (node) NSLog(@"************* ERROR found unexisting element *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 368] getIndex: &index];
  if (node) NSLog(@"************* ERROR found unexisting element *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 228] getIndex: &index];
  if (node) NSLog(@"************* ERROR found unexisting element *****************");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 272] getIndex: &index];
  if (node) NSLog(@"************* ERROR found unexisting element *****************");

  NSLog(@"delete all but 20 entries");
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 119]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 239]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 479]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 450]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 392]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 276]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 44]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 89]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 179]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 359]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 210]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 421]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 334]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 160]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 321]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 134]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 269]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 30]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 61]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 123]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 247]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 495]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 482]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 456]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 404]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 300]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 92]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 185]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 371]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 234]];

  NSLog(@"Show tree structure");
  printTree(tree);

  NSLog(@"delete until empty");
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 469]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 430]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 352]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 196]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 393]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 278]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 48]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 97]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 195]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 391]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 274]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 40]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 81]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 163]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 327]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 146]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 293]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 78]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 157]];
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 315]];

  NSLog(@"search in empty tree");
  node = [tree nodeOfKey: [NSNumber numberWithUnsignedLong: 254] 
                getIndex: &index];

  NSLog(@"try a delete in empty tree");
  [tree deleteKey: [NSNumber numberWithUnsignedLong: 254]];

  NSLog(@"test 5 passed\n\n");
}






















