├── pingyin.gif
├── name
├── ICPingyinConvert.xcodeproj
├── xcuserdata
│ └── zhufengyi.xcuserdatad
│ │ ├── xcdebugger
│ │ └── Breakpoints_v2.xcbkptlist
│ │ └── xcschemes
│ │ ├── xcschememanagement.plist
│ │ └── ICPingyinConvert.xcscheme
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ ├── xcuserdata
│ │ └── zhufengyi.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcshareddata
│ │ └── ICPingyinConvert.xccheckout
└── project.pbxproj
├── ICPingyinConvert
├── MyModel.m
├── MyModel.h
├── AppDelegate.h
├── main.m
├── ViewController.h
├── Images.xcassets
│ └── AppIcon.appiconset
│ │ └── Contents.json
├── Base.lproj
│ ├── Main.storyboard
│ └── LaunchScreen.xib
├── Info.plist
├── AppDelegate.m
└── ViewController.m
├── README.md
├── ICPingyin
├── ICPinyinGroup.h
└── ICPinyinGroup.m
├── ICPingyinConvertTests
├── Info.plist
└── ICPingyinConvertTests.m
└── .gitigore
/pingyin.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icoder20150719/ICPingyinConvert/HEAD/pingyin.gif
--------------------------------------------------------------------------------
/name:
--------------------------------------------------------------------------------
1 | 郭靖/黄蓉/杨过/苗若兰/令狐冲/小龙女/胡斐/水笙/任盈盈/白琇/狄云/石破天/殷素素/张翠山/张无忌/青青/袁冠南/萧中慧/袁承志/乔峰/王语嫣/段玉/虚竹/苏星河/丁春秋/庄聚贤/阿紫/阿朱/阿碧/鸠魔智/萧远山/慕容复/慕容博/Jim/Lily/Green小/Green大/DavidSmall/Kobe/Ethan
--------------------------------------------------------------------------------
/ICPingyinConvert.xcodeproj/xcuserdata/zhufengyi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/ICPingyinConvert.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ICPingyinConvert/MyModel.m:
--------------------------------------------------------------------------------
1 | //
2 | // MyModel.m
3 | // ICPingyinConvert
4 | //
5 | // Created by 朱封毅 on 26/07/15.
6 | // Copyright (c) 2015年 card. All rights reserved.
7 | //
8 |
9 | #import "MyModel.h"
10 |
11 | @implementation MyModel
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # ICPingyinConvert
2 | 一键实现通讯录城市分组排训的
3 | ### 效果图
4 | 
5 |
6 | 在简书上有这个使用说明
7 | [http://www.jianshu.com/p/4d021497e2dd](http://www.jianshu.com/p/4d021497e2dd)
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ICPingyinConvert.xcodeproj/project.xcworkspace/xcuserdata/zhufengyi.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icoder20150719/ICPingyinConvert/HEAD/ICPingyinConvert.xcodeproj/project.xcworkspace/xcuserdata/zhufengyi.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/ICPingyinConvert/MyModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // MyModel.h
3 | // ICPingyinConvert
4 | //
5 | // Created by 朱封毅 on 26/07/15.
6 | // Copyright (c) 2015年 card. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MyModel : NSObject
12 | /*
13 | 用户名
14 | */
15 | @property (nonatomic,strong) NSString *UserName;
16 | @end
17 |
--------------------------------------------------------------------------------
/ICPingyinConvert/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // ICPingyinConvert
4 | //
5 | // Created by 朱封毅 on 23/07/15.
6 | // Copyright (c) 2015年 card. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/ICPingyinConvert/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // ICPingyinConvert
4 | //
5 | // Created by 朱封毅 on 23/07/15.
6 | // Copyright (c) 2015年 card. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/ICPingyinConvert/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // ICPingyinConvert
4 | //
5 | // Created by 朱封毅 on 23/07/15.
6 | // Copyright (c) 2015年 card. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 | @property (nonatomic, strong) UITableView *tableView;
13 | @property (nonatomic, strong) NSMutableArray *dataArr;
14 | @property (nonatomic, strong) NSMutableArray *sortedArrForArrays;
15 | @property (nonatomic, strong) NSMutableArray *sectionHeadsKeys;
16 |
17 |
18 |
19 | @end
20 |
21 |
--------------------------------------------------------------------------------
/ICPingyin/ICPinyinGroup.h:
--------------------------------------------------------------------------------
1 | //
2 | // LEOPinyinGroup.h
3 | // CarSupermarket
4 | //
5 | // Created by lion on 15/7/26.
6 | // Copyright (c) 2015年 lion. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | /**
12 | * 获取model数组
13 | */
14 | UIKIT_EXTERN NSString *const LEOPinyinGroupResultKey;
15 |
16 | /**
17 | * 获取所包函字母的数组
18 | */
19 | UIKIT_EXTERN NSString *const LEOPinyinGroupCharKey;
20 |
21 | @interface ICPinyinGroup : NSObject
22 |
23 | /*
24 | 参数group:未排训分组的model数组
25 | 参数key:根据model中的那个属性排训
26 | */
27 | +(NSDictionary *)group:(NSArray *)datas key:(NSString *)key;
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/ICPingyinConvert.xcodeproj/xcuserdata/zhufengyi.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | ICPingyinConvert.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | 38E4C62F1B61348C00F620D3
16 |
17 | primary
18 |
19 |
20 | 38E4C6481B61348C00F620D3
21 |
22 | primary
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/ICPingyinConvertTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | com.cardiOS.card.$(PRODUCT_NAME:rfc1034identifier)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/.gitigore:
--------------------------------------------------------------------------------
1 | #gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
2 |
3 | ## Build generated
4 | build/
5 | DerivedData
6 |
7 | ## Various settings
8 | *.pbxuser
9 | !default.pbxuser
10 | *.mode1v3
11 | !default.mode1v3
12 | *.mode2v3
13 | !default.mode2v3
14 | *.perspectivev3
15 | !default.perspectivev3
16 | xcuserdata
17 |
18 | ## Other
19 | *.xccheckout
20 | *.moved-aside
21 | *.xcuserstate
22 | *.xcscmblueprint
23 |
24 | ## Obj-C/Swift specific
25 | *.hmap
26 | *.ipa
27 |
28 | # CocoaPods
29 | #
30 | # We recommend against adding the Pods directory to your .gitignore. However
31 | # you should judge for yourself, the pros and cons are mentioned at:
32 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
33 | #
34 | #Pods/
35 |
36 | # Carthage
37 | #
38 | # Add this line if you want to avoid checking in source code from Carthage dependencies.
39 | # Carthage/Checkouts
40 |
41 | Carthage/Build
42 |
--------------------------------------------------------------------------------
/ICPingyinConvertTests/ICPingyinConvertTests.m:
--------------------------------------------------------------------------------
1 | //
2 | // ICPingyinConvertTests.m
3 | // ICPingyinConvertTests
4 | //
5 | // Created by 朱封毅 on 23/07/15.
6 | // Copyright (c) 2015年 card. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface ICPingyinConvertTests : XCTestCase
13 |
14 | @end
15 |
16 | @implementation ICPingyinConvertTests
17 |
18 | - (void)setUp {
19 | [super setUp];
20 | // Put setup code here. This method is called before the invocation of each test method in the class.
21 | }
22 |
23 | - (void)tearDown {
24 | // Put teardown code here. This method is called after the invocation of each test method in the class.
25 | [super tearDown];
26 | }
27 |
28 | - (void)testExample {
29 | // This is an example of a functional test case.
30 | XCTAssert(YES, @"Pass");
31 | }
32 |
33 | - (void)testPerformanceExample {
34 | // This is an example of a performance test case.
35 | [self measureBlock:^{
36 | // Put the code you want to measure the time of here.
37 | }];
38 | }
39 |
40 | @end
41 |
--------------------------------------------------------------------------------
/ICPingyinConvert/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "ipad",
35 | "size" : "29x29",
36 | "scale" : "1x"
37 | },
38 | {
39 | "idiom" : "ipad",
40 | "size" : "29x29",
41 | "scale" : "2x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "40x40",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "40x40",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "76x76",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "76x76",
61 | "scale" : "2x"
62 | }
63 | ],
64 | "info" : {
65 | "version" : 1,
66 | "author" : "xcode"
67 | }
68 | }
--------------------------------------------------------------------------------
/ICPingyinConvert/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/ICPingyinConvert/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | com.cardiOS.card.$(PRODUCT_NAME:rfc1034identifier)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 | LSRequiresIPhoneOS
24 |
25 | UILaunchStoryboardName
26 | LaunchScreen
27 | UIMainStoryboardFile
28 | Main
29 | UIRequiredDeviceCapabilities
30 |
31 | armv7
32 |
33 | UISupportedInterfaceOrientations
34 |
35 | UIInterfaceOrientationPortrait
36 | UIInterfaceOrientationLandscapeLeft
37 | UIInterfaceOrientationLandscapeRight
38 |
39 | UISupportedInterfaceOrientations~ipad
40 |
41 | UIInterfaceOrientationPortrait
42 | UIInterfaceOrientationPortraitUpsideDown
43 | UIInterfaceOrientationLandscapeLeft
44 | UIInterfaceOrientationLandscapeRight
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/ICPingyinConvert.xcodeproj/project.xcworkspace/xcshareddata/ICPingyinConvert.xccheckout:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDESourceControlProjectFavoriteDictionaryKey
6 |
7 | IDESourceControlProjectIdentifier
8 | 16341FAF-BDE0-45C3-A3C4-ECDC7773E2EC
9 | IDESourceControlProjectName
10 | ICPingyinConvert
11 | IDESourceControlProjectOriginsDictionary
12 |
13 | 2FF6ADE4187ED97709EC6269322AC53505577DA4
14 | https://github.com/zhufengyi01/CustomTabbarController.git
15 | 723E61B6AD4A3243A2B0FA230F19377F64CA416C
16 | https://github.com/icoder20150719/ICPingyinConvert.git
17 |
18 | IDESourceControlProjectPath
19 | ICPingyinConvert.xcodeproj
20 | IDESourceControlProjectRelativeInstallPathDictionary
21 |
22 | 2FF6ADE4187ED97709EC6269322AC53505577DA4
23 | ../../..
24 | 723E61B6AD4A3243A2B0FA230F19377F64CA416C
25 | ../..
26 |
27 | IDESourceControlProjectURL
28 | https://github.com/icoder20150719/ICPingyinConvert.git
29 | IDESourceControlProjectVersion
30 | 111
31 | IDESourceControlProjectWCCIdentifier
32 | 723E61B6AD4A3243A2B0FA230F19377F64CA416C
33 | IDESourceControlProjectWCConfigurations
34 |
35 |
36 | IDESourceControlRepositoryExtensionIdentifierKey
37 | public.vcs.git
38 | IDESourceControlWCCIdentifierKey
39 | 2FF6ADE4187ED97709EC6269322AC53505577DA4
40 | IDESourceControlWCCName
41 |
42 |
43 |
44 | IDESourceControlRepositoryExtensionIdentifierKey
45 | public.vcs.git
46 | IDESourceControlWCCIdentifierKey
47 | 723E61B6AD4A3243A2B0FA230F19377F64CA416C
48 | IDESourceControlWCCName
49 | ICPingyinConvert1
50 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/ICPingyinConvert/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // ICPingyinConvert
4 | //
5 | // Created by 朱封毅 on 23/07/15.
6 | // Copyright (c) 2015年 card. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 | #import "MyModel.h"
11 | #import "ViewController.h"
12 | @interface AppDelegate ()
13 |
14 | @end
15 |
16 | @implementation AppDelegate
17 |
18 |
19 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
20 | // Override point for customization after application launch.
21 | UINavigationController *na = [[UINavigationController alloc] initWithRootViewController:[ViewController new]];
22 | self.window.rootViewController = na;
23 |
24 | return YES;
25 | }
26 |
27 | - (void)applicationWillResignActive:(UIApplication *)application {
28 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
29 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
30 | }
31 |
32 | - (void)applicationDidEnterBackground:(UIApplication *)application {
33 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
34 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
35 | }
36 |
37 | - (void)applicationWillEnterForeground:(UIApplication *)application {
38 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
39 | }
40 |
41 | - (void)applicationDidBecomeActive:(UIApplication *)application {
42 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
43 | }
44 |
45 | - (void)applicationWillTerminate:(UIApplication *)application {
46 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
47 | }
48 |
49 | @end
50 |
--------------------------------------------------------------------------------
/ICPingyinConvert/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // ICPingyinConvert
4 | //
5 | // Created by 朱封毅 on 23/07/15.
6 | // Copyright (c) 2015年 card. All rights reserved.
7 | //
8 |
9 | #import "ViewController.h"
10 | #import "MyModel.h"
11 | #import "ICPinyinGroup.h"
12 | @interface ViewController ()
13 |
14 | @end
15 |
16 | @implementation ViewController
17 |
18 | - (void)viewDidLoad
19 | {
20 | [super viewDidLoad];
21 | // Do any additional setup after loading the view, typically from a nib.
22 | [self initData];
23 | [self tableView];
24 | }
25 | -(UITableView *)tableView{
26 | if (!_tableView) {
27 | _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) style:UITableViewStylePlain];
28 | _tableView.dataSource = self;
29 | _tableView.delegate = self;
30 | [self.view addSubview:_tableView];
31 | }
32 | return _tableView;
33 | }
34 | #pragma mark create method
35 | - (void)initData {
36 | //init
37 | _dataArr = [[NSMutableArray alloc] init];
38 | _sortedArrForArrays = [[NSMutableArray alloc] init];
39 | _sectionHeadsKeys = [[NSMutableArray alloc] init];
40 | NSString *path = [[NSBundle mainBundle] pathForResource:@"name" ofType:nil];
41 | NSString *str = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
42 | NSMutableArray *Arr = [NSMutableArray arrayWithArray:[str componentsSeparatedByString:@"/"]];
43 | for(int i = 0;i indexPath.section) {
76 | NSArray *arr = [self.sortedArrForArrays objectAtIndex:indexPath.section];
77 | if ([arr count] > indexPath.row) {
78 | MyModel *str = (MyModel *) [arr objectAtIndex:indexPath.row];
79 | cell.textLabel.text = str.UserName;
80 | }
81 | }
82 | return cell;
83 | }
84 | @end
85 |
--------------------------------------------------------------------------------
/ICPingyinConvert/Base.lproj/LaunchScreen.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
20 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/ICPingyinConvert.xcodeproj/xcuserdata/zhufengyi.xcuserdatad/xcschemes/ICPingyinConvert.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
29 |
35 |
36 |
37 |
38 |
39 |
44 |
45 |
47 |
53 |
54 |
55 |
56 |
57 |
63 |
64 |
65 |
66 |
75 |
77 |
83 |
84 |
85 |
86 |
87 |
88 |
94 |
96 |
102 |
103 |
104 |
105 |
107 |
108 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/ICPingyinConvert.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 38E4C6361B61348C00F620D3 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 38E4C6351B61348C00F620D3 /* main.m */; };
11 | 38E4C6391B61348C00F620D3 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 38E4C6381B61348C00F620D3 /* AppDelegate.m */; };
12 | 38E4C63C1B61348C00F620D3 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 38E4C63B1B61348C00F620D3 /* ViewController.m */; };
13 | 38E4C63F1B61348C00F620D3 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 38E4C63D1B61348C00F620D3 /* Main.storyboard */; };
14 | 38E4C6411B61348C00F620D3 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 38E4C6401B61348C00F620D3 /* Images.xcassets */; };
15 | 38E4C6441B61348C00F620D3 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 38E4C6421B61348C00F620D3 /* LaunchScreen.xib */; };
16 | 38E4C6501B61348C00F620D3 /* ICPingyinConvertTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 38E4C64F1B61348C00F620D3 /* ICPingyinConvertTests.m */; };
17 | 38E4C6611B61357B00F620D3 /* name in Resources */ = {isa = PBXBuildFile; fileRef = 38E4C6601B61357B00F620D3 /* name */; };
18 | 38E4DF741B65007E00053132 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 38E4DF731B65007E00053132 /* UIKit.framework */; };
19 | 38E4DF791B650B7D00053132 /* MyModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 38E4DF781B650B7D00053132 /* MyModel.m */; };
20 | 38E4DF7D1B650E1D00053132 /* ICPinyinGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 38E4DF7C1B650E1D00053132 /* ICPinyinGroup.m */; };
21 | /* End PBXBuildFile section */
22 |
23 | /* Begin PBXContainerItemProxy section */
24 | 38E4C64A1B61348C00F620D3 /* PBXContainerItemProxy */ = {
25 | isa = PBXContainerItemProxy;
26 | containerPortal = 38E4C6281B61348C00F620D3 /* Project object */;
27 | proxyType = 1;
28 | remoteGlobalIDString = 38E4C62F1B61348C00F620D3;
29 | remoteInfo = ICPingyinConvert;
30 | };
31 | /* End PBXContainerItemProxy section */
32 |
33 | /* Begin PBXFileReference section */
34 | 38E4C6301B61348C00F620D3 /* ICPingyinConvert.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ICPingyinConvert.app; sourceTree = BUILT_PRODUCTS_DIR; };
35 | 38E4C6341B61348C00F620D3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
36 | 38E4C6351B61348C00F620D3 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
37 | 38E4C6371B61348C00F620D3 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
38 | 38E4C6381B61348C00F620D3 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
39 | 38E4C63A1B61348C00F620D3 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; };
40 | 38E4C63B1B61348C00F620D3 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; };
41 | 38E4C63E1B61348C00F620D3 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
42 | 38E4C6401B61348C00F620D3 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; };
43 | 38E4C6431B61348C00F620D3 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; };
44 | 38E4C6491B61348C00F620D3 /* ICPingyinConvertTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ICPingyinConvertTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
45 | 38E4C64E1B61348C00F620D3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
46 | 38E4C64F1B61348C00F620D3 /* ICPingyinConvertTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ICPingyinConvertTests.m; sourceTree = ""; };
47 | 38E4C6601B61357B00F620D3 /* name */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = name; sourceTree = ""; };
48 | 38E4DF731B65007E00053132 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
49 | 38E4DF781B650B7D00053132 /* MyModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MyModel.m; sourceTree = ""; };
50 | 38E4DF7B1B650E1D00053132 /* ICPinyinGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ICPinyinGroup.h; sourceTree = ""; };
51 | 38E4DF7C1B650E1D00053132 /* ICPinyinGroup.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ICPinyinGroup.m; sourceTree = ""; };
52 | 38E4DF7E1B65125400053132 /* MyModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyModel.h; sourceTree = ""; };
53 | /* End PBXFileReference section */
54 |
55 | /* Begin PBXFrameworksBuildPhase section */
56 | 38E4C62D1B61348C00F620D3 /* Frameworks */ = {
57 | isa = PBXFrameworksBuildPhase;
58 | buildActionMask = 2147483647;
59 | files = (
60 | 38E4DF741B65007E00053132 /* UIKit.framework in Frameworks */,
61 | );
62 | runOnlyForDeploymentPostprocessing = 0;
63 | };
64 | 38E4C6461B61348C00F620D3 /* Frameworks */ = {
65 | isa = PBXFrameworksBuildPhase;
66 | buildActionMask = 2147483647;
67 | files = (
68 | );
69 | runOnlyForDeploymentPostprocessing = 0;
70 | };
71 | /* End PBXFrameworksBuildPhase section */
72 |
73 | /* Begin PBXGroup section */
74 | 38E4C6271B61348C00F620D3 = {
75 | isa = PBXGroup;
76 | children = (
77 | 38E4DF7A1B650E1D00053132 /* ICPingyin */,
78 | 38E4DF731B65007E00053132 /* UIKit.framework */,
79 | 38E4C6601B61357B00F620D3 /* name */,
80 | 38E4C6321B61348C00F620D3 /* ICPingyinConvert */,
81 | 38E4C64C1B61348C00F620D3 /* ICPingyinConvertTests */,
82 | 38E4C6311B61348C00F620D3 /* Products */,
83 | );
84 | sourceTree = "";
85 | };
86 | 38E4C6311B61348C00F620D3 /* Products */ = {
87 | isa = PBXGroup;
88 | children = (
89 | 38E4C6301B61348C00F620D3 /* ICPingyinConvert.app */,
90 | 38E4C6491B61348C00F620D3 /* ICPingyinConvertTests.xctest */,
91 | );
92 | name = Products;
93 | sourceTree = "";
94 | };
95 | 38E4C6321B61348C00F620D3 /* ICPingyinConvert */ = {
96 | isa = PBXGroup;
97 | children = (
98 | 38E4DF7E1B65125400053132 /* MyModel.h */,
99 | 38E4DF781B650B7D00053132 /* MyModel.m */,
100 | 38E4C6371B61348C00F620D3 /* AppDelegate.h */,
101 | 38E4C6381B61348C00F620D3 /* AppDelegate.m */,
102 | 38E4C63A1B61348C00F620D3 /* ViewController.h */,
103 | 38E4C63B1B61348C00F620D3 /* ViewController.m */,
104 | 38E4C63D1B61348C00F620D3 /* Main.storyboard */,
105 | 38E4C6401B61348C00F620D3 /* Images.xcassets */,
106 | 38E4C6421B61348C00F620D3 /* LaunchScreen.xib */,
107 | 38E4C6331B61348C00F620D3 /* Supporting Files */,
108 | );
109 | path = ICPingyinConvert;
110 | sourceTree = "";
111 | };
112 | 38E4C6331B61348C00F620D3 /* Supporting Files */ = {
113 | isa = PBXGroup;
114 | children = (
115 | 38E4C6341B61348C00F620D3 /* Info.plist */,
116 | 38E4C6351B61348C00F620D3 /* main.m */,
117 | );
118 | name = "Supporting Files";
119 | sourceTree = "";
120 | };
121 | 38E4C64C1B61348C00F620D3 /* ICPingyinConvertTests */ = {
122 | isa = PBXGroup;
123 | children = (
124 | 38E4C64F1B61348C00F620D3 /* ICPingyinConvertTests.m */,
125 | 38E4C64D1B61348C00F620D3 /* Supporting Files */,
126 | );
127 | path = ICPingyinConvertTests;
128 | sourceTree = "";
129 | };
130 | 38E4C64D1B61348C00F620D3 /* Supporting Files */ = {
131 | isa = PBXGroup;
132 | children = (
133 | 38E4C64E1B61348C00F620D3 /* Info.plist */,
134 | );
135 | name = "Supporting Files";
136 | sourceTree = "";
137 | };
138 | 38E4DF7A1B650E1D00053132 /* ICPingyin */ = {
139 | isa = PBXGroup;
140 | children = (
141 | 38E4DF7B1B650E1D00053132 /* ICPinyinGroup.h */,
142 | 38E4DF7C1B650E1D00053132 /* ICPinyinGroup.m */,
143 | );
144 | path = ICPingyin;
145 | sourceTree = "";
146 | };
147 | /* End PBXGroup section */
148 |
149 | /* Begin PBXNativeTarget section */
150 | 38E4C62F1B61348C00F620D3 /* ICPingyinConvert */ = {
151 | isa = PBXNativeTarget;
152 | buildConfigurationList = 38E4C6531B61348C00F620D3 /* Build configuration list for PBXNativeTarget "ICPingyinConvert" */;
153 | buildPhases = (
154 | 38E4C62C1B61348C00F620D3 /* Sources */,
155 | 38E4C62D1B61348C00F620D3 /* Frameworks */,
156 | 38E4C62E1B61348C00F620D3 /* Resources */,
157 | );
158 | buildRules = (
159 | );
160 | dependencies = (
161 | );
162 | name = ICPingyinConvert;
163 | productName = ICPingyinConvert;
164 | productReference = 38E4C6301B61348C00F620D3 /* ICPingyinConvert.app */;
165 | productType = "com.apple.product-type.application";
166 | };
167 | 38E4C6481B61348C00F620D3 /* ICPingyinConvertTests */ = {
168 | isa = PBXNativeTarget;
169 | buildConfigurationList = 38E4C6561B61348C00F620D3 /* Build configuration list for PBXNativeTarget "ICPingyinConvertTests" */;
170 | buildPhases = (
171 | 38E4C6451B61348C00F620D3 /* Sources */,
172 | 38E4C6461B61348C00F620D3 /* Frameworks */,
173 | 38E4C6471B61348C00F620D3 /* Resources */,
174 | );
175 | buildRules = (
176 | );
177 | dependencies = (
178 | 38E4C64B1B61348C00F620D3 /* PBXTargetDependency */,
179 | );
180 | name = ICPingyinConvertTests;
181 | productName = ICPingyinConvertTests;
182 | productReference = 38E4C6491B61348C00F620D3 /* ICPingyinConvertTests.xctest */;
183 | productType = "com.apple.product-type.bundle.unit-test";
184 | };
185 | /* End PBXNativeTarget section */
186 |
187 | /* Begin PBXProject section */
188 | 38E4C6281B61348C00F620D3 /* Project object */ = {
189 | isa = PBXProject;
190 | attributes = {
191 | LastUpgradeCheck = 0640;
192 | ORGANIZATIONNAME = card;
193 | TargetAttributes = {
194 | 38E4C62F1B61348C00F620D3 = {
195 | CreatedOnToolsVersion = 6.4;
196 | };
197 | 38E4C6481B61348C00F620D3 = {
198 | CreatedOnToolsVersion = 6.4;
199 | TestTargetID = 38E4C62F1B61348C00F620D3;
200 | };
201 | };
202 | };
203 | buildConfigurationList = 38E4C62B1B61348C00F620D3 /* Build configuration list for PBXProject "ICPingyinConvert" */;
204 | compatibilityVersion = "Xcode 3.2";
205 | developmentRegion = English;
206 | hasScannedForEncodings = 0;
207 | knownRegions = (
208 | en,
209 | Base,
210 | );
211 | mainGroup = 38E4C6271B61348C00F620D3;
212 | productRefGroup = 38E4C6311B61348C00F620D3 /* Products */;
213 | projectDirPath = "";
214 | projectRoot = "";
215 | targets = (
216 | 38E4C62F1B61348C00F620D3 /* ICPingyinConvert */,
217 | 38E4C6481B61348C00F620D3 /* ICPingyinConvertTests */,
218 | );
219 | };
220 | /* End PBXProject section */
221 |
222 | /* Begin PBXResourcesBuildPhase section */
223 | 38E4C62E1B61348C00F620D3 /* Resources */ = {
224 | isa = PBXResourcesBuildPhase;
225 | buildActionMask = 2147483647;
226 | files = (
227 | 38E4C63F1B61348C00F620D3 /* Main.storyboard in Resources */,
228 | 38E4C6611B61357B00F620D3 /* name in Resources */,
229 | 38E4C6441B61348C00F620D3 /* LaunchScreen.xib in Resources */,
230 | 38E4C6411B61348C00F620D3 /* Images.xcassets in Resources */,
231 | );
232 | runOnlyForDeploymentPostprocessing = 0;
233 | };
234 | 38E4C6471B61348C00F620D3 /* Resources */ = {
235 | isa = PBXResourcesBuildPhase;
236 | buildActionMask = 2147483647;
237 | files = (
238 | );
239 | runOnlyForDeploymentPostprocessing = 0;
240 | };
241 | /* End PBXResourcesBuildPhase section */
242 |
243 | /* Begin PBXSourcesBuildPhase section */
244 | 38E4C62C1B61348C00F620D3 /* Sources */ = {
245 | isa = PBXSourcesBuildPhase;
246 | buildActionMask = 2147483647;
247 | files = (
248 | 38E4DF791B650B7D00053132 /* MyModel.m in Sources */,
249 | 38E4C63C1B61348C00F620D3 /* ViewController.m in Sources */,
250 | 38E4C6391B61348C00F620D3 /* AppDelegate.m in Sources */,
251 | 38E4C6361B61348C00F620D3 /* main.m in Sources */,
252 | 38E4DF7D1B650E1D00053132 /* ICPinyinGroup.m in Sources */,
253 | );
254 | runOnlyForDeploymentPostprocessing = 0;
255 | };
256 | 38E4C6451B61348C00F620D3 /* Sources */ = {
257 | isa = PBXSourcesBuildPhase;
258 | buildActionMask = 2147483647;
259 | files = (
260 | 38E4C6501B61348C00F620D3 /* ICPingyinConvertTests.m in Sources */,
261 | );
262 | runOnlyForDeploymentPostprocessing = 0;
263 | };
264 | /* End PBXSourcesBuildPhase section */
265 |
266 | /* Begin PBXTargetDependency section */
267 | 38E4C64B1B61348C00F620D3 /* PBXTargetDependency */ = {
268 | isa = PBXTargetDependency;
269 | target = 38E4C62F1B61348C00F620D3 /* ICPingyinConvert */;
270 | targetProxy = 38E4C64A1B61348C00F620D3 /* PBXContainerItemProxy */;
271 | };
272 | /* End PBXTargetDependency section */
273 |
274 | /* Begin PBXVariantGroup section */
275 | 38E4C63D1B61348C00F620D3 /* Main.storyboard */ = {
276 | isa = PBXVariantGroup;
277 | children = (
278 | 38E4C63E1B61348C00F620D3 /* Base */,
279 | );
280 | name = Main.storyboard;
281 | sourceTree = "";
282 | };
283 | 38E4C6421B61348C00F620D3 /* LaunchScreen.xib */ = {
284 | isa = PBXVariantGroup;
285 | children = (
286 | 38E4C6431B61348C00F620D3 /* Base */,
287 | );
288 | name = LaunchScreen.xib;
289 | sourceTree = "";
290 | };
291 | /* End PBXVariantGroup section */
292 |
293 | /* Begin XCBuildConfiguration section */
294 | 38E4C6511B61348C00F620D3 /* Debug */ = {
295 | isa = XCBuildConfiguration;
296 | buildSettings = {
297 | ALWAYS_SEARCH_USER_PATHS = NO;
298 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
299 | CLANG_CXX_LIBRARY = "libc++";
300 | CLANG_ENABLE_MODULES = YES;
301 | CLANG_ENABLE_OBJC_ARC = YES;
302 | CLANG_WARN_BOOL_CONVERSION = YES;
303 | CLANG_WARN_CONSTANT_CONVERSION = YES;
304 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
305 | CLANG_WARN_EMPTY_BODY = YES;
306 | CLANG_WARN_ENUM_CONVERSION = YES;
307 | CLANG_WARN_INT_CONVERSION = YES;
308 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
309 | CLANG_WARN_UNREACHABLE_CODE = YES;
310 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
311 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
312 | COPY_PHASE_STRIP = NO;
313 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
314 | ENABLE_STRICT_OBJC_MSGSEND = YES;
315 | GCC_C_LANGUAGE_STANDARD = gnu99;
316 | GCC_DYNAMIC_NO_PIC = NO;
317 | GCC_NO_COMMON_BLOCKS = YES;
318 | GCC_OPTIMIZATION_LEVEL = 0;
319 | GCC_PREPROCESSOR_DEFINITIONS = (
320 | "DEBUG=1",
321 | "$(inherited)",
322 | );
323 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
324 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
325 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
326 | GCC_WARN_UNDECLARED_SELECTOR = YES;
327 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
328 | GCC_WARN_UNUSED_FUNCTION = YES;
329 | GCC_WARN_UNUSED_VARIABLE = YES;
330 | IPHONEOS_DEPLOYMENT_TARGET = 8.4;
331 | MTL_ENABLE_DEBUG_INFO = YES;
332 | ONLY_ACTIVE_ARCH = YES;
333 | SDKROOT = iphoneos;
334 | TARGETED_DEVICE_FAMILY = "1,2";
335 | };
336 | name = Debug;
337 | };
338 | 38E4C6521B61348C00F620D3 /* Release */ = {
339 | isa = XCBuildConfiguration;
340 | buildSettings = {
341 | ALWAYS_SEARCH_USER_PATHS = NO;
342 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
343 | CLANG_CXX_LIBRARY = "libc++";
344 | CLANG_ENABLE_MODULES = YES;
345 | CLANG_ENABLE_OBJC_ARC = YES;
346 | CLANG_WARN_BOOL_CONVERSION = YES;
347 | CLANG_WARN_CONSTANT_CONVERSION = YES;
348 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
349 | CLANG_WARN_EMPTY_BODY = YES;
350 | CLANG_WARN_ENUM_CONVERSION = YES;
351 | CLANG_WARN_INT_CONVERSION = YES;
352 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
353 | CLANG_WARN_UNREACHABLE_CODE = YES;
354 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
355 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
356 | COPY_PHASE_STRIP = NO;
357 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
358 | ENABLE_NS_ASSERTIONS = NO;
359 | ENABLE_STRICT_OBJC_MSGSEND = YES;
360 | GCC_C_LANGUAGE_STANDARD = gnu99;
361 | GCC_NO_COMMON_BLOCKS = YES;
362 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
363 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
364 | GCC_WARN_UNDECLARED_SELECTOR = YES;
365 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
366 | GCC_WARN_UNUSED_FUNCTION = YES;
367 | GCC_WARN_UNUSED_VARIABLE = YES;
368 | IPHONEOS_DEPLOYMENT_TARGET = 8.4;
369 | MTL_ENABLE_DEBUG_INFO = NO;
370 | SDKROOT = iphoneos;
371 | TARGETED_DEVICE_FAMILY = "1,2";
372 | VALIDATE_PRODUCT = YES;
373 | };
374 | name = Release;
375 | };
376 | 38E4C6541B61348C00F620D3 /* Debug */ = {
377 | isa = XCBuildConfiguration;
378 | buildSettings = {
379 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
380 | INFOPLIST_FILE = ICPingyinConvert/Info.plist;
381 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
382 | PRODUCT_NAME = "$(TARGET_NAME)";
383 | };
384 | name = Debug;
385 | };
386 | 38E4C6551B61348C00F620D3 /* Release */ = {
387 | isa = XCBuildConfiguration;
388 | buildSettings = {
389 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
390 | INFOPLIST_FILE = ICPingyinConvert/Info.plist;
391 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
392 | PRODUCT_NAME = "$(TARGET_NAME)";
393 | };
394 | name = Release;
395 | };
396 | 38E4C6571B61348C00F620D3 /* Debug */ = {
397 | isa = XCBuildConfiguration;
398 | buildSettings = {
399 | BUNDLE_LOADER = "$(TEST_HOST)";
400 | FRAMEWORK_SEARCH_PATHS = (
401 | "$(SDKROOT)/Developer/Library/Frameworks",
402 | "$(inherited)",
403 | );
404 | GCC_PREPROCESSOR_DEFINITIONS = (
405 | "DEBUG=1",
406 | "$(inherited)",
407 | );
408 | INFOPLIST_FILE = ICPingyinConvertTests/Info.plist;
409 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
410 | PRODUCT_NAME = "$(TARGET_NAME)";
411 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ICPingyinConvert.app/ICPingyinConvert";
412 | };
413 | name = Debug;
414 | };
415 | 38E4C6581B61348C00F620D3 /* Release */ = {
416 | isa = XCBuildConfiguration;
417 | buildSettings = {
418 | BUNDLE_LOADER = "$(TEST_HOST)";
419 | FRAMEWORK_SEARCH_PATHS = (
420 | "$(SDKROOT)/Developer/Library/Frameworks",
421 | "$(inherited)",
422 | );
423 | INFOPLIST_FILE = ICPingyinConvertTests/Info.plist;
424 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
425 | PRODUCT_NAME = "$(TARGET_NAME)";
426 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ICPingyinConvert.app/ICPingyinConvert";
427 | };
428 | name = Release;
429 | };
430 | /* End XCBuildConfiguration section */
431 |
432 | /* Begin XCConfigurationList section */
433 | 38E4C62B1B61348C00F620D3 /* Build configuration list for PBXProject "ICPingyinConvert" */ = {
434 | isa = XCConfigurationList;
435 | buildConfigurations = (
436 | 38E4C6511B61348C00F620D3 /* Debug */,
437 | 38E4C6521B61348C00F620D3 /* Release */,
438 | );
439 | defaultConfigurationIsVisible = 0;
440 | defaultConfigurationName = Release;
441 | };
442 | 38E4C6531B61348C00F620D3 /* Build configuration list for PBXNativeTarget "ICPingyinConvert" */ = {
443 | isa = XCConfigurationList;
444 | buildConfigurations = (
445 | 38E4C6541B61348C00F620D3 /* Debug */,
446 | 38E4C6551B61348C00F620D3 /* Release */,
447 | );
448 | defaultConfigurationIsVisible = 0;
449 | defaultConfigurationName = Release;
450 | };
451 | 38E4C6561B61348C00F620D3 /* Build configuration list for PBXNativeTarget "ICPingyinConvertTests" */ = {
452 | isa = XCConfigurationList;
453 | buildConfigurations = (
454 | 38E4C6571B61348C00F620D3 /* Debug */,
455 | 38E4C6581B61348C00F620D3 /* Release */,
456 | );
457 | defaultConfigurationIsVisible = 0;
458 | defaultConfigurationName = Release;
459 | };
460 | /* End XCConfigurationList section */
461 | };
462 | rootObject = 38E4C6281B61348C00F620D3 /* Project object */;
463 | }
464 |
--------------------------------------------------------------------------------
/ICPingyin/ICPinyinGroup.m:
--------------------------------------------------------------------------------
1 | //
2 | // LEOPinyinGroup.m
3 | // CarSupermarket
4 | //
5 | // Created by lion on 15/7/26.
6 | // Copyright (c) 2015年 lion. All rights reserved.
7 | //
8 |
9 | #import "ICPinyinGroup.h"
10 | #import
11 |
12 | #define HANZI_START 19968
13 | #define HANZI_COUNT 20902
14 |
15 | NSString *const LEOPinyinGroupResultKey = @"LEOPinyinGroupResultKey";
16 |
17 | NSString *const LEOPinyinGroupCharKey = @"LEOPinyinGroupCharKey";
18 |
19 | static char LEOPinyinGroupSectionNumberKey;
20 |
21 | @implementation ICPinyinGroup
22 |
23 | +(NSDictionary *)group:(NSArray *)datas key:(NSString *)key{
24 |
25 | NSMutableArray *newSectionArray;
26 | UILocalizedIndexedCollation *collation = [UILocalizedIndexedCollation currentCollation];
27 | NSInteger sectionTitlesCount = [[collation sectionTitles] count];
28 | newSectionArray = [[NSMutableArray alloc] initWithCapacity:sectionTitlesCount];
29 |
30 | for (NSInteger index = 0; index < sectionTitlesCount; index ++) {
31 | NSMutableArray *array = [[NSMutableArray alloc] init];
32 | [newSectionArray addObject:array];
33 | }
34 | for (id model in datas) {
35 | //获取name属性的值所在的位置,比如"林丹",首字母是L,在A~Z中排第11(第一位是0),sectionNumber就为11
36 | NSInteger sectionNumber = [collation sectionForObject:model collationStringSelector:NSSelectorFromString(key)];
37 | objc_setAssociatedObject(model, &LEOPinyinGroupSectionNumberKey, @(sectionNumber), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
38 | }
39 |
40 | NSMutableArray *charArray = [[NSMutableArray alloc] init];
41 |
42 | for (id model in datas) {
43 | NSInteger sectionNumber = [objc_getAssociatedObject(model, &LEOPinyinGroupSectionNumberKey) integerValue];
44 | [newSectionArray[sectionNumber] addObject:model];
45 | unichar firstChar = [ICPinyinGroup firstCharactor:[[model valueForKey:key] description]];
46 | NSString *firstCharString = [[NSString stringWithFormat:@"%C",firstChar]uppercaseString];
47 | if (![charArray containsObject:firstCharString]) {
48 | [charArray addObject:firstCharString];
49 | }
50 | }
51 |
52 | NSArray *charSortArray = [charArray sortedArrayUsingSelector:@selector(compare:)];
53 |
54 | NSMutableArray *lastArray = [[NSMutableArray alloc] init];
55 | //对每个section中的数组按照name属性排序
56 | for (NSMutableArray *sectionArray in newSectionArray) {
57 | if (sectionArray.count != 0) {
58 | NSSortDescriptor* sortDescriptor = [[NSSortDescriptor alloc] initWithKey:key ascending:YES];
59 | NSArray* descriptors = [NSArray arrayWithObjects:sortDescriptor, nil];
60 | NSArray* sortedRoster = [sectionArray sortedArrayUsingDescriptors:descriptors];
61 | [lastArray addObject:[NSMutableArray arrayWithArray:sortedRoster]];
62 | }
63 | }
64 | NSArray *resultArray = [NSArray arrayWithArray:lastArray];
65 |
66 | return @{LEOPinyinGroupCharKey:charSortArray,
67 | LEOPinyinGroupResultKey:resultArray};
68 | }
69 |
70 | #pragma mark Helper function definition
71 | /**
72 | * @brief 求首字母
73 | * @attention [personName length] = 1
74 | */
75 | + (unichar)firstCharactor:(NSString *)personName
76 | {
77 | NSString *firstCharStr = [[personName uppercaseString] substringToIndex:1];
78 | unichar initialCha = [firstCharStr characterAtIndex:0];
79 |
80 | if ((initialCha >= '0' && initialCha <= '9')|| initialCha == ' ')
81 | // 数字
82 | {
83 | initialCha = '#';
84 | }
85 | else if ( !(initialCha >='A' && initialCha <='Z') )
86 | // 非字母
87 | {
88 | initialCha = pinyinFirstLetter(initialCha);
89 | }// else 为字母,因为前面已经转为大写了所以对字母不再做操作
90 |
91 | return initialCha;
92 | }
93 |
94 | char pinyinFirstLetter(unsigned short hanzi)
95 | {
96 | int index = hanzi - HANZI_START;
97 | if (index >= 0 && index <= HANZI_COUNT)
98 | {
99 | return firstLetterArray[index];
100 | }
101 | else
102 | {
103 | return '#';
104 | }
105 | }
106 |
107 | static char firstLetterArray[HANZI_COUNT] =
108 | "ydkqsxnwzssxjbymgcczqpssqbycdscdqldylybssjgyqzjjfgcclzznwdwzjljpfyynnjjtmynzwzhflzppqhgccyynmjqyxxgd"
109 | "nnsnsjnjnsnnmlnrxyfsngnnnnqzggllyjlnyzssecykyyhqwjssggyxyqyjtwktjhychmnxjtlhjyqbyxdldwrrjnwysrldzjpc"
110 | "bzjjbrcfslnczstzfxxchtrqggddlyccssymmrjcyqzpwwjjyfcrwfdfzqpyddwyxkyjawjffxjbcftzyhhycyswccyxsclcxxwz"
111 | "cxnbgnnxbxlzsqsbsjpysazdhmdzbqbscwdzzyytzhbtsyyfzgntnxjywqnknphhlxgybfmjnbjhhgqtjcysxstkzglyckglysmz"
112 | "xyalmeldccxgzyrjxjzlnjzcqkcnnjwhjczccqljststbnhbtyxceqxkkwjyflzqlyhjxspsfxlmpbysxxxytccnylllsjxfhjxp"
113 | "jbtffyabyxbcczbzyclwlczggbtssmdtjcxpthyqtgjjxcjfzkjzjqnlzwlslhdzbwjncjzyzsqnycqynzcjjwybrtwpyftwexcs"
114 | "kdzctbyhyzqyyjxzcfbzzmjyxxsdczottbzljwfckscsxfyrlrygmbdthjxsqjccsbxyytswfbjdztnbcnzlcyzzpsacyzzsqqcs"
115 | "hzqydxlbpjllmqxqydzxsqjtzpxlcglqdcwzfhctdjjsfxjejjtlbgxsxjmyjjqpfzasyjnsydjxkjcdjsznbartcclnjqmwnqnc"
116 | "lllkbdbzzsyhqcltwlccrshllzntylnewyzyxczxxgdkdmtcedejtsyyssdqdfmxdbjlkrwnqlybglxnlgtgxbqjdznyjsjyjcjm"
117 | "rnymgrcjczgjmzmgxmmryxkjnymsgmzzymknfxmbdtgfbhcjhkylpfmdxlxjjsmsqgzsjlqdldgjycalcmzcsdjllnxdjffffjcn"
118 | "fnnffpfkhkgdpqxktacjdhhzdddrrcfqyjkqccwjdxhwjlyllzgcfcqjsmlzpbjjblsbcjggdckkdezsqcckjgcgkdjtjllzycxk"
119 | "lqccgjcltfpcqczgwbjdqyzjjbyjhsjddwgfsjgzkcjctllfspkjgqjhzzljplgjgjjthjjyjzccmlzlyqbgjwmljkxzdznjqsyz"
120 | "mljlljkywxmkjlhskjhbmclyymkxjqlbmllkmdxxkwyxwslmlpsjqqjqxyqfjtjdxmxxllcrqbsyjbgwynnggbcnxpjtgpapfgdj"
121 | "qbhbncfjyzjkjkhxqfgqckfhygkhdkllsdjqxpqyaybnqsxqnszswhbsxwhxwbzzxdmndjbsbkbbzklylxgwxjjwaqzmywsjqlsj"
122 | "xxjqwjeqxnchetlzalyyyszzpnkyzcptlshtzcfycyxyljsdcjqagyslcllyyysslqqqnldxzsccscadycjysfsgbfrsszqsbxjp"
123 | "sjysdrckgjlgtkzjzbdktcsyqpyhstcldjnhmymcgxyzhjdctmhltxzhylamoxyjcltyfbqqjpfbdfehthsqhzywwcncxcdwhowg"
124 | "yjlegmdqcwgfjhcsntmydolbygnqwesqpwnmlrydzszzlyqpzgcwxhnxpyxshmdqjgztdppbfbhzhhjyfdzwkgkzbldnzsxhqeeg"
125 | "zxylzmmzyjzgszxkhkhtxexxgylyapsthxdwhzydpxagkydxbhnhnkdnjnmyhylpmgecslnzhkxxlbzzlbmlsfbhhgsgyyggbhsc"
126 | "yajtxglxtzmcwzydqdqmngdnllszhngjzwfyhqswscelqajynytlsxthaznkzzsdhlaxxtwwcjhqqtddwzbcchyqzflxpslzqgpz"
127 | "sznglydqtbdlxntctajdkywnsyzljhhdzckryyzywmhychhhxhjkzwsxhdnxlyscqydpslyzwmypnkxyjlkchtyhaxqsyshxasmc"
128 | "hkdscrsgjpwqsgzjlwwschsjhsqnhnsngndantbaalczmsstdqjcjktscjnxplggxhhgoxzcxpdmmhldgtybynjmxhmrzplxjzck"
129 | "zxshflqxxcdhxwzpckczcdytcjyxqhlxdhypjqxnlsyydzozjnhhqezysjyayxkypdgxddnsppyzndhthrhxydpcjjhtcnnctlhb"
130 | "ynyhmhzllnnxmylllmdcppxhmxdkycyrdltxjchhznxclcclylnzsxnjzzlnnnnwhyqsnjhxynttdkyjpychhyegkcwtwlgjrlgg"
131 | "tgtygyhpyhylqyqgcwyqkpyyettttlhyylltyttsylnyzwgywgpydqqzzdqnnkcqnmjjzzbxtqfjkdffbtkhzkbxdjjkdjjtlbwf"
132 | "zpptkqtztgpdwntpjyfalqmkgxbcclzfhzcllllanpnxtjklcclgyhdzfgyddgcyyfgydxkssendhykdndknnaxxhbpbyyhxccga"
133 | "pfqyjjdmlxcsjzllpcnbsxgjyndybwjspcwjlzkzddtacsbkzdyzypjzqsjnkktknjdjgyepgtlnyqnacdntcyhblgdzhbbydmjr"
134 | "egkzyheyybjmcdtafzjzhgcjnlghldwxjjkytcyksssmtwcttqzlpbszdtwcxgzagyktywxlnlcpbclloqmmzsslcmbjcsdzkydc"
135 | "zjgqjdsmcytzqqlnzqzxssbpkdfqmddzzsddtdmfhtdycnaqjqkypbdjyyxtljhdrqxlmhkydhrnlklytwhllrllrcxylbnsrnzz"
136 | "symqzzhhkyhxksmzsyzgcxfbnbsqlfzxxnnxkxwymsddyqnggqmmyhcdzttfgyyhgsbttybykjdnkyjbelhdypjqnfxfdnkzhqks"
137 | "byjtzbxhfdsbdaswpawajldyjsfhblcnndnqjtjnchxfjsrfwhzfmdrfjyxwzpdjkzyjympcyznynxfbytfyfwygdbnzzzdnytxz"
138 | "emmqbsqehxfznbmflzzsrsyqjgsxwzjsprytjsjgskjjgljjynzjjxhgjkymlpyyycxycgqzswhwlyrjlpxslcxmnsmwklcdnkny"
139 | "npsjszhdzeptxmwywxyysywlxjqcqxzdclaeelmcpjpclwbxsqhfwrtfnjtnqjhjqdxhwlbyccfjlylkyynldxnhycstyywncjtx"
140 | "ywtrmdrqnwqcmfjdxzmhmayxnwmyzqtxtlmrspwwjhanbxtgzypxyyrrclmpamgkqjszycymyjsnxtplnbappypylxmyzkynldgy"
141 | "jzcchnlmzhhanqnbgwqtzmxxmllhgdzxnhxhrxycjmffxywcfsbssqlhnndycannmtcjcypnxnytycnnymnmsxndlylysljnlxys"
142 | "sqmllyzlzjjjkyzzcsfbzxxmstbjgnxnchlsnmcjscyznfzlxbrnnnylmnrtgzqysatswryhyjzmgdhzgzdwybsscskxsyhytsxg"
143 | "cqgxzzbhyxjscrhmkkbsczjyjymkqhzjfnbhmqhysnjnzybknqmcjgqhwlsnzswxkhljhyybqcbfcdsxdldspfzfskjjzwzxsddx"
144 | "jseeegjscssygclxxnwwyllymwwwgydkzjggggggsycknjwnjpcxbjjtqtjwdsspjxcxnzxnmelptfsxtllxcljxjjljsxctnswx"
145 | "lennlyqrwhsycsqnybyaywjejqfwqcqqcjqgxaldbzzyjgkgxbltqyfxjltpydkyqhpmatlcndnkxmtxynhklefxdllegqtymsaw"
146 | "hzmljtkynxlyjzljeeyybqqffnlyxhdsctgjhxywlkllxqkcctnhjlqmkkzgcyygllljdcgydhzwypysjbzjdzgyzzhywyfqdtyz"
147 | "szyezklymgjjhtsmqwyzljyywzcsrkqyqltdxwcdrjalwsqzwbdcqyncjnnszjlncdcdtlzzzacqqzzddxyblxcbqjylzllljddz"
148 | "jgyqyjzyxnyyyexjxksdaznyrdlzyyynjlslldyxjcykywnqcclddnyyynycgczhjxcclgzqjgnwnncqqjysbzzxyjxjnxjfzbsb"
149 | "dsfnsfpzxhdwztdmpptflzzbzdmyypqjrsdzsqzsqxbdgcpzswdwcsqzgmdhzxmwwfybpngphdmjthzsmmbgzmbzjcfzhfcbbnmq"
150 | "dfmbcmcjxlgpnjbbxgyhyyjgptzgzmqbqdcgybjxlwnkydpdymgcftpfxyztzxdzxtgkptybbclbjaskytssqyymscxfjhhlslls"
151 | "jpqjjqaklyldlycctsxmcwfgngbqxllllnyxtyltyxytdpjhnhgnkbyqnfjyyzbyyessessgdyhfhwtcqbsdzjtfdmxhcnjzymqw"
152 | "srxjdzjqbdqbbsdjgnfbknbxdkqhmkwjjjgdllthzhhyyyyhhsxztyyyccbdbpypzyccztjpzywcbdlfwzcwjdxxhyhlhwczxjtc"
153 | "nlcdpxnqczczlyxjjcjbhfxwpywxzpcdzzbdccjwjhmlxbqxxbylrddgjrrctttgqdczwmxfytmmzcwjwxyywzzkybzcccttqnhx"
154 | "nwxxkhkfhtswoccjybcmpzzykbnnzpbthhjdlszddytyfjpxyngfxbyqxzbhxcpxxtnzdnnycnxsxlhkmzxlthdhkghxxsshqyhh"
155 | "cjyxglhzxcxnhekdtgqxqypkdhentykcnymyyjmkqyyyjxzlthhqtbyqhxbmyhsqckwwyllhcyylnneqxqwmcfbdccmljggxdqkt"
156 | "lxkknqcdgcjwyjjlyhhqyttnwchhxcxwherzjydjccdbqcdgdnyxzdhcqrxcbhztqcbxwgqwyybxhmbymykdyecmqkyaqyngyzsl"
157 | "fnkkqgyssqyshngjctxkzycssbkyxhyylstycxqthysmnscpmmgcccccmnztasmgqzjhklosjylswtmqzyqkdzljqqyplzycztcq"
158 | "qpbbcjzclpkhqcyyxxdtdddsjcxffllchqxmjlwcjcxtspycxndtjshjwhdqqqckxyamylsjhmlalygxcyydmamdqmlmcznnyybz"
159 | "xkyflmcncmlhxrcjjhsylnmtjggzgywjxsrxcwjgjqhqzdqjdcjjskjkgdzcgjjyjylxzxxcdqhhheslmhlfsbdjsyyshfyssczq"
160 | "lpbdrfnztzdkykhsccgkwtqzckmsynbcrxqbjyfaxpzzedzcjykbcjwhyjbqzzywnyszptdkzpfpbaztklqnhbbzptpptyzzybhn"
161 | "ydcpzmmcycqmcjfzzdcmnlfpbplngqjtbttajzpzbbdnjkljqylnbzqhksjznggqstzkcxchpzsnbcgzkddzqanzgjkdrtlzldwj"
162 | "njzlywtxndjzjhxnatncbgtzcsskmljpjytsnwxcfjwjjtkhtzplbhsnjssyjbhbjyzlstlsbjhdnwqpslmmfbjdwajyzccjtbnn"
163 | "nzwxxcdslqgdsdpdzgjtqqpsqlyyjzlgyhsdlctcbjtktyczjtqkbsjlgnnzdncsgpynjzjjyyknhrpwszxmtncszzyshbyhyzax"
164 | "ywkcjtllckjjtjhgcssxyqyczbynnlwqcglzgjgqyqcczssbcrbcskydznxjsqgxssjmecnstjtpbdlthzwxqwqczexnqczgwesg"
165 | "ssbybstscslccgbfsdqnzlccglllzghzcthcnmjgyzazcmsksstzmmzckbjygqljyjppldxrkzyxccsnhshhdznlzhzjjcddcbcj"
166 | "xlbfqbczztpqdnnxljcthqzjgylklszzpcjdscqjhjqkdxgpbajynnsmjtzdxlcjyryynhjbngzjkmjxltbsllrzpylssznxjhll"
167 | "hyllqqzqlsymrcncxsljmlzltzldwdjjllnzggqxppskyggggbfzbdkmwggcxmcgdxjmcjsdycabxjdlnbcddygskydqdxdjjyxh"
168 | "saqazdzfslqxxjnqzylblxxwxqqzbjzlfbblylwdsljhxjyzjwtdjcyfqzqzzdzsxzzqlzcdzfxhwspynpqzmlpplffxjjnzzyls"
169 | "jnyqzfpfzgsywjjjhrdjzzxtxxglghtdxcskyswmmtcwybazbjkshfhgcxmhfqhyxxyzftsjyzbxyxpzlchmzmbxhzzssyfdmncw"
170 | "dabazlxktcshhxkxjjzjsthygxsxyyhhhjwxkzxssbzzwhhhcwtzzzpjxsyxqqjgzyzawllcwxznxgyxyhfmkhydwsqmnjnaycys"
171 | "pmjkgwcqhylajgmzxhmmcnzhbhxclxdjpltxyjkdyylttxfqzhyxxsjbjnayrsmxyplckdnyhlxrlnllstycyyqygzhhsccsmcct"
172 | "zcxhyqfpyyrpbflfqnntszlljmhwtcjqyzwtlnmlmdwmbzzsnzrbpdddlqjjbxtcsnzqqygwcsxfwzlxccrszdzmcyggdyqsgtnn"
173 | "nlsmymmsyhfbjdgyxccpshxczcsbsjyygjmpbwaffyfnxhydxzylremzgzzyndsznlljcsqfnxxkptxzgxjjgbmyyssnbtylbnlh"
174 | "bfzdcyfbmgqrrmzszxysjtznnydzzcdgnjafjbdknzblczszpsgcycjszlmnrznbzzldlnllysxsqzqlcxzlsgkbrxbrbzcycxzj"
175 | "zeeyfgklzlnyhgzcgzlfjhgtgwkraajyzkzqtsshjjxdzyznynnzyrzdqqhgjzxsszbtkjbbfrtjxllfqwjgclqtymblpzdxtzag"
176 | "bdhzzrbgjhwnjtjxlkscfsmwlldcysjtxkzscfwjlbnntzlljzllqblcqmqqcgcdfpbphzczjlpyyghdtgwdxfczqyyyqysrclqz"
177 | "fklzzzgffcqnwglhjycjjczlqzzyjbjzzbpdcsnnjgxdqnknlznnnnpsntsdyfwwdjzjysxyyczcyhzwbbyhxrylybhkjksfxtjj"
178 | "mmchhlltnyymsxxyzpdjjycsycwmdjjkqyrhllngpngtlyycljnnnxjyzfnmlrgjjtyzbsyzmsjyjhgfzqmsyxrszcytlrtqzsst"
179 | "kxgqkgsptgxdnjsgcqcqhmxggztqydjjznlbznxqlhyqgggthqscbyhjhhkyygkggcmjdzllcclxqsftgjslllmlcskctbljszsz"
180 | "mmnytpzsxqhjcnnqnyexzqzcpshkzzyzxxdfgmwqrllqxrfztlystctmjcsjjthjnxtnrztzfqrhcgllgcnnnnjdnlnnytsjtlny"
181 | "xsszxcgjzyqpylfhdjsbbdczgjjjqzjqdybssllcmyttmqnbhjqmnygjyeqyqmzgcjkpdcnmyzgqllslnclmholzgdylfzslncnz"
182 | "lylzcjeshnyllnxnjxlyjyyyxnbcljsswcqqnnyllzldjnllzllbnylnqchxyyqoxccqkyjxxxyklksxeyqhcqkkkkcsnyxxyqxy"
183 | "gwtjohthxpxxhsnlcykychzzcbwqbbwjqcscszsslcylgddsjzmmymcytsdsxxscjpqqsqylyfzychdjynywcbtjsydchcyddjlb"
184 | "djjsodzyqyskkyxdhhgqjyohdyxwgmmmazdybbbppbcmnnpnjzsmtxerxjmhqdntpjdcbsnmssythjtslmltrcplzszmlqdsdmjm"
185 | "qpnqdxcfrnnfsdqqyxhyaykqyddlqyyysszbydslntfgtzqbzmchdhczcwfdxtmqqsphqwwxsrgjcwnntzcqmgwqjrjhtqjbbgwz"
186 | "fxjhnqfxxqywyyhyscdydhhqmrmtmwctbszppzzglmzfollcfwhmmsjzttdhlmyffytzzgzyskjjxqyjzqbhmbzclyghgfmshpcf"
187 | "zsnclpbqsnjyzslxxfpmtyjygbxlldlxpzjyzjyhhzcywhjylsjexfszzywxkzjlnadymlymqjpwxxhxsktqjezrpxxzghmhwqpw"
188 | "qlyjjqjjzszcnhjlchhnxjlqwzjhbmzyxbdhhypylhlhlgfwlcfyytlhjjcwmscpxstkpnhjxsntyxxtestjctlsslstdlllwwyh"
189 | "dnrjzsfgxssyczykwhtdhwjglhtzdqdjzxxqgghltzphcsqfclnjtclzpfstpdynylgmjllycqhynspchylhqyqtmzymbywrfqyk"
190 | "jsyslzdnjmpxyyssrhzjnyqtqdfzbwwdwwrxcwggyhxmkmyyyhmxmzhnksepmlqqmtcwctmxmxjpjjhfxyyzsjzhtybmstsyjznq"
191 | "jnytlhynbyqclcycnzwsmylknjxlggnnpjgtysylymzskttwlgsmzsylmpwlcwxwqcssyzsyxyrhssntsrwpccpwcmhdhhxzdzyf"
192 | "jhgzttsbjhgyglzysmyclllxbtyxhbbzjkssdmalhhycfygmqypjyjqxjllljgclzgqlycjcctotyxmtmshllwlqfxymzmklpszz"
193 | "cxhkjyclctyjcyhxsgyxnnxlzwpyjpxhjwpjpwxqqxlxsdhmrslzzydwdtcxknstzshbsccstplwsscjchjlcgchssphylhfhhxj"
194 | "sxallnylmzdhzxylsxlmzykcldyahlcmddyspjtqjzlngjfsjshctsdszlblmssmnyymjqbjhrzwtyydchjljapzwbgqxbkfnbjd"
195 | "llllyylsjydwhxpsbcmljpscgbhxlqhyrljxyswxhhzlldfhlnnymjljyflyjycdrjlfsyzfsllcqyqfgqyhnszlylmdtdjcnhbz"
196 | "llnwlqxygyyhbmgdhxxnhlzzjzxczzzcyqzfngwpylcpkpykpmclgkdgxzgxwqbdxzzkzfbddlzxjtpjpttbythzzdwslcpnhslt"
197 | "jxxqlhyxxxywzyswttzkhlxzxzpyhgzhknfsyhntjrnxfjcpjztwhplshfcrhnslxxjxxyhzqdxqwnnhyhmjdbflkhcxcwhjfyjc"
198 | "fpqcxqxzyyyjygrpynscsnnnnchkzdyhflxxhjjbyzwttxnncyjjymswyxqrmhxzwfqsylznggbhyxnnbwttcsybhxxwxyhhxyxn"
199 | "knyxmlywrnnqlxbbcljsylfsytjzyhyzawlhorjmnsczjxxxyxchcyqryxqzddsjfslyltsffyxlmtyjmnnyyyxltzcsxqclhzxl"
200 | "wyxzhnnlrxkxjcdyhlbrlmbrdlaxksnlljlyxxlynrylcjtgncmtlzllcyzlpzpzyawnjjfybdyyzsepckzzqdqpbpsjpdyttbdb"
201 | "bbyndycncpjmtmlrmfmmrwyfbsjgygsmdqqqztxmkqwgxllpjgzbqrdjjjfpkjkcxbljmswldtsjxldlppbxcwkcqqbfqbccajzg"
202 | "mykbhyhhzykndqzybpjnspxthlfpnsygyjdbgxnhhjhzjhstrstldxskzysybmxjlxyslbzyslzxjhfybqnbylljqkygzmcyzzym"
203 | "ccslnlhzhwfwyxzmwyxtynxjhbyymcysbmhysmydyshnyzchmjjmzcaahcbjbbhblytylsxsnxgjdhkxxtxxnbhnmlngsltxmrhn"
204 | "lxqqxmzllyswqgdlbjhdcgjyqyymhwfmjybbbyjyjwjmdpwhxqldyapdfxxbcgjspckrssyzjmslbzzjfljjjlgxzgyxyxlszqkx"
205 | "bexyxhgcxbpndyhwectwwcjmbtxchxyqqllxflyxlljlssnwdbzcmyjclwswdczpchqekcqbwlcgydblqppqzqfnqdjhymmcxtxd"
206 | "rmzwrhxcjzylqxdyynhyyhrslnrsywwjjymtltllgtqcjzyabtckzcjyccqlysqxalmzynywlwdnzxqdllqshgpjfjljnjabcqzd"
207 | "jgthhsstnyjfbswzlxjxrhgldlzrlzqzgsllllzlymxxgdzhgbdphzpbrlwnjqbpfdwonnnhlypcnjccndmbcpbzzncyqxldomzb"
208 | "lzwpdwyygdstthcsqsccrsssyslfybnntyjszdfndpdhtqzmbqlxlcmyffgtjjqwftmnpjwdnlbzcmmcngbdzlqlpnfhyymjylsd"
209 | "chdcjwjcctljcldtljjcbddpndsszycndbjlggjzxsxnlycybjjxxcbylzcfzppgkcxqdzfztjjfjdjxzbnzyjqctyjwhdyczhym"
210 | "djxttmpxsplzcdwslshxypzgtfmlcjtacbbmgdewycyzxdszjyhflystygwhkjyylsjcxgywjcbllcsnddbtzbsclyzczzssqdll"
211 | "mjyyhfllqllxfdyhabxggnywyypllsdldllbjcyxjznlhljdxyyqytdlllbngpfdfbbqbzzmdpjhgclgmjjpgaehhbwcqxajhhhz"
212 | "chxyphjaxhlphjpgpzjqcqzgjjzzgzdmqyybzzphyhybwhazyjhykfgdpfqsdlzmljxjpgalxzdaglmdgxmmzqwtxdxxpfdmmssy"
213 | "mpfmdmmkxksyzyshdzkjsysmmzzzmdydyzzczxbmlstmdyemxckjmztyymzmzzmsshhdccjewxxkljsthwlsqlyjzllsjssdppmh"
214 | "nlgjczyhmxxhgncjmdhxtkgrmxfwmckmwkdcksxqmmmszzydkmsclcmpcjmhrpxqpzdsslcxkyxtwlkjyahzjgzjwcjnxyhmmbml"
215 | "gjxmhlmlgmxctkzmjlyscjsyszhsyjzjcdajzhbsdqjzgwtkqxfkdmsdjlfmnhkzqkjfeypzyszcdpynffmzqykttdzzefmzlbnp"
216 | "plplpbpszalltnlkckqzkgenjlwalkxydpxnhsxqnwqnkxqclhyxxmlnccwlymqyckynnlcjnszkpyzkcqzqljbdmdjhlasqlbyd"
217 | "wqlwdgbqcryddztjybkbwszdxdtnpjdtcnqnfxqqmgnseclstbhpwslctxxlpwydzklnqgzcqapllkqcylbqmqczqcnjslqzdjxl"
218 | "ddhpzqdljjxzqdjyzhhzlkcjqdwjppypqakjyrmpzbnmcxkllzllfqpylllmbsglzysslrsysqtmxyxzqzbscnysyztffmzzsmzq"
219 | "hzssccmlyxwtpzgxzjgzgsjzgkddhtqggzllbjdzlsbzhyxyzhzfywxytymsdnzzyjgtcmtnxqyxjscxhslnndlrytzlryylxqht"
220 | "xsrtzcgyxbnqqzfhykmzjbzymkbpnlyzpblmcnqyzzzsjztjctzhhyzzjrdyzhnfxklfzslkgjtctssyllgzrzbbjzzklpkbczys"
221 | "nnyxbjfbnjzzxcdwlzyjxzzdjjgggrsnjkmsmzjlsjywqsnyhqjsxpjztnlsnshrnynjtwchglbnrjlzxwjqxqkysjycztlqzybb"
222 | "ybyzjqdwgyzcytjcjxckcwdkkzxsnkdnywwyyjqyytlytdjlxwkcjnklccpzcqqdzzqlcsfqchqqgssmjzzllbjjzysjhtsjdysj"
223 | "qjpdszcdchjkjzzlpycgmzndjxbsjzzsyzyhgxcpbjydssxdzncglqmbtsfcbfdzdlznfgfjgfsmpnjqlnblgqcyyxbqgdjjqsrf"
224 | "kztjdhczklbsdzcfytplljgjhtxzcsszzxstjygkgckgynqxjplzbbbgcgyjzgczqszlbjlsjfzgkqqjcgycjbzqtldxrjnbsxxp"
225 | "zshszycfwdsjjhxmfczpfzhqhqmqnknlyhtycgfrzgnqxcgpdlbzcsczqlljblhbdcypscppdymzzxgyhckcpzjgslzlnscnsldl"
226 | "xbmsdlddfjmkdqdhslzxlsznpqpgjdlybdskgqlbzlnlkyyhzttmcjnqtzzfszqktlljtyyllnllqyzqlbdzlslyyzxmdfszsnxl"
227 | "xznczqnbbwskrfbcylctnblgjpmczzlstlxshtzcyzlzbnfmqnlxflcjlyljqcbclzjgnsstbrmhxzhjzclxfnbgxgtqncztmsfz"
228 | "kjmssncljkbhszjntnlzdntlmmjxgzjyjczxyhyhwrwwqnztnfjscpyshzjfyrdjsfscjzbjfzqzchzlxfxsbzqlzsgyftzdcszx"
229 | "zjbjpszkjrhxjzcgbjkhcggtxkjqglxbxfgtrtylxqxhdtsjxhjzjjcmzlcqsbtxwqgxtxxhxftsdkfjhzyjfjxnzldlllcqsqqz"
230 | "qwqxswqtwgwbzcgcllqzbclmqjtzgzyzxljfrmyzflxnsnxxjkxrmjdzdmmyxbsqbhgzmwfwygmjlzbyytgzyccdjyzxsngnyjyz"
231 | "nbgpzjcqsyxsxrtfyzgrhztxszzthcbfclsyxzlzqmzlmplmxzjssfsbysmzqhxxnxrxhqzzzsslyflczjrcrxhhzxqndshxsjjh"
232 | "qcjjbcynsysxjbqjpxzqplmlxzkyxlxcnlcycxxzzlxdlllmjyhzxhyjwkjrwyhcpsgnrzlfzwfzznsxgxflzsxzzzbfcsyjdbrj"
233 | "krdhhjxjljjtgxjxxstjtjxlyxqfcsgswmsbctlqzzwlzzkxjmltmjyhsddbxgzhdlbmyjfrzfcgclyjbpmlysmsxlszjqqhjzfx"
234 | "gfqfqbphngyyqxgztnqwyltlgwgwwhnlfmfgzjmgmgbgtjflyzzgzyzaflsspmlbflcwbjztljjmzlpjjlymqtmyyyfbgygqzgly"
235 | "zdxqyxrqqqhsxyyqxygjtyxfsfsllgnqcygycwfhcccfxpylypllzqxxxxxqqhhsshjzcftsczjxspzwhhhhhapylqnlpqafyhxd"
236 | "ylnkmzqgggddesrenzltzgchyppcsqjjhclljtolnjpzljlhymhezdydsqycddhgznndzclzywllznteydgnlhslpjjbdgwxpcnn"
237 | "tycklkclwkllcasstknzdnnjttlyyzssysszzryljqkcgdhhyrxrzydgrgcwcgzqffbppjfzynakrgywyjpqxxfkjtszzxswzddf"
238 | "bbqtbgtzkznpzfpzxzpjszbmqhkyyxyldkljnypkyghgdzjxxeaxpnznctzcmxcxmmjxnkszqnmnlwbwwqjjyhclstmcsxnjcxxt"
239 | "pcnfdtnnpglllzcjlspblpgjcdtnjjlyarscffjfqwdpgzdwmrzzcgodaxnssnyzrestyjwjyjdbcfxnmwttbqlwstszgybljpxg"
240 | "lbnclgpcbjftmxzljylzxcltpnclcgxtfzjshcrxsfysgdkntlbyjcyjllstgqcbxnhzxbxklylhzlqzlnzcqwgzlgzjncjgcmnz"
241 | "zgjdzxtzjxycyycxxjyyxjjxsssjstsstdppghtcsxwzdcsynptfbchfbblzjclzzdbxgcjlhpxnfzflsyltnwbmnjhszbmdnbcy"
242 | "sccldnycndqlyjjhmqllcsgljjsyfpyyccyltjantjjpwycmmgqyysxdxqmzhszxbftwwzqswqrfkjlzjqqyfbrxjhhfwjgzyqac"
243 | "myfrhcyybynwlpexcczsyyrlttdmqlrkmpbgmyyjprkznbbsqyxbhyzdjdnghpmfsgbwfzmfqmmbzmzdcgjlnnnxyqgmlrygqccy"
244 | "xzlwdkcjcggmcjjfyzzjhycfrrcmtznzxhkqgdjxccjeascrjthpljlrzdjrbcqhjdnrhylyqjsymhzydwcdfryhbbydtssccwbx"
245 | "glpzmlzjdqsscfjmmxjcxjytycghycjwynsxlfemwjnmkllswtxhyyyncmmcyjdqdjzglljwjnkhpzggflccsczmcbltbhbqjxqd"
246 | "jpdjztghglfjawbzyzjltstdhjhctcbchflqmpwdshyytqwcnntjtlnnmnndyyyxsqkxwyyflxxnzwcxypmaelyhgjwzzjbrxxaq"
247 | "jfllpfhhhytzzxsgqjmhspgdzqwbwpjhzjdyjcqwxkthxsqlzyymysdzgnqckknjlwpnsyscsyzlnmhqsyljxbcxtlhzqzpcycyk"
248 | "pppnsxfyzjjrcemhszmnxlxglrwgcstlrsxbygbzgnxcnlnjlclynymdxwtzpalcxpqjcjwtcyyjlblxbzlqmyljbghdslssdmxm"
249 | "bdczsxyhamlczcpjmcnhjyjnsykchskqmczqdllkablwjqsfmocdxjrrlyqchjmybyqlrhetfjzfrfksryxfjdwtsxxywsqjysly"
250 | "xwjhsdlxyyxhbhawhwjcxlmyljcsqlkydttxbzslfdxgxsjkhsxxybssxdpwncmrptqzczenygcxqfjxkjbdmljzmqqxnoxslyxx"
251 | "lylljdzptymhbfsttqqwlhsgynlzzalzxclhtwrrqhlstmypyxjjxmnsjnnbryxyjllyqyltwylqyfmlkljdnlltfzwkzhljmlhl"
252 | "jnljnnlqxylmbhhlnlzxqchxcfxxlhyhjjgbyzzkbxscqdjqdsndzsygzhhmgsxcsymxfepcqwwrbpyyjqryqcyjhqqzyhmwffhg"
253 | "zfrjfcdbxntqyzpcyhhjlfrzgpbxzdbbgrqstlgdgylcqmgchhmfywlzyxkjlypjhsywmqqggzmnzjnsqxlqsyjtcbehsxfszfxz"
254 | "wfllbcyyjdytdthwzsfjmqqyjlmqsxlldttkghybfpwdyysqqrnqwlgwdebzwcyygcnlkjxtmxmyjsxhybrwfymwfrxyymxysctz"
255 | "ztfykmldhqdlgyjnlcryjtlpsxxxywlsbrrjwxhqybhtydnhhxmmywytycnnmnssccdalwztcpqpyjllqzyjswjwzzmmglmxclmx"
256 | "nzmxmzsqtzppjqblpgxjzhfljjhycjsrxwcxsncdlxsyjdcqzxslqyclzxlzzxmxqrjmhrhzjbhmfljlmlclqnldxzlllfyprgjy"
257 | "nxcqqdcmqjzzxhnpnxzmemmsxykynlxsxtljxyhwdcwdzhqyybgybcyscfgfsjnzdrzzxqxrzrqjjymcanhrjtldbpyzbstjhxxz"
258 | "ypbdwfgzzrpymnnkxcqbyxnbnfyckrjjcmjegrzgyclnnzdnkknsjkcljspgyyclqqjybzssqlllkjftbgtylcccdblsppfylgyd"
259 | "tzjqjzgkntsfcxbdkdxxhybbfytyhbclnnytgdhryrnjsbtcsnyjqhklllzslydxxwbcjqsbxnpjzjzjdzfbxxbrmladhcsnclbj"
260 | "dstblprznswsbxbcllxxlzdnzsjpynyxxyftnnfbhjjjgbygjpmmmmsszljmtlyzjxswxtyledqpjmpgqzjgdjlqjwjqllsdgjgy"
261 | "gmscljjxdtygjqjjjcjzcjgdzdshqgzjggcjhqxsnjlzzbxhsgzxcxyljxyxyydfqqjhjfxdhctxjyrxysqtjxyefyyssyxjxncy"
262 | "zxfxcsxszxyyschshxzzzgzzzgfjdldylnpzgsjaztyqzpbxcbdztzczyxxyhhscjshcggqhjhgxhsctmzmehyxgebtclzkkwytj"
263 | "zrslekestdbcyhqqsayxcjxwwgsphjszsdncsjkqcxswxfctynydpccczjqtcwjqjzzzqzljzhlsbhpydxpsxshhezdxfptjqyzc"
264 | "xhyaxncfzyyhxgnqmywntzsjbnhhgymxmxqcnssbcqsjyxxtyyhybcqlmmszmjzzllcogxzaajzyhjmchhcxzsxsdznleyjjzjbh"
265 | "zwjzsqtzpsxzzdsqjjjlnyazphhyysrnqzthzhnyjyjhdzxzlswclybzyecwcycrylchzhzydzydyjdfrjjhtrsqtxyxjrjhojyn"
266 | "xelxsfsfjzghpzsxzszdzcqzbyyklsgsjhczshdgqgxyzgxchxzjwyqwgyhksseqzzndzfkwyssdclzstsymcdhjxxyweyxczayd"
267 | "mpxmdsxybsqmjmzjmtjqlpjyqzcgqhyjhhhqxhlhdldjqcfdwbsxfzzyyschtytyjbhecxhjkgqfxbhyzjfxhwhbdzfyzbchpnpg"
268 | "dydmsxhkhhmamlnbyjtmpxejmcthqbzyfcgtyhwphftgzzezsbzegpbmdskftycmhbllhgpzjxzjgzjyxzsbbqsczzlzscstpgxm"
269 | "jsfdcczjzdjxsybzlfcjsazfgszlwbczzzbyztzynswyjgxzbdsynxlgzbzfygczxbzhzftpbgzgejbstgkdmfhyzzjhzllzzgjq"
270 | "zlsfdjsscbzgpdlfzfzszyzyzsygcxsnxxchczxtzzljfzgqsqqxcjqccccdjcdszzyqjccgxztdlgscxzsyjjqtcclqdqztqchq"
271 | "qyzynzzzpbkhdjfcjfztypqyqttynlmbdktjcpqzjdzfpjsbnjlgyjdxjdcqkzgqkxclbzjtcjdqbxdjjjstcxnxbxqmslyjcxnt"
272 | "jqwwcjjnjjlllhjcwqtbzqqczczpzzdzyddcyzdzccjgtjfzdprntctjdcxtqzdtjnplzbcllctdsxkjzqdmzlbznbtjdcxfczdb"
273 | "czjjltqqpldckztbbzjcqdcjwynllzlzccdwllxwzlxrxntqjczxkjlsgdnqtddglnlajjtnnynkqlldzntdnycygjwyxdxfrsqs"
274 | "tcdenqmrrqzhhqhdldazfkapbggpzrebzzykyqspeqjjglkqzzzjlysyhyzwfqznlzzlzhwcgkypqgnpgblplrrjyxcccgyhsfzf"
275 | "wbzywtgzxyljczwhncjzplfflgskhyjdeyxhlpllllcygxdrzelrhgklzzyhzlyqszzjzqljzflnbhgwlczcfjwspyxzlzlxgccp"
276 | "zbllcxbbbbnbbcbbcrnnzccnrbbnnldcgqyyqxygmqzwnzytyjhyfwtehznjywlccntzyjjcdedpwdztstnjhtymbjnyjzlxtsst"
277 | "phndjxxbyxqtzqddtjtdyztgwscszqflshlnzbcjbhdlyzjyckwtydylbnydsdsycctyszyyebgexhqddwnygyclxtdcystqnygz"
278 | "ascsszzdzlcclzrqxyywljsbymxshzdembbllyyllytdqyshymrqnkfkbfxnnsbychxbwjyhtqbpbsbwdzylkgzskyghqzjxhxjx"
279 | "gnljkzlyycdxlfwfghljgjybxblybxqpqgntzplncybxdjyqydymrbeyjyyhkxxstmxrczzjwxyhybmcflyzhqyzfwxdbxbcwzms"
280 | "lpdmyckfmzklzcyqycclhxfzlydqzpzygyjyzmdxtzfnnyttqtzhgsfcdmlccytzxjcytjmkslpzhysnwllytpzctzccktxdhxxt"
281 | "qcyfksmqccyyazhtjplylzlyjbjxtfnyljyynrxcylmmnxjsmybcsysslzylljjgyldzdlqhfzzblfndsqkczfyhhgqmjdsxyctt"
282 | "xnqnjpyybfcjtyyfbnxejdgyqbjrcnfyyqpghyjsyzngrhtknlnndzntsmgklbygbpyszbydjzsstjztsxzbhbscsbzczptqfzlq"
283 | "flypybbjgszmnxdjmtsyskkbjtxhjcegbsmjyjzcstmljyxrczqscxxqpyzhmkyxxxjcljyrmyygadyskqlnadhrskqxzxztcggz"
284 | "dlmlwxybwsyctbhjhcfcwzsxwwtgzlxqshnyczjxemplsrcgltnzntlzjcyjgdtclglbllqpjmzpapxyzlaktkdwczzbncctdqqz"
285 | "qyjgmcdxltgcszlmlhbglkznnwzndxnhlnmkydlgxdtwcfrjerctzhydxykxhwfzcqshknmqqhzhhymjdjskhxzjzbzzxympajnm"
286 | "ctbxlsxlzynwrtsqgscbptbsgzwyhtlkssswhzzlyytnxjgmjrnsnnnnlskztxgxlsammlbwldqhylakqcqctmycfjbslxclzjcl"
287 | "xxknbnnzlhjphqplsxsckslnhpsfqcytxjjzljldtzjjzdlydjntptnndskjfsljhylzqqzlbthydgdjfdbyadxdzhzjnthqbykn"
288 | "xjjqczmlljzkspldsclbblnnlelxjlbjycxjxgcnlcqplzlznjtsljgyzdzpltqcssfdmnycxgbtjdcznbgbqyqjwgkfhtnbyqzq"
289 | "gbkpbbyzmtjdytblsqmbsxtbnpdxklemyycjynzdtldykzzxtdxhqshygmzsjycctayrzlpwltlkxslzcggexclfxlkjrtlqjaqz"
290 | "ncmbqdkkcxglczjzxjhptdjjmzqykqsecqzdshhadmlzfmmzbgntjnnlhbyjbrbtmlbyjdzxlcjlpldlpcqdhlhzlycblcxccjad"
291 | "qlmzmmsshmybhbnkkbhrsxxjmxmdznnpklbbrhgghfchgmnklltsyyycqlcskymyehywxnxqywbawykqldnntndkhqcgdqktgpkx"
292 | "hcpdhtwnmssyhbwcrwxhjmkmzngwtmlkfghkjyldyycxwhyyclqhkqhtdqkhffldxqwytyydesbpkyrzpjfyyzjceqdzzdlattpb"
293 | "fjllcxdlmjsdxegwgsjqxcfbssszpdyzcxznyxppzydlyjccpltxlnxyzyrscyyytylwwndsahjsygyhgywwaxtjzdaxysrltdps"
294 | "syxfnejdxyzhlxlllzhzsjnyqyqyxyjghzgjcyjchzlycdshhsgczyjscllnxzjjyyxnfsmwfpyllyllabmddhwzxjmcxztzpmlq"
295 | "chsfwzynctlndywlslxhymmylmbwwkyxyaddxylldjpybpwnxjmmmllhafdllaflbnhhbqqjqzjcqjjdjtffkmmmpythygdrjrdd"
296 | "wrqjxnbysrmzdbyytbjhpymyjtjxaahggdqtmystqxkbtzbkjlxrbyqqhxmjjbdjntgtbxpgbktlgqxjjjcdhxqdwjlwrfmjgwqh"
297 | "cnrxswgbtgygbwhswdwrfhwytjjxxxjyzyslphyypyyxhydqpxshxyxgskqhywbdddpplcjlhqeewjgsyykdpplfjthkjltcyjhh"
298 | "jttpltzzcdlyhqkcjqysteeyhkyzyxxyysddjkllpymqyhqgxqhzrhbxpllnqydqhxsxxwgdqbshyllpjjjthyjkyphthyyktyez"
299 | "yenmdshlzrpqfbnfxzbsftlgxsjbswyysksflxlpplbbblnsfbfyzbsjssylpbbffffsscjdstjsxtryjcyffsyzyzbjtlctsbsd"
300 | "hrtjjbytcxyyeylycbnebjdsysyhgsjzbxbytfzwgenhhhthjhhxfwgcstbgxklstyymtmbyxjskzscdyjrcythxzfhmymcxlzns"
301 | "djtxtxrycfyjsbsdyerxhljxbbdeynjghxgckgscymblxjmsznskgxfbnbbthfjyafxwxfbxmyfhdttcxzzpxrsywzdlybbktyqw"
302 | "qjbzypzjznjpzjlztfysbttslmptzrtdxqsjehbnylndxljsqmlhtxtjecxalzzspktlzkqqyfsyjywpcpqfhjhytqxzkrsgtksq"
303 | "czlptxcdyyzsslzslxlzmacpcqbzyxhbsxlzdltztjtylzjyytbzypltxjsjxhlbmytxcqrblzssfjzztnjytxmyjhlhpblcyxqj"
304 | "qqkzzscpzkswalqsplczzjsxgwwwygyatjbbctdkhqhkgtgpbkqyslbxbbckbmllndzstbklggqkqlzbkktfxrmdkbftpzfrtppm"
305 | "ferqnxgjpzsstlbztpszqzsjdhljqlzbpmsmmsxlqqnhknblrddnhxdkddjcyyljfqgzlgsygmjqjkhbpmxyxlytqwlwjcpbmjxc"
306 | "yzydrjbhtdjyeqshtmgsfyplwhlzffnynnhxqhpltbqpfbjwjdbygpnxtbfzjgnnntjshxeawtzylltyqbwjpgxghnnkndjtmszs"
307 | "qynzggnwqtfhclssgmnnnnynzqqxncjdqgzdlfnykljcjllzlmzznnnnsshthxjlzjbbhqjwwycrdhlyqqjbeyfsjhthnrnwjhwp"
308 | "slmssgzttygrqqwrnlalhmjtqjsmxqbjjzjqzyzkxbjqxbjxshzssfglxmxnxfghkzszggslcnnarjxhnlllmzxelglxydjytlfb"
309 | "kbpnlyzfbbhptgjkwetzhkjjxzxxglljlstgshjjyqlqzfkcgnndjsszfdbctwwseqfhqjbsaqtgypjlbxbmmywxgslzhglsgnyf"
310 | "ljbyfdjfngsfmbyzhqffwjsyfyjjphzbyyzffwotjnlmftwlbzgyzqxcdjygzyyryzynyzwegazyhjjlzrthlrmgrjxzclnnnljj"
311 | "yhtbwjybxxbxjjtjteekhwslnnlbsfazpqqbdlqjjtyyqlyzkdksqjnejzldqcgjqnnjsncmrfqthtejmfctyhypymhydmjncfgy"
312 | "yxwshctxrljgjzhzcyyyjltkttntmjlzclzzayyoczlrlbszywjytsjyhbyshfjlykjxxtmzyyltxxypslqyjzyzyypnhmymdyyl"
313 | "blhlsyygqllnjjymsoycbzgdlyxylcqyxtszegxhzglhwbljheyxtwqmakbpqcgyshhegqcmwyywljyjhyyzlljjylhzyhmgsljl"
314 | "jxcjjyclycjbcpzjzjmmwlcjlnqljjjlxyjmlszljqlycmmgcfmmfpqqmfxlqmcffqmmmmhnznfhhjgtthxkhslnchhyqzxtmmqd"
315 | "cydyxyqmyqylddcyaytazdcymdydlzfffmmycqcwzzmabtbyctdmndzggdftypcgqyttssffwbdttqssystwnjhjytsxxylbyyhh"
316 | "whxgzxwznnqzjzjjqjccchykxbzszcnjtllcqxynjnckycynccqnxyewyczdcjycchyjlbtzyycqwlpgpyllgktltlgkgqbgychj"
317 | "xy";
318 |
319 | @end
320 |
--------------------------------------------------------------------------------