- Timestamp:
- 04/14/07 17:31:50 (2 years ago)
- Files:
-
- branches/SVGImport/MWPointView2.m (modified) (1 diff)
- branches/SVGImport/MWSVGImport.m (modified) (5 diffs)
- branches/SVGImport/SVGImport.xcodeproj/wren.mode1 (modified) (23 diffs)
- branches/SVGImport/SVGImport.xcodeproj/wren.pbxuser (modified) (9 diffs)
- branches/SVGImport/calculations/bezier.nb (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/SVGImport/MWPointView2.m
r379 r391 96 96 MWSVGImport *svgImport; 97 97 svgImport = [[MWSVGImport alloc] init]; 98 [svgImport parseXMLFile:@"/ Users/wren/Desktop/LaserLine Dev/SVGImport/samples/butterfly.svg"];98 [svgImport parseXMLFile:@"/afs/acm.uiuc.edu/user/wren/Desktop/LaserLine Dev/SVGImport/samples/polyline1.svg"]; 99 99 100 100 NSMutableArray *arrayTemp = [svgImport array]; branches/SVGImport/MWSVGImport.m
r382 r391 154 154 NSLog(@"path: %@",pathData); 155 155 NSScanner *theScanner = [NSScanner scannerWithString:pathData]; 156 NSCharacterSet *numberSet = [NSCharacterSet decimalDigitCharacterSet];156 //NSCharacterSet *numberSet = [NSCharacterSet decimalDigitCharacterSet]; 157 157 NSCharacterSet *letterSet = [NSCharacterSet letterCharacterSet]; 158 NSCharacterSet *whiteSet = [NSCharacterSet whitespaceAndNewlineCharacterSet];158 //NSCharacterSet *whiteSet = [NSCharacterSet whitespaceAndNewlineCharacterSet]; 159 159 NSCharacterSet *whiteOrNumberSet = [NSCharacterSet characterSetWithCharactersInString:@" -123456789.0"]; 160 NSCharacterSet *extendedNumberSet = [NSCharacterSet characterSetWithCharactersInString:@"-123456789.0"]; 160 161 NSString *command; 161 162 NSString *point; … … 163 164 path = [NSBezierPath bezierPath]; 164 165 float f1,f2,f3,f4,f5,f6; 166 float prevX,prevY; 167 float firstX,firstY; 165 168 166 169 while ([theScanner isAtEnd] == NO) { … … 177 180 { 178 181 [theScanner scanFloat:&f1]; 179 [theScanner scanUpToCharactersFromSet: numberSet intoString:nil];182 [theScanner scanUpToCharactersFromSet:extendedNumberSet intoString:nil]; 180 183 [theScanner scanFloat:&f2]; 181 184 NSLog(@"Move to: %f,%f",f1,f2); 182 185 [path moveToPoint:NSMakePoint(f1,f2)]; 186 prevX = f1; 187 prevY = f2; 188 firstX = f1; 189 firstY = f2; 183 190 } else if ( [command isEqualToString:@"L"] ) 184 191 { 185 192 [theScanner scanFloat:&f1]; 186 [theScanner scanUpToCharactersFromSet: numberSet intoString:nil];193 [theScanner scanUpToCharactersFromSet:extendedNumberSet intoString:nil]; 187 194 [theScanner scanFloat:&f2]; 188 195 NSLog(@"Line to: %f,%f",f1,f2); 189 196 [path lineToPoint:NSMakePoint(f1,f2)]; 197 prevX = f1; 198 prevY = f2; 190 199 } else if ( [command isEqualToString:@"C"] ) 191 200 { 192 201 [theScanner scanFloat:&f1]; 193 [theScanner scanUpToCharactersFromSet: numberSet intoString:nil];202 [theScanner scanUpToCharactersFromSet:extendedNumberSet intoString:nil]; 194 203 [theScanner scanFloat:&f2]; 195 [theScanner scanUpToCharactersFromSet: numberSet intoString:nil];204 [theScanner scanUpToCharactersFromSet:extendedNumberSet intoString:nil]; 196 205 [theScanner scanFloat:&f3]; 197 [theScanner scanUpToCharactersFromSet: numberSet intoString:nil];206 [theScanner scanUpToCharactersFromSet:extendedNumberSet intoString:nil]; 198 207 [theScanner scanFloat:&f4]; 199 [theScanner scanUpToCharactersFromSet: numberSet intoString:nil];208 [theScanner scanUpToCharactersFromSet:extendedNumberSet intoString:nil]; 200 209 [theScanner scanFloat:&f5]; 201 [theScanner scanUpToCharactersFromSet: numberSet intoString:nil];210 [theScanner scanUpToCharactersFromSet:extendedNumberSet intoString:nil]; 202 211 [theScanner scanFloat:&f6]; 203 212 NSLog(@"Curve to: %f,%f control1: %f,%f control2: %f,%f",f5,f6,f1,f2,f3,f4); … … 205 214 controlPoint1:NSMakePoint(f1,f2) 206 215 controlPoint2:NSMakePoint(f3,f4)]; 216 prevX = f5; 217 prevY = f6; 218 } else if ( [command isEqualToString:@"Q"] ) 219 { 220 [theScanner scanFloat:&f1]; 221 [theScanner scanUpToCharactersFromSet:extendedNumberSet intoString:nil]; 222 [theScanner scanFloat:&f2]; 223 [theScanner scanUpToCharactersFromSet:extendedNumberSet intoString:nil]; 224 [theScanner scanFloat:&f3]; 225 [theScanner scanUpToCharactersFromSet:extendedNumberSet intoString:nil]; 226 [theScanner scanFloat:&f4]; 227 NSLog(@"Quadratic curve to: %f,%f, control: %f,%f",f3,f4,f1,f2); 228 229 [path curveToPoint:NSMakePoint(f3,f4) 230 controlPoint1:NSMakePoint((1./3.)*(prevX+2*f1),(1./3.)*(prevY+2*f2)) 231 controlPoint2:NSMakePoint((1./3.)*(2*f1+f3),(1./3.)*(2*f2+f4))]; 232 prevX = f3; 233 prevY = f4; 207 234 } else if ( [command isEqualToString:@"Z"] || [command isEqualToString:@"z"] ) 208 235 { 209 236 NSLog(@"Close path"); 210 237 [path closePath]; 238 prevX = firstX; 239 prevX = firstY; 211 240 } else { 212 241 [theScanner scanUpToCharactersFromSet:letterSet intoString:&point]; … … 249 278 [objects addObject:path]; 250 279 } 280 281 if ( [elementName isEqualToString:@"polyline"] || [elementName isEqualToString:@"polygon"] ) 282 { 283 pathData = [NSString stringWithString:[attributeDict objectForKey:@"points"]]; 284 NSScanner *theScanner = [NSScanner scannerWithString:pathData]; 285 NSCharacterSet *extendedNumberSet = [NSCharacterSet characterSetWithCharactersInString:@"-123456789.0"]; 286 float f1,f2; 287 288 NSBezierPath *path; 289 path = [NSBezierPath bezierPath]; 290 291 if ( [elementName isEqualToString:@"polyline"] ) 292 { 293 NSLog(@"polyline"); 294 } 295 if ( [elementName isEqualToString:@"polygon"] ) 296 { 297 NSLog(@"polygon"); 298 } 299 300 [theScanner scanFloat:&f1]; 301 [theScanner scanUpToCharactersFromSet:extendedNumberSet intoString:nil]; 302 [theScanner scanFloat:&f2]; 303 304 [path moveToPoint:NSMakePoint(f1,f2)]; 305 306 NSLog(@"Point: %f,%f",f1,f2); 307 308 while ([theScanner isAtEnd] == NO) { 309 [theScanner scanFloat:&f1]; 310 [theScanner scanUpToCharactersFromSet:extendedNumberSet intoString:nil]; 311 [theScanner scanFloat:&f2]; 312 313 [path lineToPoint:NSMakePoint(f1,f2)]; 314 NSLog(@"Point: %f,%f",f1,f2); 315 } 316 317 if ( [elementName isEqualToString:@"polygon"] ) 318 { 319 [path closePath]; 320 } 321 322 [objects addObject:path]; 323 } 251 324 } 252 325 branches/SVGImport/SVGImport.xcodeproj/wren.mode1
r382 r391 205 205 <string>get-info</string> 206 206 <string>toggle-editor</string> 207 <string>Quick Model</string>208 207 <string>NSToolbarFlexibleSpaceItem</string> 209 208 <string>com.apple.pbx.toolbar.searchfield</string> … … 269 268 </array> 270 269 <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> 271 <string>{{0, 0}, {186, 760}}</string>270 <string>{{0, 0}, {186, 910}}</string> 272 271 </dict> 273 272 <key>PBXTopSmartGroupGIDs</key> … … 281 280 <dict> 282 281 <key>Frame</key> 283 <string>{{0, 0}, {203, 778}}</string>282 <string>{{0, 0}, {203, 928}}</string> 284 283 <key>GroupTreeTableConfiguration</key> 285 284 <array> … … 288 287 </array> 289 288 <key>RubberWindowFrame</key> 290 <string> 0 59 1440 819 0 0 1440 878 </string>289 <string>330 56 1482 969 0 0 1680 1028 </string> 291 290 </dict> 292 291 <key>Module</key> … … 318 317 <integer>0</integer> 319 318 <key>bookmark</key> 320 <string>A2 D8B9740BCCBA060033608A</string>319 <string>A2C27DB80BD18C7B00ADDE44</string> 321 320 <key>history</key> 322 321 <array> … … 340 339 <string>A2E7B2DD0BCC614A00E392CF</string> 341 340 <string>A2E7B2E70BCC618300E392CF</string> 342 <string>A2 D8B9710BCCBA060033608A</string>343 <string>A2 D8B9720BCCBA060033608A</string>341 <string>A2C27DAB0BD18A4800ADDE44</string> 342 <string>A2C27DB40BD18C0100ADDE44</string> 344 343 </array> 345 344 <key>prevStack</key> … … 366 365 <string>A291BF5B0BCC3A88009AA344</string> 367 366 <string>A291BF5C0BCC3A88009AA344</string> 368 <string>A2D8B9730BCCBA060033608A</string> 367 <string>A2C27D5F0BD17A2000ADDE44</string> 368 <string>A2C27D6D0BD17C9B00ADDE44</string> 369 <string>A2C27D760BD17D9500ADDE44</string> 370 <string>A2C27D7C0BD17DD500ADDE44</string> 371 <string>A2C27D8F0BD17E0B00ADDE44</string> 372 <string>A2C27D900BD17E0B00ADDE44</string> 373 <string>A2C27DA50BD17F2900ADDE44</string> 374 <string>A2C27DAD0BD18A4800ADDE44</string> 369 375 </array> 370 376 </dict> … … 378 384 <dict> 379 385 <key>Frame</key> 380 <string>{{0, 0}, {12 32, 541}}</string>386 <string>{{0, 0}, {1274, 691}}</string> 381 387 <key>RubberWindowFrame</key> 382 <string> 0 59 1440 819 0 0 1440 878 </string>388 <string>330 56 1482 969 0 0 1680 1028 </string> 383 389 </dict> 384 390 <key>Module</key> 385 391 <string>PBXNavigatorGroup</string> 386 392 <key>Proportion</key> 387 <string> 541pt</string>393 <string>691pt</string> 388 394 </dict> 389 395 <dict> … … 398 404 <dict> 399 405 <key>Frame</key> 400 <string>{{0, 546}, {1232, 232}}</string>406 <string>{{0, 696}, {1274, 232}}</string> 401 407 <key>RubberWindowFrame</key> 402 <string> 0 59 1440 819 0 0 1440 878 </string>408 <string>330 56 1482 969 0 0 1680 1028 </string> 403 409 </dict> 404 410 <key>Module</key> … … 409 415 </array> 410 416 <key>Proportion</key> 411 <string>12 32pt</string>417 <string>1274pt</string> 412 418 </dict> 413 419 </array> … … 424 430 <key>TableOfContents</key> 425 431 <array> 426 <string>A2 D8B9660BCCB8810033608A</string>432 <string>A2C27D610BD17A2000ADDE44</string> 427 433 <string>1CE0B1FE06471DED0097A5F4</string> 428 <string>A2 D8B9670BCCB8810033608A</string>434 <string>A2C27D620BD17A2000ADDE44</string> 429 435 <string>1CE0B20306471E060097A5F4</string> 430 436 <string>1CE0B20506471E060097A5F4</string> … … 571 577 <key>WindowOrderList</key> 572 578 <array> 579 <string>A2C27D870BD17DD500ADDE44</string> 580 <string>A2C27D880BD17DD500ADDE44</string> 581 <string>A2CE6A070BADB89F006E6F1A</string> 582 <string>1CD10A99069EF8BA00B06720</string> 583 <string>A2C27D840BD17DD500ADDE44</string> 584 <string>1C0AD2B3069F1EA900FABCE6</string> 573 585 <string>A2CE69D20BADB4FD006E6F1A</string> 574 <string>1C0AD2B3069F1EA900FABCE6</string> 575 <string>/Users/wren/Desktop/LaserLine Dev/SVGImport/SVGImport.xcodeproj</string> 586 <string>/afs/acm.uiuc.edu/user/wren/Desktop/LaserLine Dev/SVGImport/SVGImport.xcodeproj</string> 576 587 </array> 577 588 <key>WindowString</key> 578 <string> 0 59 1440 819 0 0 1440 878 </string>589 <string>330 56 1482 969 0 0 1680 1028 </string> 579 590 <key>WindowTools</key> 580 591 <array> … … 606 617 <string>{{0, 0}, {797, 249}}</string> 607 618 <key>RubberWindowFrame</key> 608 <string> 410 347 797 531 0 0 1440 878 </string>619 <string>563 497 797 531 0 0 1680 1028 </string> 609 620 </dict> 610 621 <key>Module</key> … … 630 641 <string>{{0, 254}, {797, 236}}</string> 631 642 <key>RubberWindowFrame</key> 632 <string> 410 347 797 531 0 0 1440 878 </string>643 <string>563 497 797 531 0 0 1680 1028 </string> 633 644 </dict> 634 645 <key>Module</key> … … 653 664 <array> 654 665 <string>A2CE69D20BADB4FD006E6F1A</string> 655 <string>A2 D8B96F0BCCB9EF0033608A</string>666 <string>A2C27D630BD17A2000ADDE44</string> 656 667 <string>1CD0528F0623707200166675</string> 657 668 <string>XCMainBuildResultsModuleGUID</string> … … 660 671 <string>xcode.toolbar.config.build</string> 661 672 <key>WindowString</key> 662 <string> 410 347 797 531 0 0 1440 878 </string>673 <string>563 497 797 531 0 0 1680 1028 </string> 663 674 <key>WindowToolGUID</key> 664 675 <string>A2CE69D20BADB4FD006E6F1A</string> … … 695 706 <key>sizes</key> 696 707 <array> 697 <string>{{0, 0}, {4 72, 358}}</string>698 <string>{{4 72, 0}, {626, 358}}</string>708 <string>{{0, 0}, {469, 358}}</string> 709 <string>{{469, 0}, {629, 358}}</string> 699 710 </array> 700 711 </dict> … … 736 747 <string>{{0, 0}, {1098, 681}}</string> 737 748 <key>RubberWindowFrame</key> 738 <string> 270 117 1098 722 0 0 1440 878 </string>749 <string>463 229 1098 722 0 0 1680 1028 </string> 739 750 </dict> 740 751 <key>Module</key> … … 759 770 <array> 760 771 <string>1CD10A99069EF8BA00B06720</string> 761 <string>A2 E7B2D10BCC613D00E392CF</string>772 <string>A2C27D7E0BD17DD500ADDE44</string> 762 773 <string>1C162984064C10D400B95A72</string> 763 <string>A2 E7B2D20BCC613D00E392CF</string>764 <string>A2 E7B2D30BCC613D00E392CF</string>765 <string>A2 E7B2D40BCC613D00E392CF</string>766 <string>A2 E7B2D50BCC613D00E392CF</string>767 <string>A2 E7B2D60BCC613D00E392CF</string>768 <string>A2 E7B2D70BCC613D00E392CF</string>774 <string>A2C27D7F0BD17DD500ADDE44</string> 775 <string>A2C27D800BD17DD500ADDE44</string> 776 <string>A2C27D810BD17DD500ADDE44</string> 777 <string>A2C27D820BD17DD500ADDE44</string> 778 <string>A2C27D830BD17DD500ADDE44</string> 779 <string>A2C27D840BD17DD500ADDE44</string> 769 780 </array> 770 781 <key>ToolbarConfiguration</key> 771 782 <string>xcode.toolbar.config.debug</string> 772 783 <key>WindowString</key> 773 <string> 270 117 1098 722 0 0 1440 878 </string>784 <string>463 229 1098 722 0 0 1680 1028 </string> 774 785 <key>WindowToolGUID</key> 775 786 <string>1CD10A99069EF8BA00B06720</string> … … 895 906 <string>{{0, 0}, {440, 358}}</string> 896 907 <key>RubberWindowFrame</key> 897 <string> 78 404 440 400 0 0 1440 878 </string>908 <string>97 531 440 400 0 0 1680 1028 </string> 898 909 </dict> 899 910 <key>Module</key> … … 918 929 <array> 919 930 <string>A2CE6A070BADB89F006E6F1A</string> 920 <string>A2 E7B2D80BCC613D00E392CF</string>931 <string>A2C27D850BD17DD500ADDE44</string> 921 932 <string>1C78EAAC065D492600B07095</string> 922 933 </array> 923 934 <key>WindowString</key> 924 <string> 78 404 440 400 0 0 1440 878 </string>935 <string>97 531 440 400 0 0 1680 1028 </string> 925 936 <key>WindowToolGUID</key> 926 937 <string>A2CE6A070BADB89F006E6F1A</string> … … 990 1001 <string>{{0, 0}, {1351, 490}}</string> 991 1002 <key>RubberWindowFrame</key> 992 <string> 49 309 1351 531 0 0 1440 878 </string>1003 <string>181 439 1351 531 0 0 1680 1028 </string> 993 1004 </dict> 994 1005 <key>Module</key> … … 1013 1024 <array> 1014 1025 <string>1C0AD2B3069F1EA900FABCE6</string> 1015 <string>A2 D8B9680BCCB8810033608A</string>1026 <string>A2C27D640BD17A2000ADDE44</string> 1016 1027 <string>1CD0528B0623707200166675</string> 1017 <string>A2 D8B9690BCCB8810033608A</string>1028 <string>A2C27D650BD17A2000ADDE44</string> 1018 1029 </array> 1019 1030 <key>ToolbarConfiguration</key> 1020 1031 <string>xcode.toolbar.config.run</string> 1021 1032 <key>WindowString</key> 1022 <string> 49 309 1351 531 0 0 1440 878 </string>1033 <string>181 439 1351 531 0 0 1680 1028 </string> 1023 1034 <key>WindowToolGUID</key> 1024 1035 <string>1C0AD2B3069F1EA900FABCE6</string> branches/SVGImport/SVGImport.xcodeproj/wren.pbxuser
r382 r391 43 43 PBXFileTableDataSourceColumnWidthsKey = ( 44 44 20, 45 993,45 1000, 46 46 20, 47 47 48, … … 60 60 ); 61 61 }; 62 PBXPerProjectTemplateStateSaveDate = 19 7965942;63 PBXWorkspaceStateSaveDate = 19 7965942;62 PBXPerProjectTemplateStateSaveDate = 198277520; 63 PBXWorkspaceStateSaveDate = 198277520; 64 64 }; 65 65 perUserProjectItems = { 66 A232656F0BAE36C500E09297 /* PBXTextBookmark */ = A232656F0BAE36C500E09297 /* PBXTextBookmark */; 67 A23265700BAE36C500E09297 /* PBXTextBookmark */ = A23265700BAE36C500E09297 /* PBXTextBookmark */; 68 A23265770BAE36C500E09297 /* PBXTextBookmark */ = A23265770BAE36C500E09297 /* PBXTextBookmark */; 69 A23265890BAE371200E09297 /* PBXTextBookmark */ = A23265890BAE371200E09297 /* PBXTextBookmark */; 70 A23266400BAE40A700E09297 /* PBXTextBookmark */ = A23266400BAE40A700E09297 /* PBXTextBookmark */; 71 A23266410BAE40A700E09297 /* PBXTextBookmark */ = A23266410BAE40A700E09297 /* PBXTextBookmark */; 72 A23CF5D60BB5D95C005FCF13 /* PBXTextBookmark */ = A23CF5D60BB5D95C005FCF13 /* PBXTextBookmark */; 73 A24416A60BCB3C6D00C9C609 /* PBXTextBookmark */ = A24416A60BCB3C6D00C9C609 /* PBXTextBookmark */; 74 A24416A70BCB3C6D00C9C609 /* PBXTextBookmark */ = A24416A70BCB3C6D00C9C609 /* PBXTextBookmark */; 75 A24416AA0BCB3C6D00C9C609 /* PBXTextBookmark */ = A24416AA0BCB3C6D00C9C609 /* PBXTextBookmark */; 76 A24416AC0BCB3C6D00C9C609 /* PBXTextBookmark */ = A24416AC0BCB3C6D00C9C609 /* PBXTextBookmark */; 77 A24417020BCB3DE900C9C609 /* PBXTextBookmark */ = A24417020BCB3DE900C9C609 /* PBXTextBookmark */; 78 A245CBB20BB6359400990C8F /* PBXTextBookmark */ = A245CBB20BB6359400990C8F /* PBXTextBookmark */; 79 A245CBDC0BB6401A00990C8F /* PBXTextBookmark */ = A245CBDC0BB6401A00990C8F /* PBXTextBookmark */; 80 A27DD6EA0BBF7A5E00C550C9 /* PBXTextBookmark */ = A27DD6EA0BBF7A5E00C550C9 /* PBXTextBookmark */; 81 A291BE560BCC2327009AA344 /* PBXTextBookmark */ = A291BE560BCC2327009AA344 /* PBXTextBookmark */; 82 A291BE570BCC2327009AA344 /* PBXTextBookmark */ = A291BE570BCC2327009AA344 /* PBXTextBookmark */; 83 A291BF4E0BCC3A88009AA344 /* PBXTextBookmark */ = A291BF4E0BCC3A88009AA344 /* PBXTextBookmark */; 84 A291BF4F0BCC3A88009AA344 /* PBXTextBookmark */ = A291BF4F0BCC3A88009AA344 /* PBXTextBookmark */; 85 A291BF500BCC3A88009AA344 /* PBXTextBookmark */ = A291BF500BCC3A88009AA344 /* PBXTextBookmark */; 86 A291BF510BCC3A88009AA344 /* PBXTextBookmark */ = A291BF510BCC3A88009AA344 /* PBXTextBookmark */; 87 A291BF5B0BCC3A88009AA344 /* PBXTextBookmark */ = A291BF5B0BCC3A88009AA344 /* PBXTextBookmark */; 88 A291BF5C0BCC3A88009AA344 /* PBXTextBookmark */ = A291BF5C0BCC3A88009AA344 /* PBXTextBookmark */; 89 A291BFC00BCC412B009AA344 /* PBXTextBookmark */ = A291BFC00BCC412B009AA344 /* PBXTextBookmark */; 90 A29C72350BB4D039005E04BC /* PBXTextBookmark */ = A29C72350BB4D039005E04BC /* PBXTextBookmark */; 91 A29C72360BB4D039005E04BC /* PBXTextBookmark */ = A29C72360BB4D039005E04BC /* PBXTextBookmark */; 92 A29C72490BB4D6E0005E04BC /* PBXTextBookmark */ = A29C72490BB4D6E0005E04BC /* PBXTextBookmark */; 93 A29C724A0BB4D6E0005E04BC /* PBXTextBookmark */ = A29C724A0BB4D6E0005E04BC /* PBXTextBookmark */; 94 A29C73FF0BB4EA3B005E04BC /* PBXTextBookmark */ = A29C73FF0BB4EA3B005E04BC /* PBXTextBookmark */; 95 A29C740F0BB4EA3B005E04BC /* PBXTextBookmark */ = A29C740F0BB4EA3B005E04BC /* PBXTextBookmark */; 96 A29C74150BB4EA3B005E04BC /* PBXTextBookmark */ = A29C74150BB4EA3B005E04BC /* PBXTextBookmark */; 97 A29C741B0BB4EA3B005E04BC /* PBXTextBookmark */ = A29C741B0BB4EA3B005E04BC /* PBXTextBookmark */; 98 A2AF4E360BCC5F41003E97F4 /* PBXTextBookmark */ = A2AF4E360BCC5F41003E97F4 /* PBXTextBookmark */; 99 A2CE69E50BADB5EB006E6F1A /* PBXTextBookmark */ = A2CE69E50BADB5EB006E6F1A /* PBXTextBookmark */; 100 A2CE69E60BADB5EB006E6F1A /* PBXTextBookmark */ = A2CE69E60BADB5EB006E6F1A /* PBXTextBookmark */; 101 A2CEC4D60BAF184600AAEDAE /* PBXTextBookmark */ = A2CEC4D60BAF184600AAEDAE /* PBXTextBookmark */; 102 A2CEC4D70BAF184600AAEDAE /* PBXTextBookmark */ = A2CEC4D70BAF184600AAEDAE /* PBXTextBookmark */; 103 A2D8B9710BCCBA060033608A /* PBXTextBookmark */ = A2D8B9710BCCBA060033608A /* PBXTextBookmark */; 104 A2D8B9720BCCBA060033608A /* PBXTextBookmark */ = A2D8B9720BCCBA060033608A /* PBXTextBookmark */; 105 A2D8B9730BCCBA060033608A /* PBXTextBookmark */ = A2D8B9730BCCBA060033608A /* PBXTextBookmark */; 106 A2D8B9740BCCBA060033608A /* PBXTextBookmark */ = A2D8B9740BCCBA060033608A /* PBXTextBookmark */; 107 A2DFD4DF0BBAE92100D4DA6C /* PBXTextBookmark */ = A2DFD4DF0BBAE92100D4DA6C /* PBXTextBookmark */; 108 A2E7B2DD0BCC614A00E392CF /* PBXTextBookmark */ = A2E7B2DD0BCC614A00E392CF /* PBXTextBookmark */; 109 A2E7B2E70BCC618300E392CF /* PBXTextBookmark */ = A2E7B2E70BCC618300E392CF /* PBXTextBookmark */; 66 A232656F0BAE36C500E09297 = A232656F0BAE36C500E09297 /* PBXTextBookmark */; 67 A23265700BAE36C500E09297 = A23265700BAE36C500E09297 /* PBXTextBookmark */; 68 A23265770BAE36C500E09297 = A23265770BAE36C500E09297 /* PBXTextBookmark */; 69 A23265890BAE371200E09297 = A23265890BAE371200E09297 /* PBXTextBookmark */; 70 A23266400BAE40A700E09297 = A23266400BAE40A700E09297 /* PBXTextBookmark */; 71 A23266410BAE40A700E09297 = A23266410BAE40A700E09297 /* PBXTextBookmark */; 72 A23CF5D60BB5D95C005FCF13 = A23CF5D60BB5D95C005FCF13 /* PBXTextBookmark */; 73 A24416A60BCB3C6D00C9C609 = A24416A60BCB3C6D00C9C609 /* PBXTextBookmark */; 74 A24416A70BCB3C6D00C9C609 = A24416A70BCB3C6D00C9C609 /* PBXTextBookmark */; 75 A24416AA0BCB3C6D00C9C609 = A24416AA0BCB3C6D00C9C609 /* PBXTextBookmark */; 76 A24416AC0BCB3C6D00C9C609 = A24416AC0BCB3C6D00C9C609 /* PBXTextBookmark */; 77 A24417020BCB3DE900C9C609 = A24417020BCB3DE900C9C609 /* PBXTextBookmark */; 78 A245CBB20BB6359400990C8F = A245CBB20BB6359400990C8F /* PBXTextBookmark */; 79 A245CBDC0BB6401A00990C8F = A245CBDC0BB6401A00990C8F /* PBXTextBookmark */; 80 A27DD6EA0BBF7A5E00C550C9 = A27DD6EA0BBF7A5E00C550C9 /* PBXTextBookmark */; 81 A291BE560BCC2327009AA344 = A291BE560BCC2327009AA344 /* PBXTextBookmark */; 82 A291BE570BCC2327009AA344 = A291BE570BCC2327009AA344 /* PBXTextBookmark */; 83 A291BF4E0BCC3A88009AA344 = A291BF4E0BCC3A88009AA344 /* PBXTextBookmark */; 84 A291BF4F0BCC3A88009AA344 = A291BF4F0BCC3A88009AA344 /* PBXTextBookmark */; 85 A291BF500BCC3A88009AA344 = A291BF500BCC3A88009AA344 /* PBXTextBookmark */; 86 A291BF510BCC3A88009AA344 = A291BF510BCC3A88009AA344 /* PBXTextBookmark */; 87 A291BF5B0BCC3A88009AA344 = A291BF5B0BCC3A88009AA344 /* PBXTextBookmark */; 88 A291BF5C0BCC3A88009AA344 = A291BF5C0BCC3A88009AA344 /* PBXTextBookmark */; 89 A291BFC00BCC412B009AA344 = A291BFC00BCC412B009AA344 /* PBXTextBookmark */; 90 A29C72350BB4D039005E04BC = A29C72350BB4D039005E04BC /* PBXTextBookmark */; 91 A29C72360BB4D039005E04BC = A29C72360BB4D039005E04BC /* PBXTextBookmark */; 92 A29C72490BB4D6E0005E04BC = A29C72490BB4D6E0005E04BC /* PBXTextBookmark */; 93 A29C724A0BB4D6E0005E04BC = A29C724A0BB4D6E0005E04BC /* PBXTextBookmark */; 94 A29C73FF0BB4EA3B005E04BC = A29C73FF0BB4EA3B005E04BC /* PBXTextBookmark */; 95 A29C740F0BB4EA3B005E04BC = A29C740F0BB4EA3B005E04BC /* PBXTextBookmark */; 96 A29C74150BB4EA3B005E04BC = A29C74150BB4EA3B005E04BC /* PBXTextBookmark */; 97 A29C741B0BB4EA3B005E04BC = A29C741B0BB4EA3B005E04BC /* PBXTextBookmark */; 98 A2AF4E360BCC5F41003E97F4 = A2AF4E360BCC5F41003E97F4 /* PBXTextBookmark */; 99 A2C27D5D0BD17A2000ADDE44 /* PBXTextBookmark */ = A2C27D5D0BD17A2000ADDE44 /* PBXTextBookmark */; 100 A2C27D5E0BD17A2000ADDE44 /* PBXTextBookmark */ = A2C27D5E0BD17A2000ADDE44 /* PBXTextBookmark */; 101 A2C27D5F0BD17A2000ADDE44 /* PBXTextBookmark */ = A2C27D5F0BD17A2000ADDE44 /* PBXTextBookmark */; 102 A2C27D600BD17A2000ADDE44 /* PBXTextBookmark */ = A2C27D600BD17A2000ADDE44 /* PBXTextBookmark */; 103 A2C27D6B0BD17C9B00ADDE44 /* PBXTextBookmark */ = A2C27D6B0BD17C9B00ADDE44 /* PBXTextBookmark */; 104 A2C27D6C0BD17C9B00ADDE44 /* PBXTextBookmark */ = A2C27D6C0BD17C9B00ADDE44 /* PBXTextBookmark */; 105 A2C27D6D0BD17C9B00ADDE44 /* PBXTextBookmark */ = A2C27D6D0BD17C9B00ADDE44 /* PBXTextBookmark */; 106 A2C27D6E0BD17C9B00ADDE44 /* PBXTextBookmark */ = A2C27D6E0BD17C9B00ADDE44 /* PBXTextBookmark */; 107 A2C27D720BD17D6B00ADDE44 /* PBXTextBookmark */ = A2C27D720BD17D6B00ADDE44 /* PBXTextBookmark */; 108 A2C27D740BD17D9500ADDE44 /* PBXTextBookmark */ = A2C27D740BD17D9500ADDE44 /* PBXTextBookmark */; 109 A2C27D750BD17D9500ADDE44 /* PBXTextBookmark */ = A2C27D750BD17D9500ADDE44 /* PBXTextBookmark */; 110 A2C27D760BD17D9500ADDE44 /* PBXTextBookmark */ = A2C27D760BD17D9500ADDE44 /* PBXTextBookmark */; 111 A2C27D770BD17D9500ADDE44 /* PBXTextBookmark */ = A2C27D770BD17D9500ADDE44 /* PBXTextBookmark */; 112 A2C27D7A0BD17DD500ADDE44 /* PBXTextBookmark */ = A2C27D7A0BD17DD500ADDE44 /* PBXTextBookmark */; 113 A2C27D7B0BD17DD500ADDE44 /* PBXTextBookmark */ = A2C27D7B0BD17DD500ADDE44 /* PBXTextBookmark */; 114 A2C27D7C0BD17DD500ADDE44 /* PBXTextBookmark */ = A2C27D7C0BD17DD500ADDE44 /* PBXTextBookmark */; 115 A2C27D7D0BD17DD500ADDE44 /* PBXTextBookmark */ = A2C27D7D0BD17DD500ADDE44 /* PBXTextBookmark */; 116 A2C27D8D0BD17E0B00ADDE44 /* PBXTextBookmark */ = A2C27D8D0BD17E0B00ADDE44 /* PBXTextBookmark */; 117 A2C27D8E0BD17E0B00ADDE44 /* PBXTextBookmark */ = A2C27D8E0BD17E0B00ADDE44 /* PBXTextBookmark */; 118 A2C27D8F0BD17E0B00ADDE44 /* PBXTextBookmark */ = A2C27D8F0BD17E0B00ADDE44 /* PBXTextBookmark */; 119 A2C27D900BD17E0B00ADDE44 /* PBXTextBookmark */ = A2C27D900BD17E0B00ADDE44 /* PBXTextBookmark */; 120 A2C27D910BD17E0B00ADDE44 /* PBXTextBookmark */ = A2C27D910BD17E0B00ADDE44 /* PBXTextBookmark */; 121 A2C27D960BD17E3100ADDE44 /* PBXTextBookmark */ = A2C27D960BD17E3100ADDE44 /* PBXTextBookmark */; 122 A2C27D9B0BD17E6900ADDE44 /* PBXTextBookmark */ = A2C27D9B0BD17E6900ADDE44 /* PBXTextBookmark */; 123 A2C27D9E0BD17EDF00ADDE44 /* PBXTextBookmark */ = A2C27D9E0BD17EDF00ADDE44 /* PBXTextBookmark */; 124 A2C27DA10BD17F0900ADDE44 /* PBXTextBookmark */ = A2C27DA10BD17F0900ADDE44 /* PBXTextBookmark */; 125 A2C27DA30BD17F2900ADDE44 /* PBXTextBookmark */ = A2C27DA30BD17F2900ADDE44 /* PBXTextBookmark */; 126 A2C27DA40BD17F2900ADDE44 /* PBXTextBookmark */ = A2C27DA40BD17F2900ADDE44 /* PBXTextBookmark */; 127 A2C27DA50BD17F2900ADDE44 /* PBXTextBookmark */ = A2C27DA50BD17F2900ADDE44 /* PBXTextBookmark */; 128 A2C27DA60BD17F2900ADDE44 /* PBXTextBookmark */ = A2C27DA60BD17F2900ADDE44 /* PBXTextBookmark */; 129 A2C27DA80BD17F4900ADDE44 /* PBXTextBookmark */ = A2C27DA80BD17F4900ADDE44 /* PBXTextBookmark */; 130 A2C27DAB0BD18A4800ADDE44 /* PBXTextBookmark */ = A2C27DAB0BD18A4800ADDE44 /* PBXTextBookmark */; 131 A2C27DAC0BD18A4800ADDE44 /* PBXTextBookmark */ = A2C27DAC0BD18A4800ADDE44 /* PBXTextBookmark */; 132 A2C27DAD0BD18A4800ADDE44 /* PBXTextBookmark */ = A2C27DAD0BD18A4800ADDE44 /* PBXTextBookmark */; 133 A2C27DAE0BD18A4800ADDE44 /* PBXTextBookmark */ = A2C27DAE0BD18A4800ADDE44 /* PBXTextBookmark */; 134 A2C27DB10BD18AED00ADDE44 /* PBXTextBookmark */ = A2C27DB10BD18AED00ADDE44 /* PBXTextBookmark */; 135 A2C27DB40BD18C0100ADDE44 /* PBXTextBookmark */ = A2C27DB40BD18C0100ADDE44 /* PBXTextBookmark */; &nbs
