diff --git a/doc/02_陈家儒_质量分析报告/gruop/ad_hoc_rules.pb b/doc/02_陈家儒_质量分析报告/gruop/ad_hoc_rules.pb
new file mode 100644
index 0000000..e69de29
diff --git a/doc/02_陈家儒_质量分析报告/gruop/analyses.pb b/doc/02_陈家儒_质量分析报告/gruop/analyses.pb
new file mode 100644
index 0000000..379a230
--- /dev/null
+++ b/doc/02_陈家儒_质量分析报告/gruop/analyses.pb
@@ -0,0 +1 @@
+-�����0"not providedBAYczA7mil3hmLEGh5dOa
\ No newline at end of file
diff --git a/doc/02_陈家儒_质量分析报告/gruop/branches.pb b/doc/02_陈家儒_质量分析报告/gruop/branches.pb
new file mode 100644
index 0000000..8ff32ba
--- /dev/null
+++ b/doc/02_陈家儒_质量分析报告/gruop/branches.pb
@@ -0,0 +1 @@
+:AYctaK4aibojJVNiyQeUAYctaK4aibojJVNiyQeU"main*BRANCH
\ No newline at end of file
diff --git a/doc/02_陈家儒_质量分析报告/gruop/components.pb b/doc/02_陈家儒_质量分析报告/gruop/components.pb
new file mode 100644
index 0000000..51b16d2
--- /dev/null
+++ b/doc/02_陈家儒_质量分析报告/gruop/components.pb
@@ -0,0 +1,15 @@
+igruopgruop*PRJ2TRKBgruopRAYctaK4aibojJVNiyQeUb.r.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�gruop:src/mainsrc/main*DIR2DIRBsrc/mainJsrc/mainRAYczA7pll3hmLEGh5dP7b.AYctaK4aibojJVNiyQeU.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�"gruop:src/main/AndroidManifest.xmlAndroidManifest.xml*FIL2FIL:xmlBsrc/main/AndroidManifest.xmlJsrc/main/AndroidManifest.xmlRAYczA7pll3hmLEGh5dObb+.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�gruop:src/main/resres*DIR2DIRBsrc/main/resJsrc/main/resRAYczA7pll3hmLEGh5dPJb+.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�gruop:src/main/res/valuesvalues*DIR2DIRBsrc/main/res/valuesJsrc/main/res/valuesRAYczA7pll3hmLEGh5dOhb@.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�$gruop:src/main/res/values/dimens.xml
+dimens.xml*FIL2FIL:xmlBsrc/main/res/values/dimens.xmlJsrc/main/res/values/dimens.xmlRAYczA7pll3hmLEGh5dOcbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dOh.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�$gruop:src/main/res/values/styles.xml
+styles.xml*FIL2FIL:xmlBsrc/main/res/values/styles.xmlJsrc/main/res/values/styles.xmlRAYczA7pll3hmLEGh5dOdbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dOh.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�$gruop:src/main/res/values/arrays.xml
+arrays.xml*FIL2FIL:xmlBsrc/main/res/values/arrays.xmlJsrc/main/res/values/arrays.xmlRAYczA7pll3hmLEGh5dOebU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dOh.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�	%gruop:src/main/res/values/strings.xmlstrings.xml*FIL2FIL:xmlBsrc/main/res/values/strings.xmlJsrc/main/res/values/strings.xmlRAYczA7pll3hmLEGh5dOfbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dOh.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�
+$gruop:src/main/res/values/colors.xml
+colors.xml*FIL2FIL:xmlBsrc/main/res/values/colors.xmlJsrc/main/res/values/colors.xmlRAYczA7pll3hmLEGh5dOgbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dOh.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�gruop:src/main/res/layoutlayout*DIR2DIRBsrc/main/res/layoutJsrc/main/res/layoutRAYczA7pll3hmLEGh5dOwb@.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�'gruop:src/main/res/layout/widget_2x.xml
widget_2x.xml*FIL2FIL:xmlB!src/main/res/layout/widget_2x.xmlJ!src/main/res/layout/widget_2x.xmlRAYczA7pll3hmLEGh5dOibU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dOw.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�
2gruop:src/main/res/layout/account_dialog_title.xmlaccount_dialog_title.xml*FIL2FIL:xmlB,src/main/res/layout/account_dialog_title.xmlJ,src/main/res/layout/account_dialog_title.xmlRAYczA7pll3hmLEGh5dOjbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dOw.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�-gruop:src/main/res/layout/datetime_picker.xmldatetime_picker.xml*FIL2FIL:xmlB'src/main/res/layout/datetime_picker.xmlJ'src/main/res/layout/datetime_picker.xmlRAYczA7pll3hmLEGh5dOkbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dOw.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�.gruop:src/main/res/layout/add_account_text.xmladd_account_text.xml*FIL2FIL:xmlB(src/main/res/layout/add_account_text.xmlJ(src/main/res/layout/add_account_text.xmlRAYczA7pll3hmLEGh5dOlbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dOw.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�'gruop:src/main/res/layout/note_item.xml
note_item.xml*FIL2FIL:xmlB!src/main/res/layout/note_item.xmlJ!src/main/res/layout/note_item.xmlRAYczA7pll3hmLEGh5dOmbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dOw.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�.gruop:src/main/res/layout/folder_list_item.xmlfolder_list_item.xml*FIL2FIL:xmlB(src/main/res/layout/folder_list_item.xmlJ(src/main/res/layout/folder_list_item.xmlRAYczA7pll3hmLEGh5dOnbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dOw.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�.gruop:src/main/res/layout/dialog_edit_text.xmldialog_edit_text.xml*FIL2FIL:xmlB(src/main/res/layout/dialog_edit_text.xmlJ(src/main/res/layout/dialog_edit_text.xmlRAYczA7pll3hmLEGh5dOobU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dOw.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�-gruop:src/main/res/layout/settings_header.xmlsettings_header.xml*FIL2FIL:xmlB'src/main/res/layout/settings_header.xmlJ'src/main/res/layout/settings_header.xmlRAYczA7pll3hmLEGh5dOpbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dOw.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�5gruop:src/main/res/layout/note_list_dropdown_menu.xmlnote_list_dropdown_menu.xml*FIL2FIL:xmlB/src/main/res/layout/note_list_dropdown_menu.xmlJ/src/main/res/layout/note_list_dropdown_menu.xmlRAYczA7pll3hmLEGh5dOqbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dOw.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�.gruop:src/main/res/layout/note_list_footer.xmlnote_list_footer.xml*FIL2FIL:xmlB(src/main/res/layout/note_list_footer.xmlJ(src/main/res/layout/note_list_footer.xmlRAYczA7pll3hmLEGh5dOrbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dOw.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�'gruop:src/main/res/layout/note_list.xml
note_list.xml*FIL2FIL:xmlB!src/main/res/layout/note_list.xmlJ!src/main/res/layout/note_list.xmlRAYczA7pll3hmLEGh5dOsbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dOw.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�'gruop:src/main/res/layout/note_edit.xml
note_edit.xml*FIL2FIL:xmlB!src/main/res/layout/note_edit.xmlJ!src/main/res/layout/note_edit.xmlRAYczA7pll3hmLEGh5dOtbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dOw.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�'gruop:src/main/res/layout/widget_4x.xml
widget_4x.xml*FIL2FIL:xmlB!src/main/res/layout/widget_4x.xmlJ!src/main/res/layout/widget_4x.xmlRAYczA7pll3hmLEGh5dOubU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dOw.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�1gruop:src/main/res/layout/note_edit_list_item.xmlnote_edit_list_item.xml*FIL2FIL:xmlB+src/main/res/layout/note_edit_list_item.xmlJ+src/main/res/layout/note_edit_list_item.xmlRAYczA7pll3hmLEGh5dOvbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dOw.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�gruop:src/main/res/xmlxml*DIR2DIRBsrc/main/res/xmlJsrc/main/res/xmlRAYczA7pll3hmLEGh5dO1b@.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�)gruop:src/main/res/xml/widget_2x_info.xmlwidget_2x_info.xml*FIL2FIL:xmlB#src/main/res/xml/widget_2x_info.xmlJ#src/main/res/xml/widget_2x_info.xmlRAYczA7pll3hmLEGh5dOxbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dO1.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�&gruop:src/main/res/xml/preferences.xmlpreferences.xml*FIL2FIL:xmlB src/main/res/xml/preferences.xmlJ src/main/res/xml/preferences.xmlRAYczA7pll3hmLEGh5dOybU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dO1.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�%gruop:src/main/res/xml/searchable.xmlsearchable.xml*FIL2FIL:xmlBsrc/main/res/xml/searchable.xmlJsrc/main/res/xml/searchable.xmlRAYczA7pll3hmLEGh5dOzbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dO1.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�)gruop:src/main/res/xml/widget_4x_info.xmlwidget_4x_info.xml*FIL2FIL:xmlB#src/main/res/xml/widget_4x_info.xmlJ#src/main/res/xml/widget_4x_info.xmlRAYczA7pll3hmLEGh5dO0bU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dO1.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�gruop:src/main/res/menumenu*DIR2DIRBsrc/main/res/menuJsrc/main/res/menuRAYczA7pll3hmLEGh5dO9b@.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU� &gruop:src/main/res/menu/sub_folder.xmlsub_folder.xml*FIL2FIL:xmlB src/main/res/menu/sub_folder.xmlJ src/main/res/menu/sub_folder.xmlRAYczA7pll3hmLEGh5dO2bU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dO9.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�!-gruop:src/main/res/menu/note_list_options.xmlnote_list_options.xml*FIL2FIL:xmlB'src/main/res/menu/note_list_options.xmlJ'src/main/res/menu/note_list_options.xmlRAYczA7pll3hmLEGh5dO3bU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dO9.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�".gruop:src/main/res/menu/note_list_dropdown.xmlnote_list_dropdown.xml*FIL2FIL:xmlB(src/main/res/menu/note_list_dropdown.xmlJ(src/main/res/menu/note_list_dropdown.xmlRAYczA7pll3hmLEGh5dO4bU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dO9.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�#.gruop:src/main/res/menu/call_record_folder.xmlcall_record_folder.xml*FIL2FIL:xmlB(src/main/res/menu/call_record_folder.xmlJ(src/main/res/menu/call_record_folder.xmlRAYczA7pll3hmLEGh5dO5bU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dO9.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�$%gruop:src/main/res/menu/note_edit.xml
note_edit.xml*FIL2FIL:xmlBsrc/main/res/menu/note_edit.xmlJsrc/main/res/menu/note_edit.xmlRAYczA7pll3hmLEGh5dO6bU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dO9.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�%%gruop:src/main/res/menu/note_list.xml
note_list.xml*FIL2FIL:xmlBsrc/main/res/menu/note_list.xmlJsrc/main/res/menu/note_list.xmlRAYczA7pll3hmLEGh5dO7bU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dO9.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�&*gruop:src/main/res/menu/call_note_edit.xmlcall_note_edit.xml*FIL2FIL:xmlB$src/main/res/menu/call_note_edit.xmlJ$src/main/res/menu/call_note_edit.xmlRAYczA7pll3hmLEGh5dO8bU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dO9.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�' gruop:src/main/res/values-zh-rCN
values-zh-rCN*DIR2DIRBsrc/main/res/values-zh-rCNJsrc/main/res/values-zh-rCNRAYczA7pll3hmLEGh5dPAb@.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�(+gruop:src/main/res/values-zh-rCN/arrays.xml
+arrays.xml*FIL2FIL:xmlB%src/main/res/values-zh-rCN/arrays.xmlJ%src/main/res/values-zh-rCN/arrays.xmlRAYczA7pll3hmLEGh5dO-bU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dPA.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�),gruop:src/main/res/values-zh-rCN/strings.xmlstrings.xml*FIL2FIL:xmlB&src/main/res/values-zh-rCN/strings.xmlJ&src/main/res/values-zh-rCN/strings.xmlRAYczA7pll3hmLEGh5dO_bU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dPA.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�*gruop:src/main/res/colorcolor*DIR2DIRBsrc/main/res/colorJsrc/main/res/colorRAYczA7pll3hmLEGh5dPDb@.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�+0gruop:src/main/res/color/secondary_text_dark.xmlsecondary_text_dark.xml*FIL2FIL:xmlB*src/main/res/color/secondary_text_dark.xmlJ*src/main/res/color/secondary_text_dark.xmlRAYczA7pll3hmLEGh5dPBbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dPD.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�,.gruop:src/main/res/color/primary_text_dark.xmlprimary_text_dark.xml*FIL2FIL:xmlB(src/main/res/color/primary_text_dark.xmlJ(src/main/res/color/primary_text_dark.xmlRAYczA7pll3hmLEGh5dPCbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dPD.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�-gruop:src/main/res/drawabledrawable*DIR2DIRBsrc/main/res/drawableJsrc/main/res/drawableRAYczA7pll3hmLEGh5dPFb@.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�.(gruop:src/main/res/drawable/new_note.xmlnew_note.xml*FIL2FIL:xmlB"src/main/res/drawable/new_note.xmlJ"src/main/res/drawable/new_note.xmlRAYczA7pll3hmLEGh5dPEbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dPF.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�/ gruop:src/main/res/values-zh-rTW
values-zh-rTW*DIR2DIRBsrc/main/res/values-zh-rTWJsrc/main/res/values-zh-rTWRAYczA7pll3hmLEGh5dPIb@.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�0+gruop:src/main/res/values-zh-rTW/arrays.xml
+arrays.xml*FIL2FIL:xmlB%src/main/res/values-zh-rTW/arrays.xmlJ%src/main/res/values-zh-rTW/arrays.xmlRAYczA7pll3hmLEGh5dPGbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dPI.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�1,gruop:src/main/res/values-zh-rTW/strings.xmlstrings.xml*FIL2FIL:xmlB&src/main/res/values-zh-rTW/strings.xmlJ&src/main/res/values-zh-rTW/strings.xmlRAYczA7pll3hmLEGh5dPHbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dPJ.AYczA7pll3hmLEGh5dPI.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�2$gruop:src/main/java/net/micode/notesjava/net/micode/notes*DIR2DIRBsrc/main/java/net/micode/notesJsrc/main/java/net/micode/notesRAYczA7pll3hmLEGh5dP6b+.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�3+gruop:src/main/java/net/micode/notes/widgetwidget*DIR2DIRB%src/main/java/net/micode/notes/widgetJ%src/main/java/net/micode/notes/widgetRAYczA7pll3hmLEGh5dPNb@.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�4Fgruop:src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.javaNoteWidgetProvider_2x.java*FIL2FIL:javaB@src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.javaJ@src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.javaRAYczA7pll3hmLEGh5dPKbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPN.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�5Fgruop:src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.javaNoteWidgetProvider_4x.java*FIL2FIL:javaB@src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.javaJ@src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.javaRAYczA7pll3hmLEGh5dPLbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPN.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�6Cgruop:src/main/java/net/micode/notes/widget/NoteWidgetProvider.javaNoteWidgetProvider.java*FIL2FIL:javaB=src/main/java/net/micode/notes/widget/NoteWidgetProvider.javaJ=src/main/java/net/micode/notes/widget/NoteWidgetProvider.javaRAYczA7pll3hmLEGh5dPMbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPN.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�7*gruop:src/main/java/net/micode/notes/gtaskgtask*DIR2DIRB$src/main/java/net/micode/notes/gtaskJ$src/main/java/net/micode/notes/gtaskRAYczA7pll3hmLEGh5dPdb@.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�8/gruop:src/main/java/net/micode/notes/gtask/datadata*DIR2DIRB)src/main/java/net/micode/notes/gtask/dataJ)src/main/java/net/micode/notes/gtask/dataRAYczA7pll3hmLEGh5dPUbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPd.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�9<gruop:src/main/java/net/micode/notes/gtask/data/SqlData.javaSqlData.java*FIL2FIL:javaB6src/main/java/net/micode/notes/gtask/data/SqlData.javaJ6src/main/java/net/micode/notes/gtask/data/SqlData.javaRAYczA7pll3hmLEGh5dPObj.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPd.AYczA7pll3hmLEGh5dPU.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�:9gruop:src/main/java/net/micode/notes/gtask/data/Node.java	Node.java*FIL2FIL:javaB3src/main/java/net/micode/notes/gtask/data/Node.javaJ3src/main/java/net/micode/notes/gtask/data/Node.javaRAYczA7pll3hmLEGh5dPPbj.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPd.AYczA7pll3hmLEGh5dPU.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�;9gruop:src/main/java/net/micode/notes/gtask/data/Task.java	Task.java*FIL2FIL:javaB3src/main/java/net/micode/notes/gtask/data/Task.javaJ3src/main/java/net/micode/notes/gtask/data/Task.javaRAYczA7pll3hmLEGh5dPQbj.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPd.AYczA7pll3hmLEGh5dPU.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�<<gruop:src/main/java/net/micode/notes/gtask/data/SqlNote.javaSqlNote.java*FIL2FIL:javaB6src/main/java/net/micode/notes/gtask/data/SqlNote.javaJ6src/main/java/net/micode/notes/gtask/data/SqlNote.javaRAYczA7pll3hmLEGh5dPRbj.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPd.AYczA7pll3hmLEGh5dPU.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�==gruop:src/main/java/net/micode/notes/gtask/data/TaskList.java
TaskList.java*FIL2FIL:javaB7src/main/java/net/micode/notes/gtask/data/TaskList.javaJ7src/main/java/net/micode/notes/gtask/data/TaskList.javaRAYczA7pll3hmLEGh5dPSbj.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPd.AYczA7pll3hmLEGh5dPU.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�>=gruop:src/main/java/net/micode/notes/gtask/data/MetaData.java
MetaData.java*FIL2FIL:javaB7src/main/java/net/micode/notes/gtask/data/MetaData.javaJ7src/main/java/net/micode/notes/gtask/data/MetaData.javaRAYczA7pll3hmLEGh5dPTbj.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPd.AYczA7pll3hmLEGh5dPU.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�?4gruop:src/main/java/net/micode/notes/gtask/exception	exception*DIR2DIRB.src/main/java/net/micode/notes/gtask/exceptionJ.src/main/java/net/micode/notes/gtask/exceptionRAYczA7pll3hmLEGh5dPXbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPd.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�@Pgruop:src/main/java/net/micode/notes/gtask/exception/ActionFailureException.javaActionFailureException.java*FIL2FIL:javaBJsrc/main/java/net/micode/notes/gtask/exception/ActionFailureException.javaJJsrc/main/java/net/micode/notes/gtask/exception/ActionFailureException.javaRAYczA7pll3hmLEGh5dPVbj.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPd.AYczA7pll3hmLEGh5dPX.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�AQgruop:src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.javaNetworkFailureException.java*FIL2FIL:javaBKsrc/main/java/net/micode/notes/gtask/exception/NetworkFailureException.javaJKsrc/main/java/net/micode/notes/gtask/exception/NetworkFailureException.javaRAYczA7pll3hmLEGh5dPWbj.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPd.AYczA7pll3hmLEGh5dPX.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�B1gruop:src/main/java/net/micode/notes/gtask/remoteremote*DIR2DIRB+src/main/java/net/micode/notes/gtask/remoteJ+src/main/java/net/micode/notes/gtask/remoteRAYczA7pll3hmLEGh5dPcbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPd.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�CCgruop:src/main/java/net/micode/notes/gtask/remote/GTaskManager.javaGTaskManager.java*FIL2FIL:javaB=src/main/java/net/micode/notes/gtask/remote/GTaskManager.javaJ=src/main/java/net/micode/notes/gtask/remote/GTaskManager.javaRAYczA7pll3hmLEGh5dPYbj.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPd.AYczA7pll3hmLEGh5dPc.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�DGgruop:src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.javaGTaskSyncService.java*FIL2FIL:javaBAsrc/main/java/net/micode/notes/gtask/remote/GTaskSyncService.javaJAsrc/main/java/net/micode/notes/gtask/remote/GTaskSyncService.javaRAYczA7pll3hmLEGh5dPZbj.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPd.AYczA7pll3hmLEGh5dPc.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�EEgruop:src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.javaGTaskASyncTask.java*FIL2FIL:javaB?src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.javaJ?src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.javaRAYczA7pll3hmLEGh5dPabj.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPd.AYczA7pll3hmLEGh5dPc.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�FBgruop:src/main/java/net/micode/notes/gtask/remote/GTaskClient.javaGTaskClient.java*FIL2FIL:javaB<src/main/java/net/micode/notes/gtask/remote/GTaskClient.javaJ<src/main/java/net/micode/notes/gtask/remote/GTaskClient.javaRAYczA7pll3hmLEGh5dPbbj.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPd.AYczA7pll3hmLEGh5dPc.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�G'gruop:src/main/java/net/micode/notes/uiui*DIR2DIRB!src/main/java/net/micode/notes/uiJ!src/main/java/net/micode/notes/uiRAYczA7pll3hmLEGh5dPsb@.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�H:gruop:src/main/java/net/micode/notes/ui/AlarmReceiver.javaAlarmReceiver.java*FIL2FIL:javaB4src/main/java/net/micode/notes/ui/AlarmReceiver.javaJ4src/main/java/net/micode/notes/ui/AlarmReceiver.javaRAYczA7pll3hmLEGh5dPebU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPs.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�IAgruop:src/main/java/net/micode/notes/ui/DateTimePickerDialog.javaDateTimePickerDialog.java*FIL2FIL:javaB;src/main/java/net/micode/notes/ui/DateTimePickerDialog.javaJ;src/main/java/net/micode/notes/ui/DateTimePickerDialog.javaRAYczA7pll3hmLEGh5dPfbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPs.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�JDgruop:src/main/java/net/micode/notes/ui/NotesPreferenceActivity.javaNotesPreferenceActivity.java*FIL2FIL:javaB>src/main/java/net/micode/notes/ui/NotesPreferenceActivity.javaJ>src/main/java/net/micode/notes/ui/NotesPreferenceActivity.javaRAYczA7pll3hmLEGh5dPgbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPs.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�K:gruop:src/main/java/net/micode/notes/ui/NotesListItem.javaNotesListItem.java*FIL2FIL:javaB4src/main/java/net/micode/notes/ui/NotesListItem.javaJ4src/main/java/net/micode/notes/ui/NotesListItem.javaRAYczA7pll3hmLEGh5dPhbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPs.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�L>gruop:src/main/java/net/micode/notes/ui/NotesListActivity.javaNotesListActivity.java*FIL2FIL:javaB8src/main/java/net/micode/notes/ui/NotesListActivity.javaJ8src/main/java/net/micode/notes/ui/NotesListActivity.javaRAYczA7pll3hmLEGh5dPibU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPs.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�M=gruop:src/main/java/net/micode/notes/ui/NotesListAdapter.javaNotesListAdapter.java*FIL2FIL:javaB7src/main/java/net/micode/notes/ui/NotesListAdapter.javaJ7src/main/java/net/micode/notes/ui/NotesListAdapter.javaRAYczA7pll3hmLEGh5dPjbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPs.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�N?gruop:src/main/java/net/micode/notes/ui/FoldersListAdapter.javaFoldersListAdapter.java*FIL2FIL:javaB9src/main/java/net/micode/notes/ui/FoldersListAdapter.javaJ9src/main/java/net/micode/notes/ui/FoldersListAdapter.javaRAYczA7pll3hmLEGh5dPkbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPs.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�O>gruop:src/main/java/net/micode/notes/ui/AlarmInitReceiver.javaAlarmInitReceiver.java*FIL2FIL:javaB8src/main/java/net/micode/notes/ui/AlarmInitReceiver.javaJ8src/main/java/net/micode/notes/ui/AlarmInitReceiver.javaRAYczA7pll3hmLEGh5dPlbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPs.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�P9gruop:src/main/java/net/micode/notes/ui/NoteEditText.javaNoteEditText.java*FIL2FIL:javaB3src/main/java/net/micode/notes/ui/NoteEditText.javaJ3src/main/java/net/micode/notes/ui/NoteEditText.javaRAYczA7pll3hmLEGh5dPmbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPs.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�Q?gruop:src/main/java/net/micode/notes/ui/AlarmAlertActivity.javaAlarmAlertActivity.java*FIL2FIL:javaB9src/main/java/net/micode/notes/ui/AlarmAlertActivity.javaJ9src/main/java/net/micode/notes/ui/AlarmAlertActivity.javaRAYczA7pll3hmLEGh5dPnbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPs.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�R=gruop:src/main/java/net/micode/notes/ui/NoteEditActivity.javaNoteEditActivity.java*FIL2FIL:javaB7src/main/java/net/micode/notes/ui/NoteEditActivity.javaJ7src/main/java/net/micode/notes/ui/NoteEditActivity.javaRAYczA7pll3hmLEGh5dPobU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPs.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�S;gruop:src/main/java/net/micode/notes/ui/DateTimePicker.javaDateTimePicker.java*FIL2FIL:javaB5src/main/java/net/micode/notes/ui/DateTimePicker.javaJ5src/main/java/net/micode/notes/ui/DateTimePicker.javaRAYczA7pll3hmLEGh5dPpbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPs.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�T9gruop:src/main/java/net/micode/notes/ui/NoteItemData.javaNoteItemData.java*FIL2FIL:javaB3src/main/java/net/micode/notes/ui/NoteItemData.javaJ3src/main/java/net/micode/notes/ui/NoteItemData.javaRAYczA7pll3hmLEGh5dPqbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPs.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�U9gruop:src/main/java/net/micode/notes/ui/DropdownMenu.javaDropdownMenu.java*FIL2FIL:javaB3src/main/java/net/micode/notes/ui/DropdownMenu.javaJ3src/main/java/net/micode/notes/ui/DropdownMenu.javaRAYczA7pll3hmLEGh5dPrbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPs.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�V*gruop:src/main/java/net/micode/notes/modelmodel*DIR2DIRB$src/main/java/net/micode/notes/modelJ$src/main/java/net/micode/notes/modelRAYczA7pll3hmLEGh5dPvb@.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�W;gruop:src/main/java/net/micode/notes/model/WorkingNote.javaWorkingNote.java*FIL2FIL:javaB5src/main/java/net/micode/notes/model/WorkingNote.javaJ5src/main/java/net/micode/notes/model/WorkingNote.javaRAYczA7pll3hmLEGh5dPtbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPv.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�X4gruop:src/main/java/net/micode/notes/model/Note.java	Note.java*FIL2FIL:javaB.src/main/java/net/micode/notes/model/Note.javaJ.src/main/java/net/micode/notes/model/Note.javaRAYczA7pll3hmLEGh5dPubU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dPv.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�Y)gruop:src/main/java/net/micode/notes/datadata*DIR2DIRB#src/main/java/net/micode/notes/dataJ#src/main/java/net/micode/notes/dataRAYczA7pll3hmLEGh5dP0b@.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�Z<gruop:src/main/java/net/micode/notes/data/NotesProvider.javaNotesProvider.java*FIL2FIL:javaB6src/main/java/net/micode/notes/data/NotesProvider.javaJ6src/main/java/net/micode/notes/data/NotesProvider.javaRAYczA7pll3hmLEGh5dPwbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dP0.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�[6gruop:src/main/java/net/micode/notes/data/Contact.javaContact.java*FIL2FIL:javaB0src/main/java/net/micode/notes/data/Contact.javaJ0src/main/java/net/micode/notes/data/Contact.javaRAYczA7pll3hmLEGh5dPxbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dP0.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�\4gruop:src/main/java/net/micode/notes/data/Notes.java
+Notes.java*FIL2FIL:javaB.src/main/java/net/micode/notes/data/Notes.javaJ.src/main/java/net/micode/notes/data/Notes.javaRAYczA7pll3hmLEGh5dPybU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dP0.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�]Bgruop:src/main/java/net/micode/notes/data/NotesDatabaseHelper.javaNotesDatabaseHelper.java*FIL2FIL:javaB<src/main/java/net/micode/notes/data/NotesDatabaseHelper.javaJ<src/main/java/net/micode/notes/data/NotesDatabaseHelper.javaRAYczA7pll3hmLEGh5dPzbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dP0.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�^)gruop:src/main/java/net/micode/notes/tooltool*DIR2DIRB#src/main/java/net/micode/notes/toolJ#src/main/java/net/micode/notes/toolRAYczA7pll3hmLEGh5dP5b@.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�_?gruop:src/main/java/net/micode/notes/tool/GTaskStringUtils.javaGTaskStringUtils.java*FIL2FIL:javaB9src/main/java/net/micode/notes/tool/GTaskStringUtils.javaJ9src/main/java/net/micode/notes/tool/GTaskStringUtils.javaRAYczA7pll3hmLEGh5dP1bU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dP5.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�`8gruop:src/main/java/net/micode/notes/tool/DataUtils.javaDataUtils.java*FIL2FIL:javaB2src/main/java/net/micode/notes/tool/DataUtils.javaJ2src/main/java/net/micode/notes/tool/DataUtils.javaRAYczA7pll3hmLEGh5dP2bU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dP5.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�a=gruop:src/main/java/net/micode/notes/tool/ResourceParser.javaResourceParser.java*FIL2FIL:javaB7src/main/java/net/micode/notes/tool/ResourceParser.javaJ7src/main/java/net/micode/notes/tool/ResourceParser.javaRAYczA7pll3hmLEGh5dP3bU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dP5.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�b:gruop:src/main/java/net/micode/notes/tool/BackupUtils.javaBackupUtils.java*FIL2FIL:javaB4src/main/java/net/micode/notes/tool/BackupUtils.javaJ4src/main/java/net/micode/notes/tool/BackupUtils.javaRAYczA7pll3hmLEGh5dP4bU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dP7.AYczA7pll3hmLEGh5dP6.AYczA7pll3hmLEGh5dP5.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�cgruop:buildbuild*DIR2DIRBbuildJbuildRAYczA7pll3hmLEGh5dQVb.AYctaK4aibojJVNiyQeU.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�dgruop:build/intermediates
intermediates*DIR2DIRBbuild/intermediatesJbuild/intermediatesRAYczA7pll3hmLEGh5dQSb+.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�e2gruop:build/intermediates/packaged_manifests/debugpackaged_manifests/debug*DIR2DIRB,build/intermediates/packaged_manifests/debugJ,build/intermediates/packaged_manifests/debugRAYczA7pll3hmLEGh5dP9b@.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�fFgruop:build/intermediates/packaged_manifests/debug/AndroidManifest.xmlAndroidManifest.xml*FIL2FIL:xmlB@build/intermediates/packaged_manifests/debug/AndroidManifest.xmlJ@build/intermediates/packaged_manifests/debug/AndroidManifest.xmlRAYczA7pll3hmLEGh5dP8bU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.AYczA7pll3hmLEGh5dP9.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�g%gruop:build/intermediates/incrementalincremental*DIR2DIRBbuild/intermediates/incrementalJbuild/intermediates/incrementalRAYczA7pll3hmLEGh5dQNb@.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�h?gruop:build/intermediates/incremental/debug/mergeDebugResourcesdebug/mergeDebugResources*DIR2DIRB9build/intermediates/incremental/debug/mergeDebugResourcesJ9build/intermediates/incremental/debug/mergeDebugResourcesRAYczA7pll3hmLEGh5dQGbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.AYczA7pll3hmLEGh5dQN.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�iJgruop:build/intermediates/incremental/debug/mergeDebugResources/merger.xml
+merger.xml*FIL2FIL:xmlBDbuild/intermediates/incremental/debug/mergeDebugResources/merger.xmlJDbuild/intermediates/incremental/debug/mergeDebugResources/merger.xmlRAYczA7pll3hmLEGh5dP-bj.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.AYczA7pll3hmLEGh5dQN.AYczA7pll3hmLEGh5dQG.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�jJgruop:build/intermediates/incremental/debug/mergeDebugResources/merged.dir
+merged.dir*DIR2DIRBDbuild/intermediates/incremental/debug/mergeDebugResources/merged.dirJDbuild/intermediates/incremental/debug/mergeDebugResources/merged.dirRAYczA7pll3hmLEGh5dQFbj.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.AYczA7pll3hmLEGh5dQN.AYczA7pll3hmLEGh5dQG.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�kXgruop:build/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-zh-rCN
values-zh-rCN*DIR2DIRBRbuild/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-zh-rCNJRbuild/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-zh-rCNRAYczA7pll3hmLEGh5dQAb.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.AYczA7pll3hmLEGh5dQN.AYczA7pll3hmLEGh5dQG.AYczA7pll3hmLEGh5dQF.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�ljgruop:build/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-zh-rCN/values-zh-rCN.xmlvalues-zh-rCN.xml*FIL2FIL:xmlBdbuild/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-zh-rCN/values-zh-rCN.xmlJdbuild/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-zh-rCN/values-zh-rCN.xmlRAYczA7pll3hmLEGh5dP_b�.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.AYczA7pll3hmLEGh5dQN.AYczA7pll3hmLEGh5dQG.AYczA7pll3hmLEGh5dQF.AYczA7pll3hmLEGh5dQA.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�mXgruop:build/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-zh-rTW
values-zh-rTW*DIR2DIRBRbuild/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-zh-rTWJRbuild/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-zh-rTWRAYczA7pll3hmLEGh5dQCb.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.AYczA7pll3hmLEGh5dQN.AYczA7pll3hmLEGh5dQG.AYczA7pll3hmLEGh5dQF.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�njgruop:build/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-zh-rTW/values-zh-rTW.xmlvalues-zh-rTW.xml*FIL2FIL:xmlBdbuild/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-zh-rTW/values-zh-rTW.xmlJdbuild/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-zh-rTW/values-zh-rTW.xmlRAYczA7pll3hmLEGh5dQBb�.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.AYczA7pll3hmLEGh5dQN.AYczA7pll3hmLEGh5dQG.AYczA7pll3hmLEGh5dQF.AYczA7pll3hmLEGh5dQC.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�oQgruop:build/intermediates/incremental/debug/mergeDebugResources/merged.dir/valuesvalues*DIR2DIRBKbuild/intermediates/incremental/debug/mergeDebugResources/merged.dir/valuesJKbuild/intermediates/incremental/debug/mergeDebugResources/merged.dir/valuesRAYczA7pll3hmLEGh5dQEb.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.AYczA7pll3hmLEGh5dQN.AYczA7pll3hmLEGh5dQG.AYczA7pll3hmLEGh5dQF.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�p\gruop:build/intermediates/incremental/debug/mergeDebugResources/merged.dir/values/values.xml
+values.xml*FIL2FIL:xmlBVbuild/intermediates/incremental/debug/mergeDebugResources/merged.dir/values/values.xmlJVbuild/intermediates/incremental/debug/mergeDebugResources/merged.dir/values/values.xmlRAYczA7pll3hmLEGh5dQDb�.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.AYczA7pll3hmLEGh5dQN.AYczA7pll3hmLEGh5dQG.AYczA7pll3hmLEGh5dQF.AYczA7pll3hmLEGh5dQE.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�q7gruop:build/intermediates/incremental/mergeDebugShadersmergeDebugShaders*DIR2DIRB1build/intermediates/incremental/mergeDebugShadersJ1build/intermediates/incremental/mergeDebugShadersRAYczA7pll3hmLEGh5dQIbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.AYczA7pll3hmLEGh5dQN.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�rBgruop:build/intermediates/incremental/mergeDebugShaders/merger.xml
+merger.xml*FIL2FIL:xmlB<build/intermediates/incremental/mergeDebugShaders/merger.xmlJ<build/intermediates/incremental/mergeDebugShaders/merger.xmlRAYczA7pll3hmLEGh5dQHbj.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.AYczA7pll3hmLEGh5dQN.AYczA7pll3hmLEGh5dQI.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�s=gruop:build/intermediates/incremental/mergeDebugJniLibFoldersmergeDebugJniLibFolders*DIR2DIRB7build/intermediates/incremental/mergeDebugJniLibFoldersJ7build/intermediates/incremental/mergeDebugJniLibFoldersRAYczA7pll3hmLEGh5dQKbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.AYczA7pll3hmLEGh5dQN.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�tHgruop:build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml
+merger.xml*FIL2FIL:xmlBBbuild/intermediates/incremental/mergeDebugJniLibFolders/merger.xmlJBbuild/intermediates/incremental/mergeDebugJniLibFolders/merger.xmlRAYczA7pll3hmLEGh5dQJbj.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.AYczA7pll3hmLEGh5dQN.AYczA7pll3hmLEGh5dQK.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�u6gruop:build/intermediates/incremental/mergeDebugAssetsmergeDebugAssets*DIR2DIRB0build/intermediates/incremental/mergeDebugAssetsJ0build/intermediates/incremental/mergeDebugAssetsRAYczA7pll3hmLEGh5dQMbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.AYczA7pll3hmLEGh5dQN.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�vAgruop:build/intermediates/incremental/mergeDebugAssets/merger.xml
+merger.xml*FIL2FIL:xmlB;build/intermediates/incremental/mergeDebugAssets/merger.xmlJ;build/intermediates/incremental/mergeDebugAssets/merger.xmlRAYczA7pll3hmLEGh5dQLbj.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.AYczA7pll3hmLEGh5dQN.AYczA7pll3hmLEGh5dQM.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�w/gruop:build/intermediates/merged_manifest/debugmerged_manifest/debug*DIR2DIRB)build/intermediates/merged_manifest/debugJ)build/intermediates/merged_manifest/debugRAYczA7pll3hmLEGh5dQPb@.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�xCgruop:build/intermediates/merged_manifest/debug/AndroidManifest.xmlAndroidManifest.xml*FIL2FIL:xmlB=build/intermediates/merged_manifest/debug/AndroidManifest.xmlJ=build/intermediates/merged_manifest/debug/AndroidManifest.xmlRAYczA7pll3hmLEGh5dQObU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.AYczA7pll3hmLEGh5dQP.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�y0gruop:build/intermediates/merged_manifests/debugmerged_manifests/debug*DIR2DIRB*build/intermediates/merged_manifests/debugJ*build/intermediates/merged_manifests/debugRAYczA7pll3hmLEGh5dQRb@.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�zDgruop:build/intermediates/merged_manifests/debug/AndroidManifest.xmlAndroidManifest.xml*FIL2FIL:xmlB>build/intermediates/merged_manifests/debug/AndroidManifest.xmlJ>build/intermediates/merged_manifests/debug/AndroidManifest.xmlRAYczA7pll3hmLEGh5dQQbU.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQS.AYczA7pll3hmLEGh5dQR.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�{?gruop:build/generated/source/buildConfig/debug/net/micode/notes3generated/source/buildConfig/debug/net/micode/notes*DIR2DIRB9build/generated/source/buildConfig/debug/net/micode/notesJ9build/generated/source/buildConfig/debug/net/micode/notesRAYczA7pll3hmLEGh5dQUb+.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU�|Pgruop:build/generated/source/buildConfig/debug/net/micode/notes/BuildConfig.javaBuildConfig.java*FIL2FIL:javaBJbuild/generated/source/buildConfig/debug/net/micode/notes/BuildConfig.javaJJbuild/generated/source/buildConfig/debug/net/micode/notes/BuildConfig.javaRAYczA7pll3hmLEGh5dQTb@.AYctaK4aibojJVNiyQeU.AYczA7pll3hmLEGh5dQV.AYczA7pll3hmLEGh5dQU.jAYctaK4aibojJVNiyQeUr.AYctaK4aibojJVNiyQeU.�AYctaK4aibojJVNiyQeU
\ No newline at end of file
diff --git a/doc/02_陈家儒_质量分析报告/gruop/events.pb b/doc/02_陈家儒_质量分析报告/gruop/events.pb
new file mode 100644
index 0000000..f6a160f
--- /dev/null
+++ b/doc/02_陈家儒_质量分析报告/gruop/events.pb
@@ -0,0 +1,2 @@
+L
+not providedAYczA7mil3hmLEGh5dOa"Version8�����0BAYczA8Qfl3hmLEGh5eMa
\ No newline at end of file
diff --git a/doc/02_陈家儒_质量分析报告/gruop/issues.pb b/doc/02_陈家儒_质量分析报告/gruop/issues.pb
new file mode 100644
index 0000000..4e96218
Binary files /dev/null and b/doc/02_陈家儒_质量分析报告/gruop/issues.pb differ
diff --git a/doc/02_陈家儒_质量分析报告/gruop/issues_changelog.pb b/doc/02_陈家儒_质量分析报告/gruop/issues_changelog.pb
new file mode 100644
index 0000000..e69de29
diff --git a/doc/02_陈家儒_质量分析报告/gruop/lines_hashes.pb b/doc/02_陈家儒_质量分析报告/gruop/lines_hashes.pb
new file mode 100644
index 0000000..9bb220c
--- /dev/null
+++ b/doc/02_陈家儒_质量分析报告/gruop/lines_hashes.pb
@@ -0,0 +1,12955 @@
+� � 9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+5c11e0e9cf6e535201945c2c40cb0ea8
+440910263106f029d4408f14bdd6ae09
+a335c7e80e876d0d5e3bfc16277b0f51
+f035578527d72cff1778422a3126630a
+
+0315d73daf044c5711c74761ad6b229f
+
+aabd06106ee98f9b55478c270f348d6c
+c8b7cb3d9344faa7ee12d0d7005fd666
+58a32ce0f450e1a40f631bcab5f5309a
+fd01b28cfa346e96035388a9a6b64872
+327489b53fa7aded75bf8458946fa31e
+f11fa1e29d3a1ec6f6631683c41c870f
+709691474519c1879a1d3b5881860638
+bde317acc83b4f8ef4e73e9194b82bfb
+46d200d48453e26635abb61f997d02ad
+
+bf5ce6b0dd076e77b0f0bba7a3afe2e3
+72b7990cb87fe04d7c142f7ad538c7a1
+659096b108d48df4ea352003244479e3
+26cbef77dd955f6cdd98776309d5b611
+9dd395cea0ba63d8f0e6a88b2551d7b0
+eb5de9de71e9cb4b5c85ec90ed442ae4
+0ac7e34e8284ef60997f48e9ab4fad0b
+8be6713a30265285808f06ffbdff65bb
+5823c996dd1d05786f12487427d33fee
+7de84c373e774b14471ee0579861d4a5
+0a1d69be5a11ee5a77f9482ca7af6b8d
+
+b2398442092328b6a0e7290251fb19ed
+383871fca753e6390a9fc2e525732537
+eb02621a41fd50a5048310784f6e32af
+bb31c109331044abc153cbafc491b1d0
+c0539c4a0fc777e5ea1019c9deacde2f
+
+26cbef77dd955f6cdd98776309d5b611
+3283b77bb0ff1af874933e4b08a302fa
+eb5de9de71e9cb4b5c85ec90ed442ae4
+8be6713a30265285808f06ffbdff65bb
+0dc20b01c2f9ea686668291df34031dd
+
+b2398442092328b6a0e7290251fb19ed
+e949a5c29bf268d3c942361c7d5078c6
+319b18cd638e3f606811372b6d8b4762
+c4a6490121f88a9e9fa765a1d0af2415
+4d0491bc5b377b062d980d6f40957cbc
+bb31c109331044abc153cbafc491b1d0
+
+b2398442092328b6a0e7290251fb19ed
+5699484e8fc1eab7e26fbfd677362cd2
+319b18cd638e3f606811372b6d8b4762
+c4a6490121f88a9e9fa765a1d0af2415
+4d0491bc5b377b062d980d6f40957cbc
+bb31c109331044abc153cbafc491b1d0
+
+b2398442092328b6a0e7290251fb19ed
+76df3659e7404e83296c1f784625ac80
+319b18cd638e3f606811372b6d8b4762
+bb31c109331044abc153cbafc491b1d0
+
+282d54a2e0237397f3f5a86188f0cb49
+06fd802e06d03c6030b4edb3da54f7fe
+2df22c68130d84f4f378950d941e915e
+c0539c4a0fc777e5ea1019c9deacde2f
+
+f1f26badce3c3dc02d89ba89c41cc587
+e680d9f6ba107d88beb2af667ff94952
+e13b7b4dba26b39f4fc6558abfe14286
+3d9e59b71ad4a9269b01881f6085426d
+
+c8232cdd7ad6caeef5ef51b04907ee56
+e325f5e202981f65b1e20c7d3e760fae
+8b6c94b8a05ab45dff1baa906b145e63
+b2398442092328b6a0e7290251fb19ed
+32a089422fe7b795966f6bbb7b457b51
+a71f6c8b05635731a3bbec598ca1d310
+4721181f6a6b60a79b0f368734c8cccc
+bb31c109331044abc153cbafc491b1d0
+
+282d54a2e0237397f3f5a86188f0cb49
+57d990a0104418f1cbf179c8020a3483
+ca6fb4a23a8b9f0bd5547ec90c971221
+7b6511f056f622c4f54a132e77dcf8cc
+c8232cdd7ad6caeef5ef51b04907ee56
+4ae2641e691fabc2c074688efd22d7d7
+c1c0206615f38a789682ec15d7f0e847
+
+b2398442092328b6a0e7290251fb19ed
+32a089422fe7b795966f6bbb7b457b51
+a71f6c8b05635731a3bbec598ca1d310
+4721181f6a6b60a79b0f368734c8cccc
+bb31c109331044abc153cbafc491b1d0
+
+282d54a2e0237397f3f5a86188f0cb49
+57d990a0104418f1cbf179c8020a3483
+547680aa08c375d9880a85a118f4d9ce
+7b6511f056f622c4f54a132e77dcf8cc
+
+9a19fa387301f98a4e9e5f11f11c155c
+b2398442092328b6a0e7290251fb19ed
+4967bb11d745c46c928f390bc54778c5
+bb31c109331044abc153cbafc491b1d0
+7b6511f056f622c4f54a132e77dcf8cc
+
+c8232cdd7ad6caeef5ef51b04907ee56
+0192658d9b51f8772a72afcff58e48a0
+7a2da6e86f8f55b9b28c967f0b6b04f9
+7b6511f056f622c4f54a132e77dcf8cc
+
+26cbef77dd955f6cdd98776309d5b611
+ec8b88f73e851139ecd415009198a3e7
+0ac7e34e8284ef60997f48e9ab4fad0b
+ed429c79b495be0fb37cd226c75902ed
+a88cdabf6c2e98a7f5d334aed72b76e3
+c0539c4a0fc777e5ea1019c9deacde2f
+
+26cbef77dd955f6cdd98776309d5b611
+945816a40d6195eee4c153305eb73135
+9ee7314576d848a92692625d7478f88d
+8be6713a30265285808f06ffbdff65bb
+e0fdda01c6245e3f25d79f83b39ce464
+c0539c4a0fc777e5ea1019c9deacde2f
+
+d88fc523e00bee4a3f0cdfc57a3a910c
+b3d45825e7ae454c5441c3c095d0f27c
+acbda263723780ac1132b0c7cbafa376
+c8ddb93b923ccfa58404cdda08011fab
+
+282d54a2e0237397f3f5a86188f0cb49
+adcc84b782d47a5eb30e3252bf3f2d98
+ffaf051e6a448f77913435284d9716e3
+d42c2af44fd44aaa18334588260f2626
+85a6d3d0163ebf5eac15b851b5e1368e
+AYctaK4aibojJVNiyQeU��9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+ef523ee1fe3d6b8cb3b5697ba32f7ac4
+f8276fc31cf8650847ee6abda4f24a2d
+caef664890f1804438e83a8351562e7b
+5ee7cb6151bab33a1d4c842f46d4b194
+881680fe0bd3010b5dd39de44cdab965
+8031c0b09c909af733afeeaa5f6b5a7d
+01202676c1884b2fccbcca12b0465b28AYctaK4aibojJVNiyQeU��9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+ef523ee1fe3d6b8cb3b5697ba32f7ac4
+0f53fac5ac2b8daab067ce70b611d5b4
+16aaa38ea77abf152052a48c8aecbf53
+8b76a721fcc6e7695264719ad509fd1c
+1ef0bca0c8fe511a919ad12472e6c67f
+4ece823e35e7bcc4797ca744555a6a0c
+4dbd8969eb10f10f5d81407ebfb3baed
+8b76a721fcc6e7695264719ad509fd1c
+1ef0bca0c8fe511a919ad12472e6c67f
+de4142de23a7d423f6969d1cd616dcb0
+a44b1c753e9e9fc150a5f54018f6e5b8
+8b76a721fcc6e7695264719ad509fd1c
+1ef0bca0c8fe511a919ad12472e6c67f
+e5389f2766ce81d2b672b3bf63f511fa
+95acbaeea7598e70d094e3e880bf00fa
+8b76a721fcc6e7695264719ad509fd1c
+1ef0bca0c8fe511a919ad12472e6c67f
+
+1efe0e7d2527399c91bfc1b3cdb56e1d
+95acbaeea7598e70d094e3e880bf00fa
+0be78e89e99b84a898ec68665e7ce002
+1ef0bca0c8fe511a919ad12472e6c67f
+
+e696352b525bee393b3adb8fd31d27a2
+faf58f106223263096bfec1dc3340d92
+f32dd46510d1cc70cb80d734c208b443
+1ef0bca0c8fe511a919ad12472e6c67f
+
+8edb50423f5c2e13a04b0f7368efcad7
+95acbaeea7598e70d094e3e880bf00fa
+7caa0ea101785e300b344e00c30875f6
+1ef0bca0c8fe511a919ad12472e6c67f
+
+f075e22b0c4e11bdcb12abbd2f614b4e
+95acbaeea7598e70d094e3e880bf00fa
+0be78e89e99b84a898ec68665e7ce002
+1ef0bca0c8fe511a919ad12472e6c67f
+
+7cb49ce5e5fa888b9e98d2c66442fc67
+faf58f106223263096bfec1dc3340d92
+f32dd46510d1cc70cb80d734c208b443
+1ef0bca0c8fe511a919ad12472e6c67f
+
+389b047b794e9de6beec768bbc767a33
+e1d936ff69405e996e31f43e8fa86d24
+1ef0bca0c8fe511a919ad12472e6c67f
+
+9387cd844c699c6644b997b6ec225f0f
+5c985c7351892073d443f71bf9a4a52c
+93f70ced8c5753dc49451c54dd287cb7
+1ef0bca0c8fe511a919ad12472e6c67f
+01202676c1884b2fccbcca12b0465b28AYctaK4aibojJVNiyQeU��9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+ef523ee1fe3d6b8cb3b5697ba32f7ac4
+6c3b619d9894a38ab87468125a039ce5
+2257b5d15f2faa262ab158d1d24c11dc
+65c0a966582a722a6288eb5588f2b792
+50cd6047f44183a138213bffabbfb64f
+684f44cf25b67271828e9e36940dd05d
+1fcee60a97f608f8df1832224a4d80e9
+7abe717b3f094d8ac1597412b0d2f80e
+
+efe01d54dc6dd01ebb96bd7e22d76b3c
+520a1966e542b6ea2920055992ffa550
+14e48f98fe990d69e7bd318bdb1f7d21
+7abe717b3f094d8ac1597412b0d2f80e
+01202676c1884b2fccbcca12b0465b28AYctaK4aibojJVNiyQeU�!	� 9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+faa4c6dcb39c8985d78428e017bda7ef
+c092fcd9bba864f5709ebee60b6c8953
+e745660a1131ab8b42290d82580f501c
+c7ea73b9654f076fec966aef0ce51c08
+6864be6407edb68466071666d3b7e690
+ff37a2e97683b55609d23b6edd97bc4a
+b428b1279c582fc6eb1306c673390798
+5d47bd610025d114413384d384826dcf
+106fe80e45802733ef9db4284df0cd16
+63f5afa5f729381036e62369c1119696
+0befeaba3ed1177d803d74367e1ea3c9
+b9473c75c7b51ed93ae104db31245c0d
+890f030569860ea5321bd31d2f93d9a7
+5d70b36a6e2130f0de47c2c4da7b7256
+dedc68181f313f8f502481645222f6a4
+9f13417031c8f99d004847749dbeb13c
+bf4fb55c6e5edcc53bdc3488dde910cf
+040cd71bd0c7ad70ef766c4dc588b49e
+69463c46161b5277068d674c874a5f8a
+03b360098ddb0780d71a92e91ae975a2
+6bd32795fccfe4ddf5bd33b74df74565
+7bc5ffec05d5848ccfb92560d58be603
+ffce5f75418377da3321bc0b56b22fa3
+00416ba7a1c53daae9c3257ce07493d1
+9a75f64977fe0d0dc864a0557deaeee3
+8ed9560fe3ec12285ec91290f3a97d05
+dca6133ccea4ce4187e72fbf26f544ac
+7d670bec4a84b35c98c403fbf3054674
+7cda5b6eb455c315c265b3eba246fff3
+14c9d03ca6bdaf87c0404294364d50ff
+530390a3ef76df7088379c396dbd8997
+ed75c784b66b12383b4767c40909532c
+4c010e92a65f4ffa80b8492bdaee787c
+a49b0aa556a397502ea832c159b4bee5
+8f01f1231bdab0bdac54d32015a85249
+a0eeb06b7e14c1a09d000fdeaaab763b
+2b066edce8890c2ce14693a39377a3a6
+a12d9d52028bf87a8822cbe2be8a0336
+619a13a6493ccb8d8973b8361151abad
+4130873f450efcd54cf6bf2bdc424102
+c00730eecccdba86bf714f5568c15af6
+56eeb02dc4bee2df4762c71acd09040e
+0f15c5b931b6318b4d6d61f0655ee94a
+8ba3c8436f01d4730702f1b7bc661d6a
+ed2993e601b3ba448753550684648a4c
+86850d470c3e9a76eaa359f5887c83d8
+bbc9dc029ad84f4c7ce5d8dbe0a84f7b
+40bff38abfc85ed7224352f59a15c228
+2c9dc51e52f98651803eef479ecfb93e
+2ce6ea924cca3c516a497facca3a0af0
+a5710c60df1607e8372aa14609e0fee1
+c7de6e28b86f5702173eff0d578de5da
+857d8ff95ed14277ade3df86d650918d
+266db73b35327ac8efd8e66e19c785c2
+88e4f8bb9fe59bb1380029069a6caac4
+bd06ecc5b9665c2d03223db39df2db46
+c4b3475e22ee3c62dc43802481fc3ea2
+e97769d37ecb3fcfc5cc884fb857fb73
+7ae454191f07a3b100e44efc41f0b936
+a3dd842ec3c41d039f8dfc6a638ca46b
+d56403079a05585353f07fd56eb4e2f9
+59e248b4832b55fc4a8e26b8b637fa63
+5ceb924d3085f5920f1739542f726108
+5fbd680de4db29a17488c8c7f40915b6
+bcca66941d01706abe804a7d98127a43
+7aa43d754c5a274415dddb62d1f5f5d3
+0d0fa41c39c774fd19a8fe67633569ab
+27894c3404c729e7dd94a63d2d9df3cd
+6fff002b388e70486a6b34af193e0638
+39bd0415791c6159dd1a4a30be7a0b0d
+f03cdbb85e81e017c36283c5e0cfeb23
+d1010d4b14d7fe5d63ed634f150f8532
+82b5836e58cc66bef300f575407cadf8
+6c2e382ddc0deb120a3c7eaabb80c312
+d5cc89b01a620730b55356f036ce15d2
+7dcf7b722cc1dfce0620174f9ac5c7d7
+e40a3c0f70136777ca12aae8fa9e5907
+2dde0bb03c26b4ce92a848f9db8e8099
+903671a744be8f3888c27b42b8c4e5f3
+ededf64dfeffc5adf157f7a962b908e0
+75f539da1c7d960cb46668c830f8bcdf
+db007d40d5a9c4eb119c89c281f7676f
+b2ee21b4fbac39d90f46dbc006aa6aa0
+91dcc93b4da06b5180d66efc3a9883ba
+a3456aff6d8a6f9b08ec2cf224bb177a
+35690024ae66131ecb816d79f6cf3b54
+21636bdac24a6fe0dc2bfc93f92df3a8
+ac6c95d1b47e7b737fa98c985e33399b
+584d13b34d51f2dca28552126f61336e
+9b813c5cbc2cc8f42ae12813a6e81b7b
+548abcc87dd811429497660080950f73
+7a7c03ca5528aa7c7d2e76a28658eece
+bd30e9e3c99c96b9f52166ec06cd9325
+5a9ae147c1d5b1dfe02a9e1db3484be0
+e50e471a1ef095cbe736d555fa215509
+78d9e7e36ec6d2e6dd5f90949f9cfc6e
+3fa7be8004c8006df64426e6a19548f2
+7d89917798c068e60feca73a1ac3546b
+352136b365886f356edc05565785d8d6
+6e4ca5defce1f5b70d9f18c756a1c5fc
+
+39c6d73cd0ac2a605be7d52a379cfc23
+2661be82395bba768376f31077588d2b
+e2581cbdc50552195cca2a862421513b
+
+9de3555a08eac562915626ba9e774d43
+78d4043eb42647d3571a2c3bea5556fa
+de0e4d186bded3b52649bbacb64bfd64
+70e71731cc2a709b2970e2def4f3a492
+a9e2cae1fb64a048089699305cc5b95f
+853d1567b67320b6cc162fb7569c7e4e
+c4b53b0abb929d3c58d479377a520fb3
+b9ec2e6da904416ac155451e496d6bd2
+a29558c83c44eb381b169e011146ac97
+5aa6ce781d251032dbe1f02f4cfe6f0c
+ed0688fdce283c828c55cc5039d72c94
+
+01202676c1884b2fccbcca12b0465b28
+AYctaK4aibojJVNiyQeU�
+�9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+ef523ee1fe3d6b8cb3b5697ba32f7ac4
+998051bb8d0d2e5393515520707825a3
+01202676c1884b2fccbcca12b0465b28
+AYctaK4aibojJVNiyQeU��9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+3d6dc9353c39aea785afad7c51c6354e
+b5c176d7b6ee66ed097331e3d8784d6f
+f1e998d4cdecff8ec82c0f01a2437523
+803f7444d2e0c40c4574859f09db8c11
+7300c69f48a96598a091d42c4b79db37
+5b35c9fc50dd8e54da5bedb65b3b1d73
+a4d29e26d236db30da015613c6008d16
+577766060f660b0dfaa4acd2830b6a15
+5a286e61fb600c7e0fc61460d207e222
+0274524d2b1760f5a69d0cf32ba960dc
+a4d29e26d236db30da015613c6008d16
+e964a01fdf88802229032c1c4154421a
+5ef58c607e2e51cdf051a56eb38ec9c5
+b45cb82e7cd2b90b010f93048d1adf12
+8f03980a75a2496b476b78007b550938
+4028dfb871df0bf08d08acfd0a622c09
+b5652e73fbdc97be585dd6ec70203f1f
+9c3416255f3e81678f66598610fae2a2
+2908dd848767618595012c0a98a7b744
+1e0099e6abf3d734107366abaaa38f6e
+AYctaK4aibojJVNiyQeU�	
�	9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+a4d29e26d236db30da015613c6008d16
+e964a01fdf88802229032c1c4154421a
+15a37fb2e2b316aaed5862057b27652a
+f288e3b142e004c17f46ab3d780bfcbe
+
+5a286e61fb600c7e0fc61460d207e222
+bdc6cbff77cd3957063ac38ae3019a6c
+d227cd9234ed2412ceb4c2e87efe1cb0
+119814c8eab1ad881511a85d33651c1f
+18406b4f5fe1c09238f7c87b189f58a5
+881156ef7bb782cacf9a5d67ad5bccf8
+6b15d139d7970d7fd058c03d2c0d5029
+d0cf0b843cc822ec9f9c128a09155a17
+a4d29e26d236db30da015613c6008d16
+7c78a64ae60b7930b558c0a5e2df5038
+
+5a286e61fb600c7e0fc61460d207e222
+540b8ba293d47093bc8b0452723c0603
+a4d29e26d236db30da015613c6008d16
+d24f9483e78b787d19c65ca4b7d46d76
+08b0f6cb3fb63db02f753dd61a15b430
+d7ed6eecd95af39c73a22bbc128bd455
+6f3ddd487913f3f89b7119db69ffbf87
+
+cba9b8fb51903ed99ddad1429313adfeAYctaK4aibojJVNiyQeU��9c01c303c77851bb36f0a499a6d66d41
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+7ba95725df0e0d4c7dddd3693d083301
+bf82119bef083150070d0ee5ea1c0ffe
+4741c90887f6d42587a27349e7daaebe
+ce7c6c26be5cda6f44df3197997fd00c
+e995a9e189c5aaf6162a7d515eaccb75
+
+00d7cbda77f53e3dfed4ab47a3f9254d
+1437578eb9e245cc1178c959add92e54
+ffc9d671fd4c7012010f7659c9bd4845
+d24f9483e78b787d19c65ca4b7d46d76
+7cf093ca10d380e0377b8a123275b88c
+4b22ef835404cb39fd579142210071b4
+18f68d13217048286fcb813f5c627bc0
+
+00d7cbda77f53e3dfed4ab47a3f9254d
+1ea5ebcdf7d6f1cf16c11c7e01eee572
+fdcaac16139845335080b2018a3919b3
+d24f9483e78b787d19c65ca4b7d46d76
+8802f6e395e655798c6cc43450af168d
+7cf093ca10d380e0377b8a123275b88c
+4b22ef835404cb39fd579142210071b4
+18f68d13217048286fcb813f5c627bc0
+
+00d7cbda77f53e3dfed4ab47a3f9254d
+1914fb93e917b07f75ed61ea6dae6bad
+fdcaac16139845335080b2018a3919b3
+d24f9483e78b787d19c65ca4b7d46d76
+8802f6e395e655798c6cc43450af168d
+7cf093ca10d380e0377b8a123275b88c
+4b22ef835404cb39fd579142210071b4
+18f68d13217048286fcb813f5c627bc0
+
+00d7cbda77f53e3dfed4ab47a3f9254d
+ee537dd1c71baf3d73fe548cf0735ded
+fdcaac16139845335080b2018a3919b3
+d24f9483e78b787d19c65ca4b7d46d76
+8802f6e395e655798c6cc43450af168d
+7cf093ca10d380e0377b8a123275b88c
+4b22ef835404cb39fd579142210071b4
+18f68d13217048286fcb813f5c627bc0
+cba9b8fb51903ed99ddad1429313adfeAYctaK4aibojJVNiyQeU��9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+b5c176d7b6ee66ed097331e3d8784d6f
+04e7ae8d995867d81c00216bcf50d9fa
+d24f9483e78b787d19c65ca4b7d46d76
+6788dc8ce68fad9080dfce47b6d275cc
+5263204f40ee3804bf6b4788056eee58
+f6f4057026f83ccff8ec34250bdd98e6
+
+5a286e61fb600c7e0fc61460d207e222
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+b9a78277bcb07aa5c21605ce8a7ea1d8
+ef440fd94668413afb2c8026fc642b6a
+6478ee4e88c31d8e1804b357faac3041
+cba9b8fb51903ed99ddad1429313adfeAYctaK4aibojJVNiyQeU��9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+3d6dc9353c39aea785afad7c51c6354e
+b5c176d7b6ee66ed097331e3d8784d6f
+a6fbd8174a2bb35aac6df85c00508def
+a4d29e26d236db30da015613c6008d16
+574e1dadd95516713038a412e3cdf4e1
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+a4d29e26d236db30da015613c6008d16
+d24f9483e78b787d19c65ca4b7d46d76
+bfa8ba42e4df034af579bdf8fecd9c9b
+36b6847dab3e111620fbd0ebd84e2128
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+5392e7bfbe26609e7dda98c4d873538f
+d24f9483e78b787d19c65ca4b7d46d76
+c249ee0eb1cc3f5b7b3fa78c62c37fd0
+f6f4057026f83ccff8ec34250bdd98e6
+
+5a286e61fb600c7e0fc61460d207e222
+1da5fb0c69f90a251a014d13e78342d3
+ce7c6c26be5cda6f44df3197997fd00c
+3a053c171a017c1655e39a3a06755bce
+c249ee0eb1cc3f5b7b3fa78c62c37fd0
+6162042fca490161f44a0cb80edc47c4
+2fec2f7ca7f8806695eecaebcb4ae103
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+a4d29e26d236db30da015613c6008d16
+d24f9483e78b787d19c65ca4b7d46d76
+9ad13577176a1bd54dd243351cab4d87
+
+5a286e61fb600c7e0fc61460d207e222
+9a16a40e50ab9a768616812232393b9d
+5392e7bfbe26609e7dda98c4d873538f
+d24f9483e78b787d19c65ca4b7d46d76
+c249ee0eb1cc3f5b7b3fa78c62c37fd0
+502b4869d3867a09984705508fcd7136
+
+5a286e61fb600c7e0fc61460d207e222
+1d0b48fb388d0cdae5f95a0db145acd5
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+300a05dcea57be93c1076e4b9e3182b8
+cba9b8fb51903ed99ddad1429313adfe
+cba9b8fb51903ed99ddad1429313adfe
+
+7056728827c7d316e49d27d63c127f56
+5b5dbb7efc571adcc1d31f2237a88c4f
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+774afac34498b5101906f9c33701648f
+059b8317dc483c7dea7ad7481fab2663
+2fec2f7ca7f8806695eecaebcb4ae103
+cba9b8fb51903ed99ddad1429313adfe
+
+7300c69f48a96598a091d42c4b79db37
+0aaee3d74c300fc4766fcb27dbf49e0b
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+edf13d14022c02bd2d5ab3d41d085af9
+1e0099e6abf3d734107366abaaa38f6e
+AYctaK4aibojJVNiyQeU��9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+7ba95725df0e0d4c7dddd3693d083301
+04e7ae8d995867d81c00216bcf50d9fa
+28f4bbb279711849f33cc830cfdaa859
+686763dc8bf000a7bf321657f628e0e0
+
+5a286e61fb600c7e0fc61460d207e222
+b5b905c9150b5f112d9c237256668761
+04e7ae8d995867d81c00216bcf50d9fa
+28f4bbb279711849f33cc830cfdaa859
+881156ef7bb782cacf9a5d67ad5bccf8
+dce475e5588d7103f9a3e86219808669
+cba9b8fb51903ed99ddad1429313adfeAYctaK4aibojJVNiyQeU��9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+25f3c2571eb6b585911883348392b396
+b5c176d7b6ee66ed097331e3d8784d6f
+d0179b4e9d299f129f66a2f74b07b8c4
+a4d29e26d236db30da015613c6008d16
+835bad70434659ddf64059a15c20c9cc
+577766060f660b0dfaa4acd2830b6a15AYctaK4aibojJVNiyQeU��9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+a4d29e26d236db30da015613c6008d16
+d24f9483e78b787d19c65ca4b7d46d76
+15a37fb2e2b316aaed5862057b27652a
+f288e3b142e004c17f46ab3d780bfcbe
+
+687ac9f9960e8f10017c88c31845f4a4
+9e713f28536277f71cdcbfb3e0bff4aa
+a4d29e26d236db30da015613c6008d16
+d24f9483e78b787d19c65ca4b7d46d76
+7a3c268f4d971624cd0b5e1f4a2e8d93
+da59d3adedb2029acdb3a720fe8a73fa
+31a6fb5282fb0d2652d39aebc20d2f02
+d227cd9234ed2412ceb4c2e87efe1cb0
+27c9ebf50ea9c9bfb80661bdcbd320f7
+
+5a286e61fb600c7e0fc61460d207e222
+796b4d68651ec9678c621e88c0e9e918
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+b9a78277bcb07aa5c21605ce8a7ea1d8
+2fec2f7ca7f8806695eecaebcb4ae103
+
+cba9b8fb51903ed99ddad1429313adfeAYctaK4aibojJVNiyQeU��9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+b5c176d7b6ee66ed097331e3d8784d6f
+dad1c20e1b13802e3ecee03a7190eca5
+04e7ae8d995867d81c00216bcf50d9fa
+28f4bbb279711849f33cc830cfdaa859
+0e31906f3374db880f9a589eece00f42
+
+89a3c079fe956f7ff74023ddae05374a
+c12fe896c0bfb591347407edf0d8b05b
+119814c8eab1ad881511a85d33651c1f
+3b20c7aba6a33428203344090681fd6b
+ce7c6c26be5cda6f44df3197997fd00c
+28f4bbb279711849f33cc830cfdaa859
+b0056bee7c995d07685738f6e106bd8f
+cba9b8fb51903ed99ddad1429313adfeAYctaK4aibojJVNiyQeU��9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+fe2db955ff2915c0756d1d3ecb2bae79
+b5c176d7b6ee66ed097331e3d8784d6f
+a4d29e26d236db30da015613c6008d16
+a55c136ff2a2c132fda1fc60f72b8f06
+efe275e00752fdfa0ea8198866a60e16
+774afac34498b5101906f9c33701648f
+8062b94b5cccae31ff07adc0beed9c31AYctaK4aibojJVNiyQeU��9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+3d6dc9353c39aea785afad7c51c6354e
+b5c176d7b6ee66ed097331e3d8784d6f
+a4d29e26d236db30da015613c6008d16
+e964a01fdf88802229032c1c4154421a
+3d68e43382fbeee2316f1df31f837093
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+a4d29e26d236db30da015613c6008d16
+e964a01fdf88802229032c1c4154421a
+f6f4057026f83ccff8ec34250bdd98e6
+
+5a286e61fb600c7e0fc61460d207e222
+689b4ce7ad7b8d6bc9908329067acf41
+a4d29e26d236db30da015613c6008d16
+d24f9483e78b787d19c65ca4b7d46d76
+598f6bae5eb727390969131a16b6aaa9
+cf687b41e8b76efcfdace19612b52968
+5263204f40ee3804bf6b4788056eee58
+119814c8eab1ad881511a85d33651c1f
+f2d7ff291f4a77c7b55f3e7e50f1d120
+0223972f4589e328d135a96d01ae6978
+
+22a1099d01fe7a9042bbf42bddbbb8d9
+f46f9b4c8cb84de8ef7d01518fc587bc
+a4d29e26d236db30da015613c6008d16
+3a053c171a017c1655e39a3a06755bce
+c249ee0eb1cc3f5b7b3fa78c62c37fd0
+4bdb49ad0a94fb290734d2685ee96779
+5e7b3881c7250dd521012acf005f2965
+de7a4849932fd0c5c1f1a5b8de29eca6
+5e4e5135185921ba56df731c28f775d9
+cba9b8fb51903ed99ddad1429313adfe
+
+687ac9f9960e8f10017c88c31845f4a4
+53529562e30c66644e967d2ee84b3c73
+1bf04f704ef61cbafb011961e7e17553
+04e7ae8d995867d81c00216bcf50d9fa
+d24f9483e78b787d19c65ca4b7d46d76
+774afac34498b5101906f9c33701648f
+5a36e27727da9b0443b886c0cbe231e9
+1e0099e6abf3d734107366abaaa38f6e
+AYctaK4aibojJVNiyQeU�Y�Y9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+3d6dc9353c39aea785afad7c51c6354e
+a4d29e26d236db30da015613c6008d16
+e964a01fdf88802229032c1c4154421a
+941cca0b1afce91d73fb83b58b4c05cc
+f288e3b142e004c17f46ab3d780bfcbe
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+a4d29e26d236db30da015613c6008d16
+e964a01fdf88802229032c1c4154421a
+f6f4057026f83ccff8ec34250bdd98e6
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+9fa2fccce2e87da8324578b50b17ae9d
+a4d29e26d236db30da015613c6008d16
+e995a9e189c5aaf6162a7d515eaccb75
+
+5a286e61fb600c7e0fc61460d207e222
+0a9847df4f4eb967ae0dc6d5e31980c5
+5392e7bfbe26609e7dda98c4d873538f
+d24f9483e78b787d19c65ca4b7d46d76
+c249ee0eb1cc3f5b7b3fa78c62c37fd0
+0224d9e2571b74ee147687818e3c8cfd
+f1e3e8ea812f33102303f66dec013cfc
+300a05dcea57be93c1076e4b9e3182b8
+
+7300c69f48a96598a091d42c4b79db37
+0aaee3d74c300fc4766fcb27dbf49e0b
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+bfa8ba42e4df034af579bdf8fecd9c9b
+b4be9db3275b4168c165870480628a15
+
+5a286e61fb600c7e0fc61460d207e222
+cb5e3a7094032d4d1663938a074efc27
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+bfa8ba42e4df034af579bdf8fecd9c9b
+cee088f336ffba5588fe2b5bf655fc2e
+f1e3e8ea812f33102303f66dec013cfc
+300a05dcea57be93c1076e4b9e3182b8
+
+f4c2775c78ba1be79833cbd520cfb720
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+b9a78277bcb07aa5c21605ce8a7ea1d8
+58258f63fb645554e2c9346288118d30
+cba9b8fb51903ed99ddad1429313adfe
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+8174a802f57fce1241855c2f64be27c4
+a4d29e26d236db30da015613c6008d16
+e964a01fdf88802229032c1c4154421a
+f6f4057026f83ccff8ec34250bdd98e6
+
+7300c69f48a96598a091d42c4b79db37
+a4d29e26d236db30da015613c6008d16
+6b06a749d66ea2ba296e1d8c86101f66
+275c5da94ca3b1085ce3ec2c165b0958
+
+32c1ff2ecbdc88645c68155032bd450f
+a4d29e26d236db30da015613c6008d16
+3a053c171a017c1655e39a3a06755bce
+c249ee0eb1cc3f5b7b3fa78c62c37fd0
+982d7916be0ce4b1adfbf7405477207e
+2ba1d9cc14e75eb13bd56b23a2e523b4
+90c24c8cf1222396fd985362534e6ea3
+fb34dca29ff989cb86e25c4828f0c9ce
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+a4d29e26d236db30da015613c6008d16
+574e1dadd95516713038a412e3cdf4e1
+
+6ab9c24d16ea1b0ab2a07e83c7a01e71
+eca4bc66af9a59877bb0ce58c2fc2a95
+a4d29e26d236db30da015613c6008d16
+d24f9483e78b787d19c65ca4b7d46d76
+d32ce2a4484bae8aa66c4ca3080ba3d5
+d336b383bcf37c1d0a9cca9020f01261
+301c6c0d95de57684f735ce32394c7f0
+5e465ae8df9b597064b6c8a170355912
+f64b0c33e39d8bd8cf6383a7e45156fa
+6162042fca490161f44a0cb80edc47c4
+2908dd848767618595012c0a98a7b744
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+532999ae09aee555ea8b4ec8ff248730
+a4d29e26d236db30da015613c6008d16
+d24f9483e78b787d19c65ca4b7d46d76
+15a37fb2e2b316aaed5862057b27652a
+17371aec2d1d60e02bd7163d7c6694cc
+2fec2f7ca7f8806695eecaebcb4ae103
+cba9b8fb51903ed99ddad1429313adfe
+1dac30c9428757264f4363181edb012e
+
+7300c69f48a96598a091d42c4b79db37
+a4d29e26d236db30da015613c6008d16
+6b06a749d66ea2ba296e1d8c86101f66
+275c5da94ca3b1085ce3ec2c165b0958
+cba9b8fb51903ed99ddad1429313adfe
+cba9b8fb51903ed99ddad1429313adfe
+
+7300c69f48a96598a091d42c4b79db37
+650f7632cd6f2a1442ee3bf1d302cc47
+a9fb4c37b2731d691b89ac5bd1505e15
+ce7c6c26be5cda6f44df3197997fd00c
+e6fec641cc381b6fbfc7f4fdce949773
+edf13d14022c02bd2d5ab3d41d085af9
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+b5895b7e50db5fc5c6bee6e9a56b8794
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+5b95e81c382b40ca5ad9402abad152d7
+b7e779957a2a6092ad5bf6daa2369ae2
+f1e3e8ea812f33102303f66dec013cfc
+0f97753b080f0fc1caf5c2dc6b58b092
+141f96c5fa761e11a1c079c133df2cab
+
+3d6dc9353c39aea785afad7c51c6354e
+5392e7bfbe26609e7dda98c4d873538f
+28f4bbb279711849f33cc830cfdaa859
+bbae0e14f3c74be58971ddddf74f80dc
+
+7300c69f48a96598a091d42c4b79db37
+8f4a82921dcf6369fc9c34b6dc37d774
+04e7ae8d995867d81c00216bcf50d9fa
+5715b1a2ccd3ecdf25087b825a0d131f
+
+7300c69f48a96598a091d42c4b79db37
+b0c48498691bfae1bac090315ff50971
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+bf62aa1caedfa1427e0d5cf755962f18
+7c536791c0e5241b271d307a8fb05510
+774afac34498b5101906f9c33701648f
+cf687b41e8b76efcfdace19612b52968
+897a5a3ac2e61f9ab5f989ab986fbc4b
+1e0099e6abf3d734107366abaaa38f6e
+
+3d6dc9353c39aea785afad7c51c6354e
+5392e7bfbe26609e7dda98c4d873538f
+28f4bbb279711849f33cc830cfdaa859
+bbae0e14f3c74be58971ddddf74f80dc
+
+7300c69f48a96598a091d42c4b79db37
+6796a823c25e47c03a97a6f4f7db200f
+04e7ae8d995867d81c00216bcf50d9fa
+5715b1a2ccd3ecdf25087b825a0d131f
+
+7300c69f48a96598a091d42c4b79db37
+79ea29ecb7bf7d0a974bc0174427c5e2
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+bf62aa1caedfa1427e0d5cf755962f18
+774afac34498b5101906f9c33701648f
+cf687b41e8b76efcfdace19612b52968
+cfa72ab233391bc8e439ae10968a3184
+897a5a3ac2e61f9ab5f989ab986fbc4b
+1e0099e6abf3d734107366abaaa38f6e
+
+3d6dc9353c39aea785afad7c51c6354e
+5392e7bfbe26609e7dda98c4d873538f
+28f4bbb279711849f33cc830cfdaa859
+bbae0e14f3c74be58971ddddf74f80dc
+
+7300c69f48a96598a091d42c4b79db37
+3f6ef7c3bda4822c70fdf6dc7ea2f87c
+04e7ae8d995867d81c00216bcf50d9fa
+5715b1a2ccd3ecdf25087b825a0d131f
+
+7300c69f48a96598a091d42c4b79db37
+428a60bab6a72deeb7fe2c2aaeb881bb
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+bf62aa1caedfa1427e0d5cf755962f18
+774afac34498b5101906f9c33701648f
+cf687b41e8b76efcfdace19612b52968
+212e36c3ac9eb4179db6eb59ee02e97d
+897a5a3ac2e61f9ab5f989ab986fbc4b
+1e0099e6abf3d734107366abaaa38f6e
+
+3d6dc9353c39aea785afad7c51c6354e
+5392e7bfbe26609e7dda98c4d873538f
+28f4bbb279711849f33cc830cfdaa859
+bbae0e14f3c74be58971ddddf74f80dc
+
+7300c69f48a96598a091d42c4b79db37
+b1428b06205164806457235f22106e6c
+04e7ae8d995867d81c00216bcf50d9fa
+5715b1a2ccd3ecdf25087b825a0d131f
+
+7300c69f48a96598a091d42c4b79db37
+ab9f6c0531074644f306fef5bc207640
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+bf62aa1caedfa1427e0d5cf755962f18
+774afac34498b5101906f9c33701648f
+cf687b41e8b76efcfdace19612b52968
+897a5a3ac2e61f9ab5f989ab986fbc4b
+1e0099e6abf3d734107366abaaa38f6e
+
+3d6dc9353c39aea785afad7c51c6354e
+5392e7bfbe26609e7dda98c4d873538f
+28f4bbb279711849f33cc830cfdaa859
+bbae0e14f3c74be58971ddddf74f80dc
+
+7300c69f48a96598a091d42c4b79db37
+28d3a0ea42a7fdd8369c54b192c9d947
+04e7ae8d995867d81c00216bcf50d9fa
+5715b1a2ccd3ecdf25087b825a0d131f
+
+7300c69f48a96598a091d42c4b79db37
+82840e2f09f74e35cc69b84a7fd4c688
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+bf62aa1caedfa1427e0d5cf755962f18
+774afac34498b5101906f9c33701648f
+cf687b41e8b76efcfdace19612b52968
+897a5a3ac2e61f9ab5f989ab986fbc4b
+1e0099e6abf3d734107366abaaa38f6e
+cba9b8fb51903ed99ddad1429313adfe
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+06ced605278e8172c038f07604347079
+a4d29e26d236db30da015613c6008d16
+d24f9483e78b787d19c65ca4b7d46d76
+a7f4250f3e1c92439ebe176788303bcb
+58f6fc01279d1522c45c673cb6350cce
+141f96c5fa761e11a1c079c133df2cab
+
+3d6dc9353c39aea785afad7c51c6354e
+d3c1decb08f825ed9b1fed9d287b87dd
+5392e7bfbe26609e7dda98c4d873538f
+d24f9483e78b787d19c65ca4b7d46d76
+bbae0e14f3c74be58971ddddf74f80dc
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+15a37fb2e2b316aaed5862057b27652a
+b9a78277bcb07aa5c21605ce8a7ea1d8
+2e295b377dab63c17edcfd097a493562
+
+7300c69f48a96598a091d42c4b79db37
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+ebf7a3af1864a9aa9bdd97e91fb05e37
+76c33a0badb8cd025ea67632e0def1ed
+
+5a286e61fb600c7e0fc61460d207e222
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+b42fd714cef978f5f83877088358f5a1
+82e5b58d98346bf79ef822266c27751b
+cba9b8fb51903ed99ddad1429313adfe
+
+7300c69f48a96598a091d42c4b79db37
+15424851e99e5643f0a03eab5dafd526
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+bf62aa1caedfa1427e0d5cf755962f18
+8ebdb9c19965c0579686fe2b70c69138
+8bf53ef37d649d7ee0b960b57ff32d7a
+774afac34498b5101906f9c33701648f
+cf687b41e8b76efcfdace19612b52968
+897a5a3ac2e61f9ab5f989ab986fbc4b
+1e0099e6abf3d734107366abaaa38f6e
+
+3d6dc9353c39aea785afad7c51c6354e
+1fbdea04873a2a102fbb88df3e04b839
+5392e7bfbe26609e7dda98c4d873538f
+d24f9483e78b787d19c65ca4b7d46d76
+bbae0e14f3c74be58971ddddf74f80dc
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+15a37fb2e2b316aaed5862057b27652a
+b9a78277bcb07aa5c21605ce8a7ea1d8
+2e295b377dab63c17edcfd097a493562
+
+7300c69f48a96598a091d42c4b79db37
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+bca6b23b490608c533adcf35a652a01c
+76c33a0badb8cd025ea67632e0def1ed
+
+5a286e61fb600c7e0fc61460d207e222
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+d6b59d4ccbf1ee145cfe1d5c4f893c5d
+82e5b58d98346bf79ef822266c27751b
+cba9b8fb51903ed99ddad1429313adfe
+
+7300c69f48a96598a091d42c4b79db37
+ccde67fde28c5230ce0efa4f15975885
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+bf62aa1caedfa1427e0d5cf755962f18
+774afac34498b5101906f9c33701648f
+cf687b41e8b76efcfdace19612b52968
+8ebdb9c19965c0579686fe2b70c69138
+8bf53ef37d649d7ee0b960b57ff32d7a
+897a5a3ac2e61f9ab5f989ab986fbc4b
+1e0099e6abf3d734107366abaaa38f6e
+
+3d6dc9353c39aea785afad7c51c6354e
+e9b367357c10441970cd5e56f0e4e7ed
+5392e7bfbe26609e7dda98c4d873538f
+d24f9483e78b787d19c65ca4b7d46d76
+bbae0e14f3c74be58971ddddf74f80dc
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+15a37fb2e2b316aaed5862057b27652a
+b9a78277bcb07aa5c21605ce8a7ea1d8
+2e295b377dab63c17edcfd097a493562
+
+7300c69f48a96598a091d42c4b79db37
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+9f04c51d90a65b3e62a949f7d53ef6af
+76c33a0badb8cd025ea67632e0def1ed
+
+5a286e61fb600c7e0fc61460d207e222
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+30aaca42bf3b86cfd0afb24726c9ea94
+82e5b58d98346bf79ef822266c27751b
+cba9b8fb51903ed99ddad1429313adfe
+
+7300c69f48a96598a091d42c4b79db37
+ebec7a32386ad8acd5cc439c2be1c18e
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+bf62aa1caedfa1427e0d5cf755962f18
+774afac34498b5101906f9c33701648f
+cf687b41e8b76efcfdace19612b52968
+8ebdb9c19965c0579686fe2b70c69138
+8bf53ef37d649d7ee0b960b57ff32d7a
+897a5a3ac2e61f9ab5f989ab986fbc4b
+1e0099e6abf3d734107366abaaa38f6e
+
+3d6dc9353c39aea785afad7c51c6354e
+09051ed69a09559eb765c91f65dfb93d
+5392e7bfbe26609e7dda98c4d873538f
+d24f9483e78b787d19c65ca4b7d46d76
+bbae0e14f3c74be58971ddddf74f80dc
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+15a37fb2e2b316aaed5862057b27652a
+b9a78277bcb07aa5c21605ce8a7ea1d8
+2e295b377dab63c17edcfd097a493562
+
+7300c69f48a96598a091d42c4b79db37
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+99549f90605a6c0640f39c2dd724302b
+76c33a0badb8cd025ea67632e0def1ed
+
+5a286e61fb600c7e0fc61460d207e222
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+6d1bc09dc778c31f8a7613e27652388a
+82e5b58d98346bf79ef822266c27751b
+cba9b8fb51903ed99ddad1429313adfe
+
+7300c69f48a96598a091d42c4b79db37
+b2da449b7d2a6006c95004e90aba7b6e
+ce7c6c26be5cda6f44df3197997fd00c
+d24f9483e78b787d19c65ca4b7d46d76
+bf62aa1caedfa1427e0d5cf755962f18
+774afac34498b5101906f9c33701648f
+cf687b41e8b76efcfdace19612b52968
+8ebdb9c19965c0579686fe2b70c69138
+8bf53ef37d649d7ee0b960b57ff32d7a
+897a5a3ac2e61f9ab5f989ab986fbc4b
+1e0099e6abf3d734107366abaaa38f6e
+cba9b8fb51903ed99ddad1429313adfe
+1e0099e6abf3d734107366abaaa38f6e
+AYctaK4aibojJVNiyQeU�!�9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+b06f2ef8c0935f05e9fcb679c7d3cec3
+f288e3b142e004c17f46ab3d780bfcbe
+e29574cb46c11aaffb30805c2159a442
+d25c368aed6097a0cb6a549b4e9c0607
+48b58df14711133746443b5c9540de2d
+1b640806280cc081f26d2535a7671c8c
+9e60f6be9b655f32c44ea3cd554c3c89
+
+e29574cb46c11aaffb30805c2159a442
+1461ad8c02d148752421feae864149e6
+b2df69a33a92456b4e8851103d2a2c4f
+eb3734742bde81c4c8de7389925ba8f7
+9e60f6be9b655f32c44ea3cd554c3c89
+d2ed5053cfe600870c47d2fbc55842f6AYctaK4aibojJVNiyQeU��9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+3d6dc9353c39aea785afad7c51c6354e
+b5c176d7b6ee66ed097331e3d8784d6f
+dea268481931ff5b4947ed56b2e1a601
+8470be9b1ec88aef7f8bf8f0d659e893
+
+7300c69f48a96598a091d42c4b79db37
+5b35c9fc50dd8e54da5bedb65b3b1d73
+a4d29e26d236db30da015613c6008d16
+577766060f660b0dfaa4acd2830b6a15
+
+5a286e61fb600c7e0fc61460d207e222
+0274524d2b1760f5a69d0cf32ba960dc
+a4d29e26d236db30da015613c6008d16
+e964a01fdf88802229032c1c4154421a
+4f4c0ae5d660e9f10c2d341cd2cce89a
+b45cb82e7cd2b90b010f93048d1adf12
+8f03980a75a2496b476b78007b550938
+4028dfb871df0bf08d08acfd0a622c09
+b5652e73fbdc97be585dd6ec70203f1f
+0c7541163b791607db21e25e975fddec
+2908dd848767618595012c0a98a7b744
+1e0099e6abf3d734107366abaaa38f6e
+AYctaK4aibojJVNiyQeU��9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+7ffb1925ff2cae6e3d0a41a83a23662a
+b5c176d7b6ee66ed097331e3d8784d6f
+a4d29e26d236db30da015613c6008d16
+e995a9e189c5aaf6162a7d515eaccb75
+
+7056728827c7d316e49d27d63c127f56
+663dc0c40bbe54ac023ca624fc919d50
+ce7c6c26be5cda6f44df3197997fd00c
+5c57422a5ff67f43c98257588cf82372
+ffa2c3e34660f7ba8aecf298f7451b66
+774afac34498b5101906f9c33701648f
+9c9d04648bffcc8c2abe2a7b890128f5
+
+6ab9c24d16ea1b0ab2a07e83c7a01e71
+097b58dd98e90c10e9361a5ec3077b4c
+a4d29e26d236db30da015613c6008d16
+d24f9483e78b787d19c65ca4b7d46d76
+59660723a3ba34e12dd9ab4ddd52a849
+bfa8ba42e4df034af579bdf8fecd9c9b
+6162042fca490161f44a0cb80edc47c4
+f1a76f25ecf5f49c5c42d1b321ff6bb3
+cba9b8fb51903ed99ddad1429313adfe
+AYctaK4aibojJVNiyQeU��9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+b888355d8ecf7073ee9a5e5806611333
+b5c176d7b6ee66ed097331e3d8784d6f
+6dedb4393182cb7a8740ce4511c1de0a
+05f80de1139974e9b05dcb8a5ab6ae3c
+5cc3ac30782d0411d7ed9a109535a9f9
+5c404771d848f5b1bcf7469b40fc639c
+AYctaK4aibojJVNiyQeU��9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+8928f5beaee139e78a264bb0519343e9
+f288e3b142e004c17f46ab3d780bfcbe
+41826358932e0897dd2e13b1fa5d4a98
+dfdce9d705db0fe744624acab88231f8
+0ecda014096a4349113daf516b1329d4
+
+42ce4bf1d0ca6f1ded4389f609c0b2bf
+885c84311d557183b68a9cdbad8bbc1d
+fd7afb27ed4d3387061d30bbc265fb93
+7d9ce3c702ff5f104455620c6ca36aeb
+fb8da1c75f1386cc8a332f7b6d1d6220
+0ecda014096a4349113daf516b1329d4
+ecdd88217248177a53c1997230c1ca79
+AYctaK4aibojJVNiyQeU��9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+fbe22b3f883f6d36d9a295499acfbc14
+b5c176d7b6ee66ed097331e3d8784d6f
+7fb6c8807360623509f3578927fd6d92
+327e810f25c827b0fdfd0624c16e6cc8
+613869f16ef58d8ed802af8d2dbf7ca6
+
+97ec3e236a7d756cef8d2ca9f73aea52
+45855d25ec1ba54d86d816c0e4455fa8
+fc3b9a5a36627f6efddb2e126f5273de
+58933a1db8fbc5f61c7c536e7d4dd403
+AYctaK4aibojJVNiyQeU��9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+b888355d8ecf7073ee9a5e5806611333
+b5c176d7b6ee66ed097331e3d8784d6f
+c46350fd3f25cabe85b2fc93fae6c8cd
+91a8a49d1e1c993dff3ab24ecbc74a76
+5aa6165dfead149ec6b5271e0a07c0a4
+5c404771d848f5b1bcf7469b40fc639c
+AYctaK4aibojJVNiyQeU� �9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+b06f2ef8c0935f05e9fcb679c7d3cec3
+f288e3b142e004c17f46ab3d780bfcbe
+
+e29574cb46c11aaffb30805c2159a442
+d319e0474ef18738361e6859a04a0efa
+dabd6af3455f59193d04f7a79ad0bb2f
+d2ed5053cfe600870c47d2fbc55842f6AYctaK4aibojJVNiyQeU�"�9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+6a92d6ba68259d599631165c6e9ce289
+64c404e43b929670ca8638ed09f5051a
+d2ed5053cfe600870c47d2fbc55842f6AYctaK4aibojJVNiyQeU�#�9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+b06f2ef8c0935f05e9fcb679c7d3cec3
+f288e3b142e004c17f46ab3d780bfcbe
+e29574cb46c11aaffb30805c2159a442
+0eea4919a8083941bc715c5d137d9f8a
+2fa805d331bc2e712f5774fbad7717ae
+d2ed5053cfe600870c47d2fbc55842f6
+AYctaK4aibojJVNiyQeU�
+$�
+9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+b06f2ef8c0935f05e9fcb679c7d3cec3
+f288e3b142e004c17f46ab3d780bfcbe
+
+e29574cb46c11aaffb30805c2159a442
+d319e0474ef18738361e6859a04a0efa
+dabd6af3455f59193d04f7a79ad0bb2f
+
+e29574cb46c11aaffb30805c2159a442
+5fcafbbd91f1ebf3d0d8214527cb4379
+b139259722e4ba69511b897463d19163
+
+e29574cb46c11aaffb30805c2159a442
+8e54f0a4ab54bb7b6277df65180d3a1b
+82d8daca44e3ef7a9b56c20411349452
+
+e29574cb46c11aaffb30805c2159a442
+e97a2c530ade337ac6608693f1046893
+85b0c309fb0ecaf5e3eb07c83d56ef59
+
+e29574cb46c11aaffb30805c2159a442
+effcaab82f24eb63f152594a08e719d4
+c7e5adf2dab53567604c998177cd1fd5
+
+e29574cb46c11aaffb30805c2159a442
+5dc73d4b268dbfec88b6158ccbed30c5
+789e2b84325a9b5c7c62f9a532070100
+
+e29574cb46c11aaffb30805c2159a442
+0f2e35391159abb54485947d250bc1a8
+035e1b4158457347e72ad4809415c9bf
+
+e29574cb46c11aaffb30805c2159a442
+a1853fc58a7f9fdf43898bb38c7501bc
+40bc7ef98d6f8f710af4eb98197928d8
+d2ed5053cfe600870c47d2fbc55842f6AYctaK4aibojJVNiyQeU�%�9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+b06f2ef8c0935f05e9fcb679c7d3cec3
+f288e3b142e004c17f46ab3d780bfcbe
+e29574cb46c11aaffb30805c2159a442
+638db9b3b8ff043470a86d7c0d4bd8fe
+54cd0855047fe10035f63148b59a2983
+
+e29574cb46c11aaffb30805c2159a442
+9300b285372a9aa30988e0d9bde57d4b
+95ffc4126e6799cd098ea1bcdfce17e2
+
+e29574cb46c11aaffb30805c2159a442
+0136ec090295ef099900c54f77a0429f
+afe6a15d0c5b1e32eb5c32da539a3942
+
+e29574cb46c11aaffb30805c2159a442
+f4540c5c1a0119b294bdb3e06b5a412f
+6d4f91ec782db8315a2dc5bb5f86ad38
+
+e29574cb46c11aaffb30805c2159a442
+0eea4919a8083941bc715c5d137d9f8a
+2fa805d331bc2e712f5774fbad7717ae
+d2ed5053cfe600870c47d2fbc55842f6
+AYctaK4aibojJVNiyQeU�	&�	9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+b06f2ef8c0935f05e9fcb679c7d3cec3
+f288e3b142e004c17f46ab3d780bfcbe
+
+e29574cb46c11aaffb30805c2159a442
+5fcafbbd91f1ebf3d0d8214527cb4379
+b139259722e4ba69511b897463d19163
+
+e29574cb46c11aaffb30805c2159a442
+8e54f0a4ab54bb7b6277df65180d3a1b
+82d8daca44e3ef7a9b56c20411349452
+
+e29574cb46c11aaffb30805c2159a442
+e97a2c530ade337ac6608693f1046893
+85b0c309fb0ecaf5e3eb07c83d56ef59
+
+e29574cb46c11aaffb30805c2159a442
+effcaab82f24eb63f152594a08e719d4
+c7e5adf2dab53567604c998177cd1fd5
+
+e29574cb46c11aaffb30805c2159a442
+5dc73d4b268dbfec88b6158ccbed30c5
+789e2b84325a9b5c7c62f9a532070100
+
+e29574cb46c11aaffb30805c2159a442
+0f2e35391159abb54485947d250bc1a8
+035e1b4158457347e72ad4809415c9bf
+
+e29574cb46c11aaffb30805c2159a442
+a1853fc58a7f9fdf43898bb38c7501bc
+40bc7ef98d6f8f710af4eb98197928d8
+d2ed5053cfe600870c47d2fbc55842f6
+AYctaK4aibojJVNiyQeU�(�9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+ef523ee1fe3d6b8cb3b5697ba32f7ac4
+efe01d54dc6dd01ebb96bd7e22d76b3c
+89331e19a04d1d66dff3374a4e6b66cf
+a679447dd051d08d11b05e4fc88c36b0
+7abe717b3f094d8ac1597412b0d2f80e
+01202676c1884b2fccbcca12b0465b28AYctaK4aibojJVNiyQeU�)�9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+faa4c6dcb39c8985d78428e017bda7ef
+c092fcd9bba864f5709ebee60b6c8953
+25272805795085d7630b5e403d6b0178
+9839542e9a8736cfd56b757ea6e09a13
+14da9a5106803bbf45d974b69d8e199f
+5f72494bd243ee6bfbb0874d3263b907
+83e6d444fddc93985bf9e76ed827c9c0
+5d47bd610025d114413384d384826dcf
+fc394c9570ed6b8f24b4074c5e1a10a2
+d63c7db3c55fefd0f265d6674b60fce0
+8e1a61dc831186dbdc389b5199c6f7b4
+9e6ac378533742698431e492270aac3e
+890f030569860ea5321bd31d2f93d9a7
+984856f464ab62ca6a920fdfae9205d1
+b89c4fc3da7656685488af63a33fab36
+58a3886181897bfe247f40d39b4812b9
+e6c495accacc928ef2fc312e13d9c27d
+0e90724787a71dc383124956ef17c252
+08ee484931baf6609275b3c59852b8f2
+5261dc79c7958df250410ecbc895060b
+beffaefd1ac372e11b9012ee521881c1
+61af3c701789eaafd244ecb74f120867
+6c03ee6bc38cc6c313e3f7810f509830
+2b05aa49a8346c0b5fdeb02a5107ba33
+ff3b1c5cb69de0f127f891a6a28d51d7
+89321dfa4a02065277366866cc964350
+7ab6f9852b2eb0deae4d9e3af7c9ba48
+de91b04e6c57dacda176bb2d1313046f
+513d5aa0064ee87ac86be422af466a22
+95f4362a417753e4d0a6306e7d49f930
+e4d5b8e98e13731fcec8fb06624d814d
+916ff0e2bd867fbc98e379d39f964fed
+ffe8a0bd6048010b4bde3a79ac359862
+50b44dc128b8f8c95a90f7519a23bf27
+69d9ab8dfdcc9d3ee134e9b32c699458
+3785346cd99ab3065b322fb1305e4923
+de74be8e0ad8f2198ba04b282ae4a254
+f1070bd8089232310fda702cc2d50146
+69c6fe0f261d14a33a0a8e457e9dc53c
+7f07f933ea80d4143aa3da95deb17fba
+e158bce990737898e8ba153a4d767bc7
+6f943d47a1b2d63974faad0c3a097f8a
+227dfd9277c1bee6f30f60f0576072a4
+eb2bf2ea5cb3e27b62b1d72714a1b024
+5e3a21a7e962027309ef050e72d375f7
+19dfc5177691839de86ba5d512a04443
+865001592241e07fc70efd362693acd1
+021c067b698f766154590b9f5c4e8856
+ecf0c3f52e7d5c3a02742674e0990af4
+f429191b2bd7e242a976a53abe4be6e3
+490937a7bcd49ebd89520e431f302039
+07341264441c40d809b24da6c1630d2b
+0628bef5c9b4a0e3f63e3fcb25077590
+f3c3d2ea4dc612e06c4485dd9b217808
+97a5930740f5e5af59967f646ed4e21b
+10201d0b0daadf68ad8cb306a9da3c4e
+3dbfcf4c29e815a79af5a4c34cb86271
+757a8dbaa468f0abe4f603b0fe2b0153
+b722c963a90b450cf9f9bfcdae31820a
+fe9c45d08ee745055118b811210effb3
+42ddcd441c35408bfe976112acdb0f53
+2f768404f9d77c3491f82798a5d674cd
+8fec9cdf7ade21eba8238a3543ed164a
+58bd88d12b94cba2760593831da0b4e3
+af30909ad41d05155174d2ec6681ba56
+39bd0415791c6159dd1a4a30be7a0b0d
+8f8de9d4f3860380b69bcb74232af259
+1620aaee77d205b965bab6c68e97906c
+d9a80b995b00170dabd5e3d02650036d
+d966759abf31201189a9131b9ae7ec2e
+d3ee313923bd312503ab494569819ce2
+76fa406d806e9350d88333018a474529
+22197b542e5d39ed062ef6e77aa1ee37
+0c6f5460b3dbd292962a7db2f3510b41
+5540ce89cee4650f525b6f5d9556637e
+43590824ac86a645a4d72b2cc4865931
+1341ea6bc82517fb13ec15b35898ef67
+db007d40d5a9c4eb119c89c281f7676f
+aae584f46f7150be1c1244ff56d572ca
+803ff1913a2dea698bdd01fb92c2e1b2
+3ab843420d9cf3867277085193271390
+530a983e08039d41770247b2f8052fa2
+71cd10c8021c3cd950592529c5ff1c31
+6e007145ba5e0fbdd0072471cfff870a
+4ae3d414383bbe8ca32faa1af0743376
+ba800c40c5f79f1161fd064baa7a7281
+e27a6e537c9a96169d66c6a2b8efaf91
+79aefd04f944ec09b03018c40f2338d5
+fadbc14d711a98cfaa4ccd0b06debcef
+a893b2c19e295819f0e31719975de5d8
+e9d279ee3a2db35d9098003fb3648cd6
+45d5e0280e2512eb8877791dcd74548c
+2d8a5be4bd38dc5fea7eccdc2775fca9
+19e9da351c417403cf0dd4b97ce13795
+ae77f66b8069bfa39b4f8be622b66b38
+bb6282b52dc99d4805480a7eea280f4a
+45313d039ae52f1bb7c3d932aa56aee8
+48673c070031a3925c1607360d22a369
+f7af6841bf0aaa883ac799b1ce3140ed
+ed5e94acfecfdb601eb9b07b39eae5d6
+2a20ffa2072fd419fde34925b54721c2
+caa8946e815b29dec014c94589231ff8
+55c20dd92d90dda1ffd3818547f2d9be
+782b1a545595be37e91953f52cac74fc
+c4b53b0abb929d3c58d479377a520fb3
+a790717508985195e894fcb940f4ada1
+ed0688fdce283c828c55cc5039d72c94
+
+01202676c1884b2fccbcca12b0465b28
+AYctaK4aibojJVNiyQeU�.�9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+6eac5c3a7dddb99af3a84303ad449b63
+a5ae53bd1a77ce4b5a9a761eb08d20b3
+6e482d07f9afae1b6932d7473b3156b8
+e29574cb46c11aaffb30805c2159a442
+8175fce491db6644caf4b6f179e2c75d
+b4854b6eed99bfb87b5f4c1b593ed4fc
+AYctaK4aibojJVNiyQeU�0�9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+ef523ee1fe3d6b8cb3b5697ba32f7ac4
+efe01d54dc6dd01ebb96bd7e22d76b3c
+89331e19a04d1d66dff3374a4e6b66cf
+57200acc40acc7da5ef9430d6dce55ad
+7abe717b3f094d8ac1597412b0d2f80e
+01202676c1884b2fccbcca12b0465b28AYctaK4aibojJVNiyQeU�+�9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+6eac5c3a7dddb99af3a84303ad449b63
+d834ab6ee77ea0dfb9294ae7c7a0ddab
+b4854b6eed99bfb87b5f4c1b593ed4fcAYctaK4aibojJVNiyQeU�,�9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+6eac5c3a7dddb99af3a84303ad449b63
+ec16d1b91f0b75c05d4901418e5e02db
+58aa4c83759a8736d0880d1d44948c91
+0a07ad1ab77ea54e9e9d4788199b92c1
+b4854b6eed99bfb87b5f4c1b593ed4fcAYctaK4aibojJVNiyQeU�1�9c01c303c77851bb36f0a499a6d66d41
+
+6d222fe8e99aac79ddfde5ba8b308b5d
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+
+faa4c6dcb39c8985d78428e017bda7ef
+c092fcd9bba864f5709ebee60b6c8953
+bd379477df10d7286c3f8e65c299c420
+2eaa40439a13e7dee6251adc28571275
+c7ea720dab34e9a871b73a030c8799f4
+c27eeaa816c88d17524c4f8085625a24
+cc49e2087a01ebf18d3fdbeb2d733ce6
+5d47bd610025d114413384d384826dcf
+7221f543e411af5db29f210f8d5b10dd
+9c00008bfede72820dac05a1e9ed2667
+67de25ea21b0bd2d8be68fab1828a207
+2137c270f514f0fdcab0eaeddd9525c5
+890f030569860ea5321bd31d2f93d9a7
+984856f464ab62ca6a920fdfae9205d1
+b89c4fc3da7656685488af63a33fab36
+58a3886181897bfe247f40d39b4812b9
+57497223ac176e7efd593b2f99447107
+f51d5a17d1683f200b51538a9c6d4c7f
+6409dc39b81c3bfdf9d8c226201afcea
+21cd74af72dfd63473c81decdf561cfb
+c1bc204a23f227de30a7b130220b0b75
+beffaefd1ac372e11b9012ee521881c1
+d4a7920f6af6f340d508d0ce4d9b4847
+559230e0b9ba1ced34dd00511a8d35f9
+2b05aa49a8346c0b5fdeb02a5107ba33
+ff3b1c5cb69de0f127f891a6a28d51d7
+d98bca633e8a8e21be2c06f8dae67484
+78c5b4ded2c8a88689481e23a9288d05
+cdc52e060b410f09234f716a28dffbf1
+5cc0108f986982254dbbabe390702e66
+b35f2144fbd76899ff3c1ad9f7d6db6b
+907f254278f9921b1a96d5bd75bcb9fc
+b387f628c36e24d71ed367226ac97a49
+58a7836eaee95f0c1d8ee76ffdcbd396
+50b44dc128b8f8c95a90f7519a23bf27
+69d9ab8dfdcc9d3ee134e9b32c699458
+3785346cd99ab3065b322fb1305e4923
+de74be8e0ad8f2198ba04b282ae4a254
+f1070bd8089232310fda702cc2d50146
+c6606eb6141d18b704a6b8d5371d98e1
+147a23427d05e26b29f02ee30c8bb30a
+95a1984c5972cc11c3fae7eb352288fe
+b4e5a42bb9807fd31435e591f3d10327
+c75bdd34228591705edab3d629d8bcf5
+10ad18d9cfe42104703a17b1ad572041
+5e3a21a7e962027309ef050e72d375f7
+6634758233496d7624375854353cdfee
+865001592241e07fc70efd362693acd1
+8d397507ed6fa08aaa54d16cb17177c6
+f7bf7bf8ee63347675a7fc3cd5a35af6
+0da61a527bdb6a5ba149e984f40e2324
+490937a7bcd49ebd89520e431f302039
+c65f98c4e4d85dc5dcd5fe47c8df527f
+00fd2b77d5d697b993e11ae476e08853
+3574f8d55ebb5beb4cd70014ef8eb2ae
+bb3390a2bbcef558c0d2c657cf9d0640
+2906dd09c119e3a6a4bd17f461f4893d
+d9fe3927331d6f97c985659f3d472ff1
+b03350c5f740a398df8ecc9d57392699
+d12bd9edce2b5f5c5666fbc66c7d0854
+4d0e997cb0550a017cb04bce996c5245
+d68a2fb756b3b23b75837797085657f0
+9894cc44693f08d5d59976d17b9da2dd
+7f6c223ab61f1a58fc4630d517e8158e
+39bd0415791c6159dd1a4a30be7a0b0d
+c42f9ff8eb11bfd6a241e8f687b9fbd5
+1620aaee77d205b965bab6c68e97906c
+93e3f2cad9fc81210d67139bc4c5da41
+d966759abf31201189a9131b9ae7ec2e
+be9e772fc535212af2edff0f4e65e6b9
+ac558c885229a4c5de49d16cdaf7737f
+9c04c93adc599eb39aa987517905847e
+0c6f5460b3dbd292962a7db2f3510b41
+7c7350c7221317ec569d613e3c45a741
+1ce56727556b88bc52e6218f7228e404
+5c43ec4d8a18754dbad5a1f31831dd3f
+db007d40d5a9c4eb119c89c281f7676f
+999934dd75b4723e009f2b6100089596
+b9082439ab47a0bab06e3fd644f6ff7a
+05e441379ddbcaf08738111f8cf02951
+530a983e08039d41770247b2f8052fa2
+12b2d287f1a82ce91b1b54d6b39d4f1b
+01c7b0ccb7171fce88171d8ad1178f39
+6e171aa272c758f010430f9656d88799
+ba800c40c5f79f1161fd064baa7a7281
+e27a6e537c9a96169d66c6a2b8efaf91
+79aefd04f944ec09b03018c40f2338d5
+a5334aef6fe6893ad70d1a28f351bec2
+4cf9f9e1ee948d8a67cab454234f6180
+81ffc370aec065f1b4e77232c1daa767
+44c7ef7dd2bf997686ad03005e8d36ee
+0c83a44b1b3ad36d445b45d9dde70609
+1ae2eabcdbfaf850fcf3f1a1a4088bb0
+cda67e44df35ddfd96fd8d4c1e822620
+
+970c60053502cf10e9405f230dde25c6
+5b95340ac9fb94e5dd714566dfc23838
+3d37a11f41836ac261f78e44d06371c6
+
+970d94e94980a33159c20a07416676bc
+a912c3feabbbf0b0aec5bae894b4a2f5
+58caacc4cfced80694f471cc27c9ea8a
+9b602c9c245c300f27a62471412ac03d
+cd1445741cc926c78d097169ddeb3ceb
+782b1a545595be37e91953f52cac74fc
+c4b53b0abb929d3c58d479377a520fb3
+2e34c85768692d91f8e8e306df36227d
+ed0688fdce283c828c55cc5039d72c94
+
+01202676c1884b2fccbcca12b0465b28
+AYctaK4aibojJVNiyQeU�
+4�
+523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+ef7a48deca1a96d41ec406b2c84cef49
+
+c6a91fcb86e13bd5926211bcbdd90d95
+740af85a7cf01a113d96982f40915469
+
+a98d49638098b960f6f1b0449b2931a9
+a06699b08840f779e6b958cc6246d6a1
+c00a344394a3547ac95cea881f28d8f3
+
+
+77eac4dd5bd870492b7bca0fbc6bf178
+2c953c12d2eb6ea958b7f3045ecf8e81
+4489afd802ce245810d2ba69435179bf
+2f4581c47aa0c5d87d0294a79cfb49b2
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+643fc24284874ce9958a52ca5194e915
+99190f6714cefafce42616ff926d495e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+c4db6a328840755e678b732b5d0acecf
+b000408d61bbe3667ff4c7aed13cbe31
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+04293b3e5e8bf5569b70fce8ed2e0e35
+3c9530b1845c3cb353d00bbc35f44ef3
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�
+5�	523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+ef7a48deca1a96d41ec406b2c84cef49
+
+c6a91fcb86e13bd5926211bcbdd90d95
+740af85a7cf01a113d96982f40915469
+
+a98d49638098b960f6f1b0449b2931a9
+a06699b08840f779e6b958cc6246d6a1
+c00a344394a3547ac95cea881f28d8f3
+
+
+fd841113dbf5d4bb939bfc15aff6c6b3
+2c953c12d2eb6ea958b7f3045ecf8e81
+4489afd802ce245810d2ba69435179bf
+2f4581c47aa0c5d87d0294a79cfb49b2
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+643fc24284874ce9958a52ca5194e915
+98f3c95d28dbe57542b8a5ef9634ad67
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+c4db6a328840755e678b732b5d0acecf
+db832e1ca82627933452dc388d05d1fc
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+04293b3e5e8bf5569b70fce8ed2e0e35
+340bc1263b78b67db64f7e3d75e8dfc4
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�6�523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+ef7a48deca1a96d41ec406b2c84cef49
+a6ed1980356f7e5188ca9bd251348440
+c6a91fcb86e13bd5926211bcbdd90d95
+80b45ba5d3dd62f68ee694cee1a9cf89
+193bf67889b339ae01aec85f433db1b9
+740af85a7cf01a113d96982f40915469
+ccce10a067610225143cf3a343f04e0f
+9988777496d1ddd020cdcbcdd4a2c18e
+d7723d59965412e1086c6aa7acab5b68
+e73e2943a24db4c10bfb4bcfdc6b3d32
+
+a98d49638098b960f6f1b0449b2931a9
+a06699b08840f779e6b958cc6246d6a1
+cfcce14c5f9d7bbc672b1124ea6d84df
+c00a344394a3547ac95cea881f28d8f3
+4fdb5dae255a20c3965ff2b41187c892
+9a3787520a2f72ac8befe316ee55d7da
+
+8a99edd41836df429c42bfcf5b92a092
+4c74289c570bb51a4214486500f90fa4
+ccdc9abedd559a444b66fc2cd934b512
+7bbb576f85997e821d5f9ccb9d6620f0
+560fd84c98318f957a93d5fe2b1bd6ed
+2145c1b6992c0d519ad223f91671329b
+
+7063ac494849b7cf79aa0901e7c6bb37
+24188ecd6615191340da27e77349b8bc
+0a83eb1c94134265868036432c10dab7
+
+368d2ffe865a6ed5f81409368d3a29dc
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+18107cfea0e6ef7bb9de4b1fcfaf5950
+ca764d217cb44d3138b10acbe58fb348
+26ba789faa85051c8a1f6c3175f30007
+5e83faefbeb600717ce9422b7c89b063
+be3b0eac6994a383c4fd305a87d74d72
+4d618c5a024b6d145c302c5ecddba39b
+b300029a20f32da8bd15689cd7f1037d
+e50d1d5c6642886af537c6d6d787bb22
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+024d6ff3547b8bd4b79ffba75e20351b
+a42a301d21c387f2e9f0381b3901cb4f
+8930db4a0e0fff2accc99a581988e236
+188d5aad902378dea96eb9053ce63341
+e7ee498ab903d054a9e5901bdc2e6b79
+ff2d973186f894f879ec8f19bfa58e69
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+230ca71673573e6affafe7f965e35013
+7d004ffafa8cfb054699d8475e1e5673
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+eec8c32b3a3208d4df5fc029236afbcd
+661b9cd07970b6d902d9fc80f2139270
+5e83faefbeb600717ce9422b7c89b063
+4a5df1681c63e8d3591802c64954d0fd
+61a052882fbfe7349f25f888f52f8d32
+02171b82446634d74cc68bbe85dbbebb
+60245fcbff9d8e66232089c28db7a43e
+b9fdebe9aac5df8ecd19e6c0d5b85c20
+08feb0db2ebc6a7963aa23c27d5649fa
+cec455df6017632ebbb6b0f4f41ad8ca
+
+86d72f2c2a7267427664b224d3ffaa5d
+97ff40de49b297749d9b446324d03927
+988ab97dfb99089536ceca6c4dc994fe
+39fbdd9b454acaab5f4c610a64bd6ff8
+fc0186588dc763256201ab7a56b104e4
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+9b1fd5632d8abf209145e02e4d763c02
+b33e8b19257e3a2af07e1c048f10d6c2
+ad6c1f06ac42980878b41210a1edef99
+26ea0a38a46e57c6fe3d93df4235d300
+9d9745793ea808834d7de26d55c88e2e
+1218801fdb06cd6121f36b77865ed88a
+65917f2412524ac8582ee3b4992ff27a
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+39bf504070cfd0882f5f39ba97778952
+fc0186588dc763256201ab7a56b104e4
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e8f0778e42dfa299ced1e519c714f158
+f0ecf9ac74d32c914793284576b2e2cc
+9ac735dd9084e954f7cc430b91013609
+bb7258b757e6a3ffbdc4544780e61a2e
+61be9072d6ae4e0e5b6ebdff58f1cc44
+c4c9bdd47ee05028cb84873da0ebf2b5
+6632f0bac624f2ace5f894cc77935a5d
+3e9c081375371715a83a48ef10b3c4ab
+04d643d8c22ae729750392e7d873d59a
+ddcaa8c84424795175bf4ed048f854de
+ff6e52657cfa4fe8722e9d1fb2ab0f9d
+1906d1dcaad19aa48dfe8aeabcc15965
+9d9745793ea808834d7de26d55c88e2e
+3dffa00d3df56e13b1cb8ad67daf0d3e
+d7611ff1388bce4a0d42558850f576b5
+b21528c8a94ad4d01233b4c509013cfc
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+20d5f8df51ec3c888f854ca44e3bbc68
+20d2b0668b47e214469d475feccb9c10
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+fd51c8915078341fa8762075e44e04a9
+
+bc377e2dbaefdf69262a4ac03d8b9ddc
+
+951f16d02058f30d1b3fd4d6f9222759
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�(9�'523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+1d2d0cdfe2e08c70f95158fc0f48c671
+
+3187cbfc52c03e9f72a660a0f76512e6
+1af0b524dbc8a1689697ac49bc7add26
+193bf67889b339ae01aec85f433db1b9
+740af85a7cf01a113d96982f40915469
+9988777496d1ddd020cdcbcdd4a2c18e
+36978fb1f1fbb0dcd52c7c1e1d6debaa
+d7723d59965412e1086c6aa7acab5b68
+
+a06699b08840f779e6b958cc6246d6a1
+35af660d1117e581b025326c8a9174d1
+b1006ceb7caafc92cba2b1a3fc3eaf06
+cfcce14c5f9d7bbc672b1124ea6d84df
+f0d3304127cc850ed3bd9de5be29e22b
+4278cf46807e6a014bcc485106aeda29
+
+c87a908939dcaad60691dad03e4a82e8
+b09b10ed6619cd247dab8a915c63ff24
+
+
+293d8af55941c8ac3c7ff5a64ee02249
+000adb00645c5d4ba0e2bd1c88f8ae60
+
+fd2c9e9e6abba840ac994dece80e530a
+
+fd680cda539b7a915cb5ef03d448e557
+46f6d4ed66e56d4ede5fb258d39f593f
+2d54bc26455d6303c8d827aa62a62bd9
+2145c1b6992c0d519ad223f91671329b
+
+f6f9abeba98be7133977a53c82990038
+
+c3f740980d174411be98c8d76475802b
+
+29b8af9aa8916ec1c9f4aa88bdd93d90
+
+29cb05717baca1e4b889253b8245ae83
+
+73d736446061f5ef949bd7a06bc13101
+
+14c84d443235cbd3c5067a704a7ecff5
+
+48579164452e68d45e3256cd107d2c2e
+
+40a36e61021b2aa5b223d9aa9a365e8b
+
+75d206e74e5550cc4b752305ebb7483a
+
+b69c27f20889f089e8378ac38d87cad7
+
+ea1a75362eb76302ebb9a15d59883a43
+
+f2ed5742dc56379fef23758d55dfebce
+
+0078295c6b0b0d39798f6421b738a73d
+
+306e9707642d4915c6bd0e2e7a2034dc
+f4ed69c23e1a3786cf61777bc707ea76
+b6456b2b32ebd6a0f173560c77a330c3
+3fe6487bb3dd7c94e92f3816769cfd0c
+61b05c4b8cf91fb52ff1623adb31b954
+f835771d2f5019630312af7e58411697
+9ed13d4e2646178a9a216802ae26a138
+137a312d634f2f81556258a44fd4eea0
+caa1058436e0dbb2fa6ec3a3b70d145e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+6b0322d16bbfd8c854ce4aa98dff874b
+f4ed69c23e1a3786cf61777bc707ea76
+6971dadd3b91a1bb7086a1190e8dc458
+b480cd3f6e93b8c31efc1d7ae3844d01
+caa1058436e0dbb2fa6ec3a3b70d145e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e277b49eb180c7fb295964dedf5c771f
+8e3aa70c54faaefb5b0ac70d42a8239e
+c51c07bd158a9c1f939b067b174dd440
+c219a11aeb2cd0282b1dcfac2adf700f
+441e543b443ff85fb2ac6ad7e3c691a8
+e2948fd35a75f4b023f337fa866bad8a
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+c4e9e4ac729e8dde4ad62e54af1f293a
+3a73fee716f2f8f7be9d3c3bb60908b8
+235298e845df859a82f9f1c86ef1ca93
+11e3b53323dc2748ede07a0a4fc471b1
+cbb184dd8e05c9709e5dcaedaa0495cf
+7950704e3d7611c437984a83a93a5321
+
+6ac98ef54b48ce7d256b327d67a3805e
+31f2908c685fdde906b222363fe86db1
+0c45a8ffb374d71dd1a819a190793211
+a99efddc77f0e75239a835296d61f3fc
+cbb184dd8e05c9709e5dcaedaa0495cf
+00db86ab61a91ee2e641e8ebeca11441
+
+987a679012a8767861a80516c34376da
+c68f24f91c7fb6ea42c8e4c13dd50245
+cbff3f71a5fa8b9f0d9d2aa6df178409
+cbb184dd8e05c9709e5dcaedaa0495cf
+510db90ad1f9f8e02de7748f54e4bf2f
+
+6e1b7f5b48b3879c9ceb875d9171b8c1
+33b78629a6fdb56d163eddcb96aedad7
+5b440b5212a0abe919421cb2ffcffdc4
+cbb184dd8e05c9709e5dcaedaa0495cf
+21aaf0a05b3509c4ffd3755cae7296c9
+
+9b027ec9534d88e72f92774e5198c4e6
+8e00f92a2779a4abfd6530fc8f7ddcb1
+a24f720319f35d67bc5a177857cd815f
+cbb184dd8e05c9709e5dcaedaa0495cf
+200264d58ca4a4a7b72dd55781ae2c23
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+65d781221fb5021ae79683d062499ee8
+10736a34d7c02d920bb3de8c54b4c770
+b3a0f6d1e9e6d4d49dd1bc26e839b6a1
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+dd01315d5192878655ecb5906b05ecd3
+422e4ae0ebe598ce9763c5889bc06f94
+27c689900fa84f9f9a06b7a3258a3868
+204a7e0fbd4f27b13f5a1f8ebb8b5190
+8cac52f277a9cfea12e4e967b7e62fc4
+a3db08daba8d182b77876c640688103a
+b4ced886415a83d2b281b605109a4298
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+6d8deeb3efc19e9e433cc6820af9eb54
+
+10736a34d7c02d920bb3de8c54b4c770
+dc49c5eea74c3945e8584d5f4656935a
+ffa161fff4ab8d476c70451ec34e10ce
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+133e3e43848281830e6f9e4f4617c4e8
+5ba54bd7a47f3b84c158ed6988148f60
+80d5b17efc16ace990c07580fc3e85eb
+a80caa65a53552fdc75624298a102b0a
+4165a8d41304580a7718c655d1088126
+c40e0f1b5462a7858ddee5983924bf18
+e65521986600efb304f43eaf8dbd3b6a
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+0afc0ffd3c996a5152a3610da5f8b202
+c18070b9f88151266e59c1f0628dbf72
+215d755e55a2f4cff90789f1d3b501c3
+e3eca7dc236d62eb7e6ee838584b4605
+85c403eba8fcadc74090dcf6cc80d57d
+9d9745793ea808834d7de26d55c88e2e
+e3eca7dc236d62eb7e6ee838584b4605
+bef28a19d7b7b72ccfd0b323462f3115
+88e390e22867211f96269b6d776cdcbc
+665551c1a7f591287ab2741c00ebdef5
+3ac86be04eb292e3e84c3b552adff2c6
+c0c97e22db5055def551d1cef15fb251
+cbb184dd8e05c9709e5dcaedaa0495cf
+7640d2ba20df1b30875e28c476bb48f8
+de778f1a8297f71829665a760640f338
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e021a626e6d53a4e77c64ba23b538656
+6971dadd3b91a1bb7086a1190e8dc458
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+877118a43c3aebe005f2bb022d675f4e
+70a2e9a36f8df42243f8d084b9ac30c5
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�:�523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+1d2d0cdfe2e08c70f95158fc0f48c671
+
+9988777496d1ddd020cdcbcdd4a2c18e
+
+b09b10ed6619cd247dab8a915c63ff24
+
+84e971faffd43310eee8d2dcc7abdae7
+5b173f0f98debb861c502429fc2d57db
+
+7d4b7d4937ddeea699ee48f2f70ccc00
+
+3c782b2553ce63bfd57f814d430c2b94
+
+cf5de88a016db94bcc3f03aaac523805
+
+da3c747f145da1e812846e6ccc480a94
+
+7bf53498f19f91f7d5af1fd482e025bd
+
+60508e3cd42cbfc4326cffaccc2fa9cc
+
+2e1b39905586cbe60849a46c11faac0b
+
+98643c1886d61215c9b01814fba3e27b
+
+e146be57e2d8c1966bbc1aca0f4211ba
+
+886c24c67739c97cf77b8dd239e412f9
+
+86357f1fb7d7e26145031dd2121f0a3b
+
+f7a2bbf8441270c976395921b7d692e5
+
+610aecae2be9a398588ff801170c71de
+32527d0ecb7c12cf1e85049c3d863bb7
+0ab48d01e53f8637349cdd82bef26500
+f92841e6a7341f1751fcd96b75bbe66e
+1986d0ec57d9ea12cf33c68a901e438d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+191b5b5e0f779fab3c82d9c842448c2e
+
+3245eb4a49c53aee995f990440b002b1
+
+cd2db833b0705a5badea0b4d6c89d3f0
+
+86080dfe9f369ed4e08ec344997d7260
+
+e7d49683eb12c51eb5bf4b034d4d5f14
+
+169942d3fb7cbb58fea3e5051aad4e36
+
+b3f9c33b988b7a8ca2dcc344c566e609
+3938ebd0e4f542b5690d60909d11128a
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+519858d92f3a4d8dc00c2e1995854dfc
+2ea50c20509eed5bc105835c9437c5a4
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+fb08e4a0f90dc9b27280f8fd694ac072
+673722d82b1a1a17416df74524e3f53c
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e6fcc564c44e1b81d31eba19bd4c80cc
+ab6b132d385074b4de8a12fb6311d45b
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+92087bec0fd80aac3737b814dc6c39da
+8a2d93242ea02dbb33b36362250914a9
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+f0ddb0d0acb078304cbf16d15e00351b
+63dda912c89bf9a9adb2672f33e03bff
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+78038b5364a66a31a25eb9abd8c6b77e
+6d10eb0826ce19d12bae576c9267eb00
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a6446fa2b6ef32862dc6419932d18e90
+85c682c34c176ef8e20afcda6e7e3bcf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�K;�J523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+1d2d0cdfe2e08c70f95158fc0f48c671
+
+9988777496d1ddd020cdcbcdd4a2c18e
+d8ef62f07d0e287d78ee5c31f531211c
+d7723d59965412e1086c6aa7acab5b68
+
+a06699b08840f779e6b958cc6246d6a1
+35af660d1117e581b025326c8a9174d1
+b1006ceb7caafc92cba2b1a3fc3eaf06
+cfcce14c5f9d7bbc672b1124ea6d84df
+4278cf46807e6a014bcc485106aeda29
+f99cd4345a70deda6ef9bf7c01488193
+
+45dcd7bcd02c2c203f707c78116e14cd
+c87a908939dcaad60691dad03e4a82e8
+b09b10ed6619cd247dab8a915c63ff24
+
+
+92622282031b320d9d9c52e7e7f6fb61
+111af782ba8f7e5b8cfc167ac17a0f08
+
+bc29d99c129b9f6a4049de47bd20e6b9
+
+f4cfff538dca82a3534e00747904679c
+
+bbca48fab99eaf57d67412b27151364c
+
+9b8d44a2349e0918464bbbf7576741c1
+
+aad7515bb9750539bc8599a7053a7621
+
+dabd2fd87cca0850e5ff286ea57de05f
+02539c418ee6f20e8496d454306f0202
+5bb14ee2edc0f0ea0cfbc0056766d961
+2b1796d672b78337939d07c3213d7027
+e88bce9875de58110d86989f986f578b
+8e6cd85eaeb443c69dba3d4e67717987
+a6c17464ca126c44ada139a39159b325
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e0df73d1b460a2faf25fdc1096966bf8
+dd01315d5192878655ecb5906b05ecd3
+
+80d5b17efc16ace990c07580fc3e85eb
+f6a70bb62e1d2bdce5ff9b3f7f02651c
+233707ee84f6bc194cb7a45ca3b7c5d9
+f58635c69a0ad2875038fdcb8838f03e
+
+9ff53ae3f72a567b8588cab65d2a8813
+aaffd725ae8bb67128e180a551d1542e
+
+fbb14f74ce6058f2ad178031b0ceaeac
+8eb014077d3b62e611046ac2904344e9
+
+77bd225460b34c981b7771f1f769dcaf
+28b56c861cff9a2935a0e427ef6261ec
+0ddc0ab7b9035a64232742c62309ba0e
+de47f4de208f4f33961c4743defa7b0b
+aabdc3df008e7d4bd1c56f0f0a687ad9
+b6bbbb15feda34c2f234fc9e4b240dde
+e78178e319aa58f3c313c832fa3b0b60
+16a7d1ca2ccedcbfdc290512510191bb
+cbb184dd8e05c9709e5dcaedaa0495cf
+ebd0cfb2e2e9570c4cef1ecf3d4a794c
+
+d144b0d9f1b76aad68a3cebd3bbabc8c
+981e6a50bb18cf5fffc8d622170ad236
+
+8b91023609c9ae3e061c85bd26777e2c
+76bdf00d8a39a78fb0e58b65cb3d2312
+096124852c9513ec1a969aba755f73ab
+
+84eba3f5390f11f9a0d9f5916d614caf
+32088b8f2be986ac1abbf171a8b6fe35
+
+52a7ee9cfe124b29c3717268b0b615a8
+e28bfef2fc48fdab95e807305a96f133
+88b64361a8ee459d9752a92328566675
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+e521898253f308ca0e58bd1150a3b07e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b4ced886415a83d2b281b605109a4298
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+8a57c46408438c465a35b7e267faf35f
+dd01315d5192878655ecb5906b05ecd3
+
+80d5b17efc16ace990c07580fc3e85eb
+f6a70bb62e1d2bdce5ff9b3f7f02651c
+233707ee84f6bc194cb7a45ca3b7c5d9
+2e4018d203f48d679b1cc9dda75c7f7c
+
+9ff53ae3f72a567b8588cab65d2a8813
+aaffd725ae8bb67128e180a551d1542e
+
+7a4e80b1d9046e4dab57a6594ebdac49
+480d9ff06e2fb445aee7c6bf11df8dcb
+
+77bd225460b34c981b7771f1f769dcaf
+28b56c861cff9a2935a0e427ef6261ec
+0ddc0ab7b9035a64232742c62309ba0e
+e78178e319aa58f3c313c832fa3b0b60
+16a7d1ca2ccedcbfdc290512510191bb
+cbb184dd8e05c9709e5dcaedaa0495cf
+b56434ba436c60cdd00eb07003e2a590
+ebd0cfb2e2e9570c4cef1ecf3d4a794c
+
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+b7aac10be7abdd84a4f2d06d2b10a9ec
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b4ced886415a83d2b281b605109a4298
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+cc4339750445089f68e6db53362cfdda
+6096f1d9295e07ec240a50d0784b135c
+80d5b17efc16ace990c07580fc3e85eb
+7a4e80b1d9046e4dab57a6594ebdac49
+d6f1d089438ca34472e72ab13eb7c52a
+adbe46d22f6d2e481f0c946aed1fffc1
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5981232fcf9985b49e0bc5381b482b17
+8af4027eb0a5787ea6184d0e2bcd721c
+6687ee1adb80112c9202cfbd8b503c13
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+485a18a2c0c545db0a3066371bc6e643
+95eb348b06b9a42b857eb185d2dbea87
+4c427a25a9246d08c436fa4c4956c158
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+17ee38817a141511a08bfe617bfaf261
+72d52a1c66e7c86a11ea52be22b8784c
+23e53b3604666db77eff61c2a864700f
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+efac785f9490295e4ca6e7ca134d0ed7
+31a874c60da090a76d082d7f62ef0764
+6932cb2e1ee92be2448859b1bb103ced
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+810842dd492a9c1e844e3cd8cc3de4a3
+5cd87f4a7e5c7ead8cd012c8315175a4
+cf75b3b74bce895c0650c05bd3201ea0
+cbb184dd8e05c9709e5dcaedaa0495cf
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+910de924abe8b78fcba9b40fb173ea57
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+7a58f48416299e4c339e36cc54a9b029
+4e18dfa49680a69fcd0426b20ee6a5fb
+69f55498c9278533e2f67cbd40c7a3a7
+bd5cac772260a70dc21f18f30ccaa518
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+80d5b17efc16ace990c07580fc3e85eb
+215dba1be57c524cb96c49ad84849f71
+60d199612e2645d96af2ad0eb8c8a048
+
+64052befa5caf913678cb590d49f84b2
+9e5a999157da81f52d54ed56eb53876d
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+8faefaba33f03b9106b32ebb2fa99d92
+30b9e4668f55d43a65d6ba1545d87a95
+066ed478806b55991eb1aab3a54260c1
+881b63c9d72745d4a6adf695d366b5fc
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+93009997c3ec9d4bb1594dfde0c476f5
+baaf26ad472135acc5e52789477e728e
+80d5b17efc16ace990c07580fc3e85eb
+1e2a98413b3c16bfe47c2a794c8c1a69
+9289e3abb8fbe81efba253f4b09a0555
+689d427e70841af99e097b8dd53174b0
+19a89dd4dbc037d15af2e444c2286a15
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+dd01315d5192878655ecb5906b05ecd3
+7ac02a0afab017cf6dcb616f071ab783
+f92ba91faf30b23f401a77049487326c
+9ef35f1ba2ba57af9451caa4ed7bc096
+a033265f1f47517d4197281a8acec3eb
+730b6977ce067676de949b4461fc3956
+b23ad2d303015ff0579c617b0dff391c
+0492cf6eca9559fb8b8966556416c4a4
+031815b0588f67bfae2a0999d95ae903
+b4ced886415a83d2b281b605109a4298
+9d9745793ea808834d7de26d55c88e2e
+c8fde7e182aad7621d4b19f0916b7990
+a4220f2a9d9258d794009c87a8108b47
+0ae31a47ff8e66f4fab2d4263f6dcd7d
+
+8faefaba33f03b9106b32ebb2fa99d92
+30b9e4668f55d43a65d6ba1545d87a95
+066ed478806b55991eb1aab3a54260c1
+548668961f39e92aeef6dc045f71c8fc
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+0492cf6eca9559fb8b8966556416c4a4
+759ef8aafbb35b01f9ff4c570bf71ffd
+cbb184dd8e05c9709e5dcaedaa0495cf
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+3313ddfc045c7f367469e256766af327
+74c21c254a2594a70e167a65346764e4
+80d5b17efc16ace990c07580fc3e85eb
+3d8871c5a5d290a536c25bada5715e13
+a6b0d6d74c9877aa3313f375e0e47ac3
+324e81d2ba06a1778b88498060c2b369
+a6c17464ca126c44ada139a39159b325
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b4eb7b936405f2e84c3a71225e9c767e
+80d5b17efc16ace990c07580fc3e85eb
+c204d463a994264a6eb1d1673616ef6e
+c18d092864ac6a4d435bce9d976d9e92
+b0ef9a5a8c408510452b9321ddb6e612
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+6422c402baf46fa028ba7d222c7531f0
+023864bf4d17acab42a93bc646a8e0ca
+ca00a90e7c1074c1331e72a46e87ec01
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+764c08a2798ee4c22c332110882edfeb
+e0875d0347e728eda10e36e4c3c222e7
+f1b6b17ee3cf1caf208c6b77a88c4fcd
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+c220f75409da8619bc50db0ca31fae8e
+fc39ddb4c42c496b75fd5879b4e10086
+3c3be9371fa46c2a4f380cabca10970c
+f1b6b17ee3cf1caf208c6b77a88c4fcd
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+4ce335bcc263bb8595c7d85cdcdb6ed3
+669d6fc09f9a5389c84a58524cf9fe90
+fc04a5512f3657668e25bbf78201d4a1
+cab327cc0ce227ceed526d4532bb7b1d
+3e78814d6c1797f1c8121c6e232d8249
+9d9745793ea808834d7de26d55c88e2e
+7eaaca4b4bd5d95d30d1f1f994dd2b73
+f1b6b17ee3cf1caf208c6b77a88c4fcd
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+df9042f0f0b380013718e4c706fad7cd
+87141cd2eb68eb0b1d18c7e72f08b46f
+ef9cf8c8134fae7351b10a92497b9e4a
+3da4931d46347df724c503a18898830f
+cbb184dd8e05c9709e5dcaedaa0495cf
+fc04a5512f3657668e25bbf78201d4a1
+54044ac977f27d20e4b2e2a36899d1b3
+ca00a90e7c1074c1331e72a46e87ec01
+9d9745793ea808834d7de26d55c88e2e
+09c522f8f66c2e2d42cf5d0441412c0d
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+a50e423de97896afb97123424a960664
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+3da4931d46347df724c503a18898830f
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+48adc3ec20ef979bbcf7b575fdc9a401
+de33c4e76c3055144346d38f8dbed876
+308c181ad8e030876c763b549d0cbbe9
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+7533cc1163796095d406d71a62b1f2d4
+4fa2562ca702a5bbcdec4b14ee0bed93
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1c1dc6e8406973f382b760f2d4e6050a
+83f646e3be4edafbcdd041c9e41a4d84
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+8bd7d52c9a42a73b563dc3a5557af01a
+2708136729b144179bb6e6fe1c488b6b
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+4740cb7025c78fd7f30f83ed3896b66d
+8b4bd033ed553fea076c262b27c6ce50
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5cdcdf5f98d3c614608b2f938f3efa94
+91e12194ae3c705872586dcd3481675c
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+40a82759de3b5eda4297c2bdaa5450cd
+d93c9d0b23f603f5714bcc6d73906256
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+d517676fc67b701ee56ef1900890e2ea
+7c27c5c24eb805b95cc9b3cd5acfc183
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+c6495eb757ebf46818d212af2cbdb761
+5fb6a360b5bffa9efd5ee9e6ae60fa43
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�l<�l523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+1d2d0cdfe2e08c70f95158fc0f48c671
+
+c6a91fcb86e13bd5926211bcbdd90d95
+3187cbfc52c03e9f72a660a0f76512e6
+193bf67889b339ae01aec85f433db1b9
+740af85a7cf01a113d96982f40915469
+9988777496d1ddd020cdcbcdd4a2c18e
+36978fb1f1fbb0dcd52c7c1e1d6debaa
+d7723d59965412e1086c6aa7acab5b68
+
+a06699b08840f779e6b958cc6246d6a1
+35af660d1117e581b025326c8a9174d1
+cfcce14c5f9d7bbc672b1124ea6d84df
+4278cf46807e6a014bcc485106aeda29
+f99cd4345a70deda6ef9bf7c01488193
+c00a344394a3547ac95cea881f28d8f3
+
+45dcd7bcd02c2c203f707c78116e14cd
+c87a908939dcaad60691dad03e4a82e8
+b09b10ed6619cd247dab8a915c63ff24
+
+391715e38dad3a13b75205d527e82c8a
+
+
+9a6d8cec7ee348d83077864e36d17e1d
+d15080c40b101edadd105f81ab91294a
+
+fd2c9e9e6abba840ac994dece80e530a
+
+6ff755862c96c449859519ee22222415
+3c29bba2e1acc52029fe60f63de846ea
+feb43c16d0dec69148cb99ce59dd144d
+a438b04d68742071a236b038ae69844c
+9e01b01f8f51b34a203b3f6bb11601f4
+74f114511c48fbd3afc0fe832bf9cfda
+3bf443177849e5e8ad09ba2b1fee69e1
+2145c1b6992c0d519ad223f91671329b
+
+d563f9248b9b04b21cb6712b078f77f9
+
+ac588508895aebdbd94e96a6e3894fc0
+
+53dc4d1a8315d0b18e68ecd5b152f052
+
+6e641fea98128831a93606ac0f7c702e
+
+911b4ff2a06bcea8f7051c940a8021ad
+
+36f1108b07f12644dfad6fe26d28157c
+
+601cf4c1bcee19106ee54c37f85d112c
+
+933c52071daf0ff6bd3e19ef43f694c7
+
+3ab8be8bc9dc5ff23367f68a649091d6
+
+84141f0e66965c9c25ce70c9374f3bc7
+
+68776e88bbc66721ec00cd79fa7aa3d5
+
+4fa0a02b64cf42ecca5fb5aab9efb709
+
+c338e2b9b18df3ac6740b439e1712027
+
+f4236942c87cc2fa3e5e774a4722f9c6
+
+280d57fc0d3a75c5bc66a4bc579f54c5
+
+93d683bc33ba960303e5ff9e669cefc9
+
+9b0b12b04207b76fcd9989fb02c525f7
+
+c458e619396054f78bc926fb81b4386d
+
+14c84d443235cbd3c5067a704a7ecff5
+
+48579164452e68d45e3256cd107d2c2e
+
+cf2a5fb7c7bb55bd451d113bd690151d
+
+0bc9e0ffb4118cba2583aab64ae65dba
+
+426b875ddcf5c60ec55d717082133cd9
+
+ed3946a4d34774c380130d6b91a7b4c9
+
+f13c72929c0e7ffb9ba23c71feed9581
+
+7743ef9ef4356271e5abc418ae1f53d9
+
+021960bf74889455ebc8d7bd36ab1821
+
+8c03f2a6ca25217ae7696e24918dad6e
+
+e6b4ac7a48e0e54e09a504c828af50c5
+
+a29aca6c0497d5984ae418c8d17dc4e3
+
+9c730ea3a132547f33675b1a5edf443f
+
+9c2ebd9b981d44982fc34af9f433b131
+
+b571b326e11158d3124a04f966455e69
+
+9660b2867c6e92b42abcb24e39360db8
+
+87fdd96efded9a41956c06f4a27a51b9
+
+9c50f0bdf8514ed9e1f76b7777b54571
+75df9d476e2298272f14383ae1ee3a00
+f4ed69c23e1a3786cf61777bc707ea76
+b6456b2b32ebd6a0f173560c77a330c3
+b195c3d8b4e60cb1f2247ace23cb110d
+afce2d155e3cf95001c0922414f529e2
+2791afb7fc8975ddbbfc6ede83ff98cf
+32cf4157f3bce0f2698687d29409b2ac
+5bdc420a28a93951531b525714f5a160
+20304186f0bdd56d04ab8841ab81e8f8
+af6ca3b41791adf16bb228c8ff7b1e47
+00bdb3cd3f0af980369e801a0485fdb3
+275fa8db44e519b8364dbd6765a6c4e7
+cce793bc5f9d04d99fecaa1e6aef1e40
+1e616306a3bea20e01e169885c86443f
+4288d52ef792bb43ee8c521ea7b4a58b
+4451b00e0f4282892cd213f656428cc0
+dbf8f5859c21e6ef8cd3ed2212f97dc0
+412d5c517c8bf4e349adc4691466362d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+3b287bc78e77d02846459da07217aaca
+75df9d476e2298272f14383ae1ee3a00
+f4ed69c23e1a3786cf61777bc707ea76
+6971dadd3b91a1bb7086a1190e8dc458
+b480cd3f6e93b8c31efc1d7ae3844d01
+412d5c517c8bf4e349adc4691466362d
+524d990ea434811818b819cac41c369d
+2072994e87b221529dcb146770cd716e
+dbf8f5859c21e6ef8cd3ed2212f97dc0
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b219ea5a05b72b84a65b2dc22a23b44c
+75df9d476e2298272f14383ae1ee3a00
+f4ed69c23e1a3786cf61777bc707ea76
+6971dadd3b91a1bb7086a1190e8dc458
+56e9da41ee35400e32c0de20050aa460
+412d5c517c8bf4e349adc4691466362d
+524d990ea434811818b819cac41c369d
+2072994e87b221529dcb146770cd716e
+dbf8f5859c21e6ef8cd3ed2212f97dc0
+
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+c02383c2aa361ba8fc4c0166ffa00925
+67c04018934deff364b5db378b71e342
+80d5b17efc16ace990c07580fc3e85eb
+5b60cd5789b4061badfe5f6d17335c62
+becdb1150d9bc93122136c6f476d4c5c
+f9013fad1be568cc0fc2dc232abfe14d
+d981474263d57511baf0a0a8f72dc872
+39bf504070cfd0882f5f39ba97778952
+f49077df74a77fac323be371402c1259
+b480cd3f6e93b8c31efc1d7ae3844d01
+9d9745793ea808834d7de26d55c88e2e
+9252d6078bf452fbffdd86dda8b4a7c3
+cbb184dd8e05c9709e5dcaedaa0495cf
+5a29aee8cfe3a5110dc892ab8adfc17f
+cb6d12be1e561710281c0abc841c6631
+fc0186588dc763256201ab7a56b104e4
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e277b49eb180c7fb295964dedf5c771f
+071e04b909e5481f7f3317c8004a85a8
+c04b0a481c2a6e1ddfb7c8d268f33736
+2635723b8d7f66f94482f9e8944f5803
+f3e5f0ac88929d2d65cb9e1c92da4b82
+8b7d58b8778ced90008fcc60f3c27c89
+a8496061a83ad1f57f1cfa3bb798eeaf
+0b476b855cf03e368ebdc08d9e37dbe7
+ecd200d9a72cfa2a248f3edfb436993d
+a0661aa1565410add4934d761169f9d0
+18bbe2a59a63bec3d3953fc641dd23ea
+1f61ff1fc6336c77cd6fd3a9db136d78
+2f16d89fba37da84461459881e644915
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+156115cb8942bc34930b66f83bcd5e9b
+67c04018934deff364b5db378b71e342
+0b7c063f8ab90983795c0cc7caa8c04a
+80d5b17efc16ace990c07580fc3e85eb
+9da7cfe454771f9e473e3c8ed8960085
+72e343cae7fb1c06ad93689dbb161029
+4bea62bb7b43524a86c3bc61758144b4
+d981474263d57511baf0a0a8f72dc872
+39bf504070cfd0882f5f39ba97778952
+c05cfdbd7f3be933db384690915be587
+93a9dfef710c1b69a53e7499841bc452
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+49127a9818bb38eb38e4550c795c60b6
+354858c180eb694d1d9eaf68513a3891
+720c045bfd6009b80ead99d644909aab
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+03dad06bd40c05f6c3fb7b75f870e25d
+cbb184dd8e05c9709e5dcaedaa0495cf
+5a29aee8cfe3a5110dc892ab8adfc17f
+cb6d12be1e561710281c0abc841c6631
+fc0186588dc763256201ab7a56b104e4
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b388cc2217b01366ebf5eeda91b9a626
+80d5b17efc16ace990c07580fc3e85eb
+215dba1be57c524cb96c49ad84849f71
+df6e21d937bb2698ab1aae49392244d4
+7241495f15dcb44e2769a95650f095a5
+d78150a630559b5344c8bc9f97e43bea
+5c842ad58ebce79c52c83635baef6320
+c979f24ebcb54aea3e05de5928856885
+e1be38e4b4d9eb127385dd7017f77675
+5a13f7896f32e9cc9ac91bdb8ea8b402
+69ffde844a81ead46182f7b0aead97f7
+cbb184dd8e05c9709e5dcaedaa0495cf
+1067e63cd4a3dd43697d5150fbc09689
+
+6ab3af059169510b151c2bfbddc0c3ee
+c01897facb3aabf577bcb921d62eec97
+afe85d49409e1780a457325ade5035b5
+9c83dad9978bb4c02d64fabeaa12eafa
+cbb184dd8e05c9709e5dcaedaa0495cf
+f79274347d017396d417baee0e88db7c
+11ee12bd28ac2973d9cba340044657cd
+60d199612e2645d96af2ad0eb8c8a048
+a570e7e2d3b8fcc52985af6eba4185a5
+ab931290865e470be86c1164fabd8ceb
+00a491df504e23f8e775d7eeee004c04
+cbb184dd8e05c9709e5dcaedaa0495cf
+a3a1ed769215c17b618c87ced2220d8a
+
+16d48586b2c513e087b558b5cb53ed0e
+bd60777d1b630072356d758f1225e410
+878b6e408262e039251043f3771fdb07
+06537e34be060ecb1030ce1196b581fe
+cbb184dd8e05c9709e5dcaedaa0495cf
+f32d7f2ed99663fe549a8351b69610ef
+
+d1a5d6dc8979083fcd5cecbb22323781
+f40492297f2c8e8914777c5d84be3ff9
+da33d9788bebb32a413941e3b6bb728e
+8dd0e0c7380a22242aa3a50b5b4fbe86
+cbb184dd8e05c9709e5dcaedaa0495cf
+075cabbfccc225026d4440f0af2aee65
+
+590c9a905fcc4b23017da127ee364f25
+02955051cce596a5d5cf3a712e0eb4ac
+443cdba01a99cda7cb96c929bc6829ef
+ffab8d280725e26bea0086068b7300cb
+cbb184dd8e05c9709e5dcaedaa0495cf
+172eec7cfb1483e50836a487a33812e0
+
+9741a9ee0e9f35a6baf9214988f29d82
+9fa5b1a04e96035671f8414684aa778f
+1a43f03b98fd70d448a75335305b3502
+ac9f7a7315c1c85ffdf6d697078a59a6
+cbb184dd8e05c9709e5dcaedaa0495cf
+f1806695c366d5e5ee59f161510a7e82
+
+fe2ddc500459ed9f67991d3bd5e37e6c
+63cde95b9de22034e6f2a1b07d44c2c9
+8a010c342970959c982d63b42bc3c042
+7a059c92f465a47710127cc08576380c
+cbb184dd8e05c9709e5dcaedaa0495cf
+b952dff6ec0570cb65c2aa0cc70a84a1
+
+683a524a0b26f808d6ed041e90e13dab
+598dc04c8e24272af1d928c3f5a5b6f1
+8765e63b3237b39e126d9de032dbd8ba
+84d302a2b9da565d341439b5daaadcca
+cbb184dd8e05c9709e5dcaedaa0495cf
+70fc3c387da73a59b939c5f6d8e2a6c1
+
+c979f24ebcb54aea3e05de5928856885
+e1be38e4b4d9eb127385dd7017f77675
+5a13f7896f32e9cc9ac91bdb8ea8b402
+69ffde844a81ead46182f7b0aead97f7
+cbb184dd8e05c9709e5dcaedaa0495cf
+1067e63cd4a3dd43697d5150fbc09689
+
+6ab3af059169510b151c2bfbddc0c3ee
+c01897facb3aabf577bcb921d62eec97
+afe85d49409e1780a457325ade5035b5
+9c83dad9978bb4c02d64fabeaa12eafa
+cbb184dd8e05c9709e5dcaedaa0495cf
+f79274347d017396d417baee0e88db7c
+
+e9a851db86d76a9aa3566be3f9368d69
+7018ec32f31447ef9e72890a33ad50ca
+4e4cb3db41992f494fc9b2454c552f9b
+51d1d02276a2512a1abb4145ab20a5a0
+cbb184dd8e05c9709e5dcaedaa0495cf
+db8218f56c0ecb3ae302cf130a33c374
+
+ef3a6e5ea99ce4db63643a9d8c3f7558
+9276355d9673e08db65a508414a02cca
+022c0072f172fb2e64a930044a69d2e9
+7b26a659d738d77b81094cf8c2aa7a43
+cbb184dd8e05c9709e5dcaedaa0495cf
+8ee511a70e2aeca74cd63ebd5a57c420
+
+0a72d6c9fd211b9b9b6e0fd559b49e3e
+b991b22ee9f1280da1d76eb4b75ad131
+9ab6504442eeea930d4fe851d02bbdc3
+747a892e095a7786b1c9126d2393aac7
+cbb184dd8e05c9709e5dcaedaa0495cf
+1ae2c98413d34b7233f9c5b29f80ba37
+
+8faefaba33f03b9106b32ebb2fa99d92
+30b9e4668f55d43a65d6ba1545d87a95
+4be51c288cdf35d9e68ce76a8db3cf60
+ccece6d53dba00f7c83d9ea909f210e8
+93588742acb827c35fb8623dab88c67a
+53681ceaabd747829887df86ef67f376
+419fc658bcaa8c2c20b5942b886f50eb
+fc8b782f272d2025ab6b9e869c682483
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+3933aced4209887f32bc801b39c28393
+3994ba6c91a1dfac241fc43f79e3f3bd
+09afd18723aea24e344a28c9f071c4a9
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+3e7f43fc09485dc107ba2d8ed73d1ac1
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+dd9ad6a79edb137baad369da5b5888e6
+80d5b17efc16ace990c07580fc3e85eb
+dd01315d5192878655ecb5906b05ecd3
+
+10736a34d7c02d920bb3de8c54b4c770
+b3a0f6d1e9e6d4d49dd1bc26e839b6a1
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+7ac02a0afab017cf6dcb616f071ab783
+25c548fb7737b9dd0423bbf555c10d42
+2affce1774ac9df93244175652dfc508
+f1f46768a4caaf0afa36abd89df01bc9
+b26f449005122accf3a3c40879e5029a
+9e639f0bed6d89cf999b10211b6163f2
+b70f5ee5958443bbe6e76d15bc3ec187
+825c3fbb419a38dcf7967cd054fa34bc
+de99aa8e7ab4ec9af28fdd7a348a849d
+2c074640c4fd09b0233bf44785278a7e
+0932ef01e711d5bd7a6212e665a4deb0
+9c72b67b95067f4af580650af349b3cd
+abf278dc984c12348e17d2d8591b5815
+11fdff3091f5617b26d763d822bac105
+031815b0588f67bfae2a0999d95ae903
+
+f92ba91faf30b23f401a77049487326c
+bbde047c277424150068b0a4b722d45e
+5902c4c4dc8d7c1b7122d958c254d342
+db6d2da0ac1e623146e98de3963e9d80
+730b6977ce067676de949b4461fc3956
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+b23ad2d303015ff0579c617b0dff391c
+0933e77efd1d8da1dbdaba7ebfc29b41
+2affce1774ac9df93244175652dfc508
+0932ef01e711d5bd7a6212e665a4deb0
+2c074640c4fd09b0233bf44785278a7e
+031815b0588f67bfae2a0999d95ae903
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b4ced886415a83d2b281b605109a4298
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+cbb184dd8e05c9709e5dcaedaa0495cf
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bc4fbdf026080f957f2bda5380c46740
+7ed6fd70399ac0d994596c9ebd64a748
+07b78f54774ec24fa6592f68bc1324bd
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+84cc38cbcc637abdd5392d81cc26e37c
+ce052de335899d05b846d9e5b906bcc2
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+fb9e2b3b3e0c5da140637db332935b48
+9f698c5799a12eb40b30add940aaee99
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2d095c423b4b02eb2e83816ea9b7ebaa
+47d02b4e456d5454e36e48a5d4272a71
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+877118a43c3aebe005f2bb022d675f4e
+565d51511d15781ae576ed3d7a8f70e9
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5767a9f2791461f3bb618edd4f7011e5
+8db06c31ffa9cb2bfaf5066dade789e2
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+0530efd0f572483d80c818362fa92d18
+088db524c454e71818edc7289abda019
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5cbfb99e7faaa095b91b441c11c85ac9
+dd820aa76e6f29f18ea5a2d9ef990beb
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1c5089d780496ec31dc8596430261334
+10736a34d7c02d920bb3de8c54b4c770
+9018295c225ea1aea1424cabcd225ea2
+e2c499ad77e17bd886e85888d92f1462
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c82986f0d8c778ff12996513813e712
+80d5b17efc16ace990c07580fc3e85eb
+a3c98561aebc739779a8e73d935be211
+4165a8d41304580a7718c655d1088126
+c40e0f1b5462a7858ddee5983924bf18
+e65521986600efb304f43eaf8dbd3b6a
+cbb184dd8e05c9709e5dcaedaa0495cf
+d1d8c18311ee087ddefc79f2b858a200
+d11753d4603ae8c05f4a785792d8edc9
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+25c548fb7737b9dd0423bbf555c10d42
+bbde047c277424150068b0a4b722d45e
+a84d3c36d1f884acdb73a23e98853b62
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+d199170bebd4408bb66623a3d9e04c70
+f3ca6aa574f45040329907be8c9ef3bd
+4f7992b611e07997290512bb5f8ef274
+cbb184dd8e05c9709e5dcaedaa0495cf
+822fd2f68fd16207c2c28ac2f37b358c
+32eee0c382a8bdc11510498f430fcd6a
+c18070b9f88151266e59c1f0628dbf72
+215d755e55a2f4cff90789f1d3b501c3
+0bf6645b306a58f8fc88b6ed862465d2
+c2d666b05a295dec63baa8a3492208c3
+4bea62bb7b43524a86c3bc61758144b4
+c0c97e22db5055def551d1cef15fb251
+9d9745793ea808834d7de26d55c88e2e
+0bf6645b306a58f8fc88b6ed862465d2
+6ca75881c82665a66ba2d60c61b96b52
+becdb1150d9bc93122136c6f476d4c5c
+1de5478316d5bdd17372c7d5f30e1ea6
+c0c97e22db5055def551d1cef15fb251
+cbb184dd8e05c9709e5dcaedaa0495cf
+7640d2ba20df1b30875e28c476bb48f8
+de778f1a8297f71829665a760640f338
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+25c548fb7737b9dd0423bbf555c10d42
+bbde047c277424150068b0a4b722d45e
+63e54f92194c20e00502b30c92dced52
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+208f766bcfe6d4a49f8dd53334dc8cae
+b7913f907f84d744048d5098f96675c6
+524d990ea434811818b819cac41c369d
+2072994e87b221529dcb146770cd716e
+
+e33278b7770fd6301864922e625949f1
+6971dadd3b91a1bb7086a1190e8dc458
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�J=�I523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+1d2d0cdfe2e08c70f95158fc0f48c671
+
+9988777496d1ddd020cdcbcdd4a2c18e
+d7723d59965412e1086c6aa7acab5b68
+
+a06699b08840f779e6b958cc6246d6a1
+cfcce14c5f9d7bbc672b1124ea6d84df
+4278cf46807e6a014bcc485106aeda29
+f99cd4345a70deda6ef9bf7c01488193
+
+c87a908939dcaad60691dad03e4a82e8
+b09b10ed6619cd247dab8a915c63ff24
+
+391715e38dad3a13b75205d527e82c8a
+
+
+e4ada094d08fd8c407f64c70045a1307
+02bc1bd85298cd759952b65962da1f0a
+
+b8b828cadffae7a5a771aab7a1527a20
+
+6f1a2f556e96bf2476281f957c330394
+
+2d4726ebfd1a5e0a890b58c06428d060
+02539c418ee6f20e8496d454306f0202
+c75e6f521ec04e87e4997f7eba43adb4
+f5cb6850b6e641e978f063b70d8c4058
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e0df73d1b460a2faf25fdc1096966bf8
+dd01315d5192878655ecb5906b05ecd3
+
+80d5b17efc16ace990c07580fc3e85eb
+f6a70bb62e1d2bdce5ff9b3f7f02651c
+233707ee84f6bc194cb7a45ca3b7c5d9
+f58635c69a0ad2875038fdcb8838f03e
+
+9ff53ae3f72a567b8588cab65d2a8813
+aaffd725ae8bb67128e180a551d1542e
+
+fbb14f74ce6058f2ad178031b0ceaeac
+66c47df5b0042addd042bba9c6b131ca
+
+77bd225460b34c981b7771f1f769dcaf
+28b56c861cff9a2935a0e427ef6261ec
+0ddc0ab7b9035a64232742c62309ba0e
+de47f4de208f4f33961c4743defa7b0b
+aabdc3df008e7d4bd1c56f0f0a687ad9
+096124852c9513ec1a969aba755f73ab
+ebd0cfb2e2e9570c4cef1ecf3d4a794c
+
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+93ade2f6f65d52fd6200a2acff336d96
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b4ced886415a83d2b281b605109a4298
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+8a57c46408438c465a35b7e267faf35f
+dd01315d5192878655ecb5906b05ecd3
+
+80d5b17efc16ace990c07580fc3e85eb
+f6a70bb62e1d2bdce5ff9b3f7f02651c
+233707ee84f6bc194cb7a45ca3b7c5d9
+2e4018d203f48d679b1cc9dda75c7f7c
+
+9ff53ae3f72a567b8588cab65d2a8813
+aaffd725ae8bb67128e180a551d1542e
+
+7a4e80b1d9046e4dab57a6594ebdac49
+480d9ff06e2fb445aee7c6bf11df8dcb
+
+77bd225460b34c981b7771f1f769dcaf
+28b56c861cff9a2935a0e427ef6261ec
+0ddc0ab7b9035a64232742c62309ba0e
+b56434ba436c60cdd00eb07003e2a590
+ebd0cfb2e2e9570c4cef1ecf3d4a794c
+
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+51a667dabd70777a8bb60eb3c851b699
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b4ced886415a83d2b281b605109a4298
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+cc4339750445089f68e6db53362cfdda
+6096f1d9295e07ec240a50d0784b135c
+80d5b17efc16ace990c07580fc3e85eb
+7a4e80b1d9046e4dab57a6594ebdac49
+d6f1d089438ca34472e72ab13eb7c52a
+adbe46d22f6d2e481f0c946aed1fffc1
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5981232fcf9985b49e0bc5381b482b17
+8af4027eb0a5787ea6184d0e2bcd721c
+6687ee1adb80112c9202cfbd8b503c13
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+485a18a2c0c545db0a3066371bc6e643
+95eb348b06b9a42b857eb185d2dbea87
+4c427a25a9246d08c436fa4c4956c158
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+4985fedc24b5297c7efde48421c6080c
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+7a58f48416299e4c339e36cc54a9b029
+0f4335126a6f132a2c0039bb68dc4263
+bd5cac772260a70dc21f18f30ccaa518
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+80d5b17efc16ace990c07580fc3e85eb
+fa77bd7801f57859b270756919adde92
+
+4b9d57b44c9fab10c62a2567d8fa9958
+6e519302a841d534b358c733ea4a7d19
+e30d3d7858bd86d2c8faab9cc5ac814d
+c79b8c0d0a702a180f2fab6d7fd0d022
+cb2b8415a0707379b7b7fb916fb43842
+7a81c2f619c1a6bd51a3984d0c416c19
+58d3afc720b1a1a11f4cd28dff2679e6
+a301fdbb1d6e828acf8a3b77d7336ac9
+a98716684059cb5984c6f663457713a4
+2954e92a9b4d0e998fe4893f8141649a
+ecfd1982ae680bc616020f8be616530f
+9d9745793ea808834d7de26d55c88e2e
+5726857c5529fb74db74d218ac906fe8
+cbb184dd8e05c9709e5dcaedaa0495cf
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+93009997c3ec9d4bb1594dfde0c476f5
+80d5b17efc16ace990c07580fc3e85eb
+dd01315d5192878655ecb5906b05ecd3
+e796ca14a586c8a8c379d3cba5ffc700
+
+140cea3b055b3abad23f9843bce2a81c
+543d3eb6023450c82eb7a0b269f058da
+686aac86640d34a526bc288143b85902
+52b573a1954ce49cacdfe923e482530f
+b00b5d491f0fa37d996481c62e155ff0
+7a9dc5c6e5035b2024cbad43ec7c7110
+b4537e054f654e69bdd87fd114c7d446
+a65b1d6a06ab7b045de6a8b00128d026
+2954e92a9b4d0e998fe4893f8141649a
+7fd9bd40e6463cb624228a576ae99cc3
+
+2263870b1712dee634028b20f774bab0
+
+b4ced886415a83d2b281b605109a4298
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b4eb7b936405f2e84c3a71225e9c767e
+80d5b17efc16ace990c07580fc3e85eb
+4ce335bcc263bb8595c7d85cdcdb6ed3
+669d6fc09f9a5389c84a58524cf9fe90
+fc04a5512f3657668e25bbf78201d4a1
+cab327cc0ce227ceed526d4532bb7b1d
+3e78814d6c1797f1c8121c6e232d8249
+9d9745793ea808834d7de26d55c88e2e
+7eaaca4b4bd5d95d30d1f1f994dd2b73
+f1b6b17ee3cf1caf208c6b77a88c4fcd
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+df9042f0f0b380013718e4c706fad7cd
+87141cd2eb68eb0b1d18c7e72f08b46f
+ef9cf8c8134fae7351b10a92497b9e4a
+3da4931d46347df724c503a18898830f
+cbb184dd8e05c9709e5dcaedaa0495cf
+fc04a5512f3657668e25bbf78201d4a1
+54044ac977f27d20e4b2e2a36899d1b3
+ca00a90e7c1074c1331e72a46e87ec01
+9d9745793ea808834d7de26d55c88e2e
+7570e8df962cdb34ff4e07461d06ceee
+ca00a90e7c1074c1331e72a46e87ec01
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+a50e423de97896afb97123424a960664
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+3da4931d46347df724c503a18898830f
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+95ec29360da04a2ce1e8ad455c48163f
+18acce454d006a0d96fd6a8b20ca2fc7
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+139cfd9c6ec1948785f70401086a5586
+cdc54c35732c287672ed91eb5271ad22
+218e770a25662dca40fbf941fb940091
+58d4f64c0d6dc9b3f1619b635b656d4c
+49f1b5a92c93202d1baca19934e217b4
+f2994dd90f114a5c83b8f88dfdd2dc68
+16ea65ddb2ea4436537826fa516d5d14
+084f09a9faa2b50ed916676fa7c87ce2
+b252a7a0e80e6c04f9ddb3ce9ba098b1
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+edff4fbbf053b5dc2b444adfa049ee0f
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a99d13d3519ffdd9227367460a4f88ac
+2c13bb4f0c7229f1b2e4eced6cbbde1a
+c820cb0f70019bd5582e14b85eac7359
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+63b5536104d401d23d437ae8b9865a68
+bff7adfa0d77a86f142b0e4cfc1f1ea3
+2e15c04196e2ed133ced08ef3e0dbb70
+
+0fde5aec68eb557567833d0efbab9b31
+cbf93621432dfb3c4e65947d9a5e1d51
+0017ff9e59287aed6b556316bf5e454c
+d54c6d5819ccb173d219dc7f979d1de6
+3b5332da7365248967dff9e99b4df1d1
+54395b5ac5bc4eb72a518feaa88c6872
+220f4ad4f369db7c60d267e677890a7b
+
+4adae35d6af93f10f85c1292043032b9
+66d7c756fe24f774e4e439f4f8b03a94
+d3a139d8e2de821b81aa385bd826af03
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+971286694da6eaa5ab90e33f7cea8d50
+cdc54c35732c287672ed91eb5271ad22
+09a5676c95fdd7068f2db96577ab72bb
+37e2caf2a9d306900084222f3d750ffb
+d3ad7a12f410ed8f4e2c19ee0cee7242
+
+49f1b5a92c93202d1baca19934e217b4
+25e8f0ff38c65b95fb35e75e9837c64c
+b6745b81883877654e9e69af1461836c
+c0b9c3edc99fc2b2cd7395a493afe821
+
+0fde5aec68eb557567833d0efbab9b31
+e240853a086516082a4ec2b3d823b710
+97b8e9c9507981088baaa67b27bdfbcd
+40a9d0e64db9e810f9b3ac90fef5a17d
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+edff4fbbf053b5dc2b444adfa049ee0f
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1df9c34ef80ac63ac1603b7b1e979342
+
+83587bfd5a882d2013cda6e354f70b40
+8d5edad521e1e01b8063a5ff527ddef6
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+63b5536104d401d23d437ae8b9865a68
+d7a850a063ee0cf64ec31d8998fd64c1
+d6e3bd50a1628c96a62ad29c36de9385
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+9fb84a8bb2172149edb087532770c77d
+8a6c141756d58ae351cd56242e5f3361
+43be58c9b3637061d39691aa9fc9bfaf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+4db158c8ed9e47df47bf108f3598d39c
+41ef9e2806acab46ca00e010cbd3aa95
+e3865f24a232b7228735d1abe9c63ed2
+63b9a778cfafd2751b51eec07e112830
+e0d714d758f1540a8df364a965af9150
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+4c8a477f582efa752e8d69246a22b038
+5586d7adc552cb0678c45bba79aea018
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e44f6b2dfc9e0da9651f890cd3586be7
+83587bfd5a882d2013cda6e354f70b40
+d6b3853d272c32e69cf9d7b779594693
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+96b0a207f69e6e1a99ad0fcc17ec1be8
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+ed5cff4ea72d712f86e8b88b5b9b6b6c
+ded11b2c220f5f5a71cd30216680afb1
+34c05424d74e4e44aceae2beb5b54570
+e3fbc805688c6cf32cf252d3cb460b3c
+cbb184dd8e05c9709e5dcaedaa0495cf
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+573e86d44289af6ad3db3dc9f69184ce
+948f47fb79da8d3d859735e93cce098c
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+75956a1ab71788a044dd9f2c555afc05
+b5e3db0c31d5d81d70a9c67f2b344552
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+7bc70a20a6248ebb10e0c45e74a92842
+f4295db260f91cb81e9ae3a680ef18a2
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�>�523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+1d2d0cdfe2e08c70f95158fc0f48c671
+
+9988777496d1ddd020cdcbcdd4a2c18e
+d7723d59965412e1086c6aa7acab5b68
+
+f99cd4345a70deda6ef9bf7c01488193
+
+c87a908939dcaad60691dad03e4a82e8
+b09b10ed6619cd247dab8a915c63ff24
+
+
+61579303b8ead9f5faf6d9b0cc06aa2f
+bbc6dd897336afe71cf178f726d304bb
+
+d5c5df656880e999a999dfadff72e427
+
+e88cb1ab6d796fa36eeb6cf28dea9351
+80d5b17efc16ace990c07580fc3e85eb
+c76d6bb88ef9abccf9b402611063e8b2
+a6b0d6d74c9877aa3313f375e0e47ac3
+4c415516058c7e690f338d4b2cf6ab60
+cbb184dd8e05c9709e5dcaedaa0495cf
+6322dc787fb5c9fe7901ccc6f7b6f7eb
+b3bfcae02c4806efffbd8c99b98c6d4a
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+4eee62f5e4b29a62126a09a17a5b45de
+084f8d89b861eac3cab5ab6e528ea43a
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+48adc3ec20ef979bbcf7b575fdc9a401
+f494c2a7942273ff8b7c03d87d2bdfbc
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+cc4339750445089f68e6db53362cfdda
+37e888392a3485f8944abb402652c7cf
+e78178e319aa58f3c313c832fa3b0b60
+80d5b17efc16ace990c07580fc3e85eb
+563c97ecfc126f37b051724905c2691d
+c2a3855111fc3ad04fec7ff1e9d12354
+a6b0d6d74c9877aa3313f375e0e47ac3
+d3ee3c893fd03147ac8b1ce5f2eb14c1
+2497ecd959862717b5b310ec67c229a5
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+7a58f48416299e4c339e36cc54a9b029
+6e273cd4e59e8a9a14c336069a4f6f74
+00bf2c8f7a3b5f8695211322ed41338a
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+93009997c3ec9d4bb1594dfde0c476f5
+7f80f814ad60d88fed4e48222eddc54b
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+b4eb7b936405f2e84c3a71225e9c767e
+bd4d0cca6c83c3d8046b590d55965b57
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�@�523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+efd979cf46e3591f459883a6294fe843
+
+fc3d4a422f0ef14da272c4e26ad53a82
+005c6ee3bc8e80abb089c206a6f0af3e
+
+61490e5fdda3918fab8260acc1327696
+02539c418ee6f20e8496d454306f0202
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2e4e147a92742901c1c07ae002154a9e
+d2d5c1b12a7acf7b6e71241252cdc2c1
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5b65762161796800b0e564856913ab66
+8abcf619e68378246bb9c95babcd5ce4
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�A�523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+efd979cf46e3591f459883a6294fe843
+
+cb3fe8e55ecff8e02822bffbc4791b2c
+1bd850ed48f8029668dcbe00e6a8b60c
+
+9f0115ee159d8dc1afe6539d202fa3aa
+02539c418ee6f20e8496d454306f0202
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5967c622577595995a1dae200cc6d7e3
+d2d5c1b12a7acf7b6e71241252cdc2c1
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+ba64cafaef0aee8c627ef73b7367fd94
+8abcf619e68378246bb9c95babcd5ce4
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU��C��523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+e79eb0ca9c31fd522c3e33c82156b4dc
+
+aef1905afcbbbc088097495ee5a27b91
+3187cbfc52c03e9f72a660a0f76512e6
+1af0b524dbc8a1689697ac49bc7add26
+193bf67889b339ae01aec85f433db1b9
+740af85a7cf01a113d96982f40915469
+9988777496d1ddd020cdcbcdd4a2c18e
+d7723d59965412e1086c6aa7acab5b68
+
+a98d49638098b960f6f1b0449b2931a9
+a06699b08840f779e6b958cc6246d6a1
+35af660d1117e581b025326c8a9174d1
+cfcce14c5f9d7bbc672b1124ea6d84df
+4d6e5e20168dac9bbaf43a747b45cd31
+eb14b05545c8d3b29f3365d47ee3b435
+3641c0e9278b08d5df0176a87718b382
+b65f2347f1432a9ee7b923319d354c96
+5fc3012287b8625cd19567cb4c1e107c
+4278cf46807e6a014bcc485106aeda29
+f7306e98b878a40ad8405241728c0643
+29c6ebf62b718d37876ea96440383f1d
+f99cd4345a70deda6ef9bf7c01488193
+
+45dcd7bcd02c2c203f707c78116e14cd
+c87a908939dcaad60691dad03e4a82e8
+b09b10ed6619cd247dab8a915c63ff24
+
+9f14bbcc49f6defa9238d757205a4ef0
+f21b6af4795c6b1462d3a87a7da9e52f
+e53dc032ae98b1b732168e6cd6f7d631
+43e38890a62dff55349d9e47672e3775
+
+
+d03da2d5b98d6918a3e8b5d1b84820db
+008c7ee81144a51bb82e2e51fd84408c
+
+55b38c1056afdf8390e98c0373006d63
+
+c6194154d50ef48f657abdc171120e3b
+
+f709e924e927e5afafee26d2354d3f21
+
+de2490014e525e23a6920d2a2c32b9f0
+
+778cd0b4d0fdad92b992f5fb9398e127
+
+90b86e558ace49c470bb8dbb8ded4e88
+
+b0d69375984d6ee7dc93ac12db4dfc55
+
+c458e619396054f78bc926fb81b4386d
+
+14c84d443235cbd3c5067a704a7ecff5
+
+8fbe596647ac2ee03625955c1642c783
+
+582f041564d3b399f48e8ae230c16fee
+
+eadc8735148e0d6dc99c7acee5a59850
+
+c8b173c6b7766f0ace9e938aff6f78eb
+
+1d425214b0b08e8b6e24d8fcb6a2d466
+
+790710a1eaee00f8701007c7bebf14ba
+
+31c20d13c5ae1c113d0adb2913823e44
+
+31236d4acd07366cc627f92f884ff4db
+
+d60b00f77abbafbff2dc93426af1e09b
+
+5725c885b2c43e1463496646d0f49e9a
+ee4720664a31f4a32759fa8e6b39ad7e
+ed209cf5d216728c0c423091d6396e34
+557007cf5fbc07ad61bef101e3c84fa5
+8ba0a7f2d8d0f13dc669bf791193c54f
+47b8b0e4022785cbe9c39a8b767998df
+aa71f73f65a7bbe64719c2d4dd3c4194
+57dbf9221428b4b3ecef0b30eef53b85
+0ec88f11b8e0d3db4280d4e860deb954
+0b63cb2675c13cb27d15f595684a4f14
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a30c7560955894e8c61e3a233070d7e1
+c6866b176be9a0c99bb009466bdb3f90
+41133d725d4ec4a3c7a5eb8bf1046e07
+cbb184dd8e05c9709e5dcaedaa0495cf
+01a4e1572bef98558ed7f4e845c07cfe
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+0632e1e1786b96b7f240426e7fa8da64
+ec2969639eb17346365ecc37e84ce180
+49b8c2f2bd9f9fd8e4acf882368632f8
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+424bdfc76813cfc008689f119e93a6e6
+1ec63d5707b3a45fbcaf99fc3edc6662
+0285c5fe14368272a5c1a3aeb0214666
+34c61e63e74d2938183ce5e7e8d99ae6
+cbb184dd8e05c9709e5dcaedaa0495cf
+75df9d476e2298272f14383ae1ee3a00
+98debf44830dd598ffa1846a2bea0284
+2746abb6709274942b40198e40de361f
+ed209cf5d216728c0c423091d6396e34
+4950359d2e2330427371e9995ca90eb5
+2a24508890d17ed17dff3e430c63811c
+f3339d29be1560ce69bc94232b0972d6
+c54a4bf911f28333b7bf4bd89237b2d5
+198e8e66f6d13717c731f39dd39de9b7
+565326b9bd4a77afde27076a33202d31
+
+80d5b17efc16ace990c07580fc3e85eb
+d68804bf0a7f7e3f14de9b222f901785
+ddec042b9c8f69a5b58c6f52d866bedc
+
+fd641b20e1ba323732e9e7d273fde086
+40ffa038c032c57f766db8bdec75cbb0
+70502550187ce8ddf75661ec6c6dd2d6
+51c280c89c2b605c73229f63f5011ebc
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1dced53d8b59fa6a553dbb334ac5b0b6
+d06347ea547a0a057ad74776fe3460e0
+b0473f8f3dc96b8cfac7bfb5131e3751
+
+819dc700840ab9ce8127bd5e2d7ca356
+851090bfbc0a680384e754518db1bf08
+6085570a9065fa60f9412778a0ba16f9
+128471714fc53aaf3905b8072e3da10c
+818e14eaf6a70ae26cd9f0f93f1606ab
+f992ee1d7933b419959d02edd25755da
+83a29afe1f33342f9767ba689385a81c
+818e14eaf6a70ae26cd9f0f93f1606ab
+3b2208c4cd1f1fb5456107c79dbe779e
+a50e423de97896afb97123424a960664
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+3b2208c4cd1f1fb5456107c79dbe779e
+5a29aee8cfe3a5110dc892ab8adfc17f
+4950359d2e2330427371e9995ca90eb5
+2a24508890d17ed17dff3e430c63811c
+f3339d29be1560ce69bc94232b0972d6
+c54a4bf911f28333b7bf4bd89237b2d5
+198e8e66f6d13717c731f39dd39de9b7
+565326b9bd4a77afde27076a33202d31
+ee4720664a31f4a32759fa8e6b39ad7e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+6558668a4967e4d41ffbd06a2b370057
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1d29a1579b1212c0a05239f038d35282
+9e4b336aa079de1595ec614a5af69068
+505b97969baa28c3f607a38ee02f4f2d
+d68804bf0a7f7e3f14de9b222f901785
+80d5b17efc16ace990c07580fc3e85eb
+b2332db8fc91d4d8e4cd56afbf5c4602
+
+ecf70baa9ed0d4bbd004e28014000ca4
+aa71f73f65a7bbe64719c2d4dd3c4194
+c6027aa5d291e165675cd18747f7e31f
+8d2c151ec43c3ed688a7fe7821006609
+b178c313f14d60f53b495f6f9c59d98c
+d0a693953ac714ac4655aeff308cdfaf
+
+e22bda4823d451fadfcba98e84d065e9
+dd5ae83b672f21f9dee60f8fd5270194
+a259b11d7e15dc0460a0df0f92a4501c
+5923d1368e270cd1c08d25692e7d7301
+
+2710849e7c0968219c946fb3fb77092e
+ab4b42bc72d64a8033e768771bfa7df8
+4874fe97cf6dd30e03ab975fb957578d
+56f0e80d118e704c10d715a90686aeb4
+179e4fbf4a7ac544a24779ec41bc26e3
+7bc0b0889757161306b535616ccc79b9
+8f07391e9aef753e38aa52aeda1f5378
+4660e2769e425243373bdf87a6460710
+65a8582e9f6780f542b9e3354e3bd4df
+c8e9f302e9fa32e175f00c6a4b55ef83
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+d8ec9fe2e4820432fda07ee94f93d691
+ae0d762c45423b9567bfbe9be691f2cb
+a259b11d7e15dc0460a0df0f92a4501c
+3e074706379279c8d506b7271f5057f3
+d1f73ee301fc7b2c9b02276f518efe48
+1b84ba2360d473372af90d55f0e7cf9d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+ecc893afc4e681502c5f8cd9c93c3675
+c6027aa5d291e165675cd18747f7e31f
+8d2c151ec43c3ed688a7fe7821006609
+b178c313f14d60f53b495f6f9c59d98c
+d0a693953ac714ac4655aeff308cdfaf
+
+2982f510ff0ea79af72db05ab70954ca
+69f8afc905a8dce1ccee73633a4eb849
+b4f95762fd86033f93d84b6907d668dd
+18bf1a4cb2237bce150ef429a3555642
+ec083e0e8b33dea37614bee3d467ac89
+405096b2ae03452c9d90ad09b7bb1abf
+c9c14dc49274818e0e1f9ad021079899
+
+5612d6f890bf42ce5ee9355917d61919
+8e88b7e44d047881f5ac17faf05e49c0
+efd5d19ade641fa0d5663651a468ef1f
+508b81fca22b3c37aa18283e3563e032
+5517efeb686bd83142da29c45c831cc1
+e9a04ebbbfb4520087e3d2e54ef3f0f6
+e0b48c34d2e647d5072547ae6d4f68e8
+fd93d8905195ef61cc980760d5022cac
+efc4c8723267aad0178a20791ab086cb
+4867024a68275dce395745266c35a6ab
+04ee8b3831de2b932ac5690933c90c25
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+2aea1a52e6e1d2a2ca67ddacee773956
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+8d71a278aaa1091bac7ebe6f1321c8c8
+0b623bedf595f217cae3b2f6768c7ebb
+67c04018934deff364b5db378b71e342
+956243978f9cc9951d398eda8670a682
+d4fce8012659e56145f1753a3bd8d56e
+
+c54a4bf911f28333b7bf4bd89237b2d5
+
+7d4c5665d97469cb13fd067c666fba94
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+384f4b57f6b94eee20bc40f79d271476
+80d5b17efc16ace990c07580fc3e85eb
+3e5f46442f66c180ec0b842f67e02c6c
+8bd4fb2e4de0e764531a73f533d53873
+b89da6425453692927245156477f83dd
+d981474263d57511baf0a0a8f72dc872
+39bf504070cfd0882f5f39ba97778952
+49127a9818bb38eb38e4550c795c60b6
+657b5190a5ea2ca69e5f9b1d695e900d
+86df7ce9b9cb463cda0bf92c387a568e
+9ff927e39ff2d4ff5391b29c603ba6a9
+967e3efbb869c923b7b007e63319efa1
+0668e6faa74c6a1431a4cc6b11b230e0
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb99629f3917fa661c1652df6dba137b
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+8e1bf11107a2e133bf88235aeab23348
+cbb184dd8e05c9709e5dcaedaa0495cf
+5a29aee8cfe3a5110dc892ab8adfc17f
+39bf504070cfd0882f5f39ba97778952
+fc0186588dc763256201ab7a56b104e4
+93704ae8255df0b698ee24b4c4dbb813
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a3af0dcd9e56a9c1be81a0d76d5ea5b4
+1f0bb906438202df6440d9da411a4954
+
+b2fc95c83b4f53f3f977aa1325957afd
+80d5b17efc16ace990c07580fc3e85eb
+3e5f46442f66c180ec0b842f67e02c6c
+fa3e0a61e8360fee0f9ef0e846cf714e
+0aa8517d2349324d2e2f63896da1a014
+f03cc8952786d4741e4fb3ebc8906a58
+39bf504070cfd0882f5f39ba97778952
+49127a9818bb38eb38e4550c795c60b6
+657b5190a5ea2ca69e5f9b1d695e900d
+86df7ce9b9cb463cda0bf92c387a568e
+9ff927e39ff2d4ff5391b29c603ba6a9
+967e3efbb869c923b7b007e63319efa1
+682aa2ce24f6099175ec0d623b4a7f81
+08f41a792448208e32cf8ef0ec149130
+3e9e6151823e6c81c2685dbb0607ee03
+9d9745793ea808834d7de26d55c88e2e
+92454e8d9addfe91c29445ef5f84e80a
+4a265e532a2676188c0517ff8f6c6138
+f4f3592d4284c77817a2ba540f99dc74
+9d9745793ea808834d7de26d55c88e2e
+f3b0b48d499c5af92a5449cffbfb921f
+145b3f0cd9fa1443813a85e9b6fe4317
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+e59864144a4f075245ea08a07ba6d0c5
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+e7e9a1f70bc6050cbee546cbba1a03b3
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5a29aee8cfe3a5110dc892ab8adfc17f
+39bf504070cfd0882f5f39ba97778952
+fc0186588dc763256201ab7a56b104e4
+93704ae8255df0b698ee24b4c4dbb813
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a214475d55f97d7e4a4652747739e1d0
+850020d8148b83ad955081b0b5eb75c0
+0fdf7d1bb1430cd99a3663eea3249221
+a1d42ac1bd2162b0d15d9662a082128c
+aa7bebd6967362c86c8cdf17a5b3c002
+8adc5677e51c741a7f561c3925c13e07
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+cf844ac467869c97205938e0575a1c3b
+422c312431999b8797f83cbc35383177
+b555ec30648ba6ad97889fdaf04a42e7
+40ffa038c032c57f766db8bdec75cbb0
+2479b8b0a5d76a0d01dfeabd5fe58c1a
+86ad19060fd4b9f348e70ff430dc11d6
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+85bae6b32e269be46696ad19ed3f89ce
+40ffa038c032c57f766db8bdec75cbb0
+2e77a525a61ddce98ddf9ba496662de4
+638dfb72026b2ce3decc2a5521b13bb1
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b2a76890664b0e8bf867bcf9948350de
+67c04018934deff364b5db378b71e342
+956243978f9cc9951d398eda8670a682
+d4fce8012659e56145f1753a3bd8d56e
+0b623bedf595f217cae3b2f6768c7ebb
+
+7d4c5665d97469cb13fd067c666fba94
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+03461c99dc3841190761036d823755f0
+80d5b17efc16ace990c07580fc3e85eb
+1f1615dda0ed70192067b322be36897d
+1f377ef11ade98831d704ea120e1ae8d
+39bf504070cfd0882f5f39ba97778952
+f49077df74a77fac323be371402c1259
+657b5190a5ea2ca69e5f9b1d695e900d
+86df7ce9b9cb463cda0bf92c387a568e
+9ff927e39ff2d4ff5391b29c603ba6a9
+967e3efbb869c923b7b007e63319efa1
+06045e2cf63e468370fdc4e06eb09f12
+b5b8049118e1eb0de677389d340337c4
+782305513f1d5fa9f6fe6ff0cb163e00
+e90d09d85cd6cbf3ab6aff51e5d6f46b
+0a60bce798a144ce6c8cba45355baaa1
+1c2cc4c9d8256a4432580a2ea2e887d6
+9d9745793ea808834d7de26d55c88e2e
+4bf5ed3e1f6ba600367c61978f9a6223
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+80aa21ecfc00a9117388890d8910bef1
+cbb184dd8e05c9709e5dcaedaa0495cf
+5a29aee8cfe3a5110dc892ab8adfc17f
+39bf504070cfd0882f5f39ba97778952
+fc0186588dc763256201ab7a56b104e4
+93704ae8255df0b698ee24b4c4dbb813
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+43ac88455642dc9413111c82a8fdd06f
+80d5b17efc16ace990c07580fc3e85eb
+640f58cc104f16808b45be0536abe4db
+becdb1150d9bc93122136c6f476d4c5c
+7e21232de4f928b31fb6a3b4f0b007a5
+d981474263d57511baf0a0a8f72dc872
+39bf504070cfd0882f5f39ba97778952
+17557653e96664ec8b68955f082d938d
+657b5190a5ea2ca69e5f9b1d695e900d
+86df7ce9b9cb463cda0bf92c387a568e
+9ff927e39ff2d4ff5391b29c603ba6a9
+967e3efbb869c923b7b007e63319efa1
+a98a5e2d8383c8a88a43861308c7ce06
+49c9158b69333d057116beaa707435a8
+c635ca59d1144bc7e1b8b477e9a286b2
+5ccdadef56e516a0bc6046ff73be975c
+e90d09d85cd6cbf3ab6aff51e5d6f46b
+bf4694587c1d887e6831552e5649cfa1
+9b47c080cdd629e9555afe29e1aed418
+1c2cc4c9d8256a4432580a2ea2e887d6
+9d9745793ea808834d7de26d55c88e2e
+4bf5ed3e1f6ba600367c61978f9a6223
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+00cf759bb3a0e7ac3f0cd2975ee87ea1
+cbb184dd8e05c9709e5dcaedaa0495cf
+5a29aee8cfe3a5110dc892ab8adfc17f
+39bf504070cfd0882f5f39ba97778952
+fc0186588dc763256201ab7a56b104e4
+93704ae8255df0b698ee24b4c4dbb813
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+0499a033be28cbbd7b751812e43c04d8
+80d5b17efc16ace990c07580fc3e85eb
+3e5f46442f66c180ec0b842f67e02c6c
+fa3e0a61e8360fee0f9ef0e846cf714e
+c6894ff344b055d36987cc57a83d96a9
+f03cc8952786d4741e4fb3ebc8906a58
+39bf504070cfd0882f5f39ba97778952
+49127a9818bb38eb38e4550c795c60b6
+657b5190a5ea2ca69e5f9b1d695e900d
+86df7ce9b9cb463cda0bf92c387a568e
+9ff927e39ff2d4ff5391b29c603ba6a9
+967e3efbb869c923b7b007e63319efa1
+682aa2ce24f6099175ec0d623b4a7f81
+08f41a792448208e32cf8ef0ec149130
+3e9e6151823e6c81c2685dbb0607ee03
+9d9745793ea808834d7de26d55c88e2e
+92454e8d9addfe91c29445ef5f84e80a
+4a265e532a2676188c0517ff8f6c6138
+f4f3592d4284c77817a2ba540f99dc74
+9d9745793ea808834d7de26d55c88e2e
+f3b0b48d499c5af92a5449cffbfb921f
+145b3f0cd9fa1443813a85e9b6fe4317
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+e59864144a4f075245ea08a07ba6d0c5
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+2232ededac3def8e0d9d9f03283c987e
+cbb184dd8e05c9709e5dcaedaa0495cf
+5a29aee8cfe3a5110dc892ab8adfc17f
+39bf504070cfd0882f5f39ba97778952
+fc0186588dc763256201ab7a56b104e4
+93704ae8255df0b698ee24b4c4dbb813
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+321b71bf3bb3d185c47f2fd2f50cba48
+b039cd8a8da8576308dc813f5d199f58
+0fdf7d1bb1430cd99a3663eea3249221
+b6a296a55f50d2812e0b8a5dd821b001
+d5193920613e74135ea7ef122ac54a76
+aa7bebd6967362c86c8cdf17a5b3c002
+1067b8226c124e423d483c1dce0402f0
+967e3efbb869c923b7b007e63319efa1
+8adc5677e51c741a7f561c3925c13e07
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+fd9405cce24f62b20cf8730809e28bdd
+2e77a525a61ddce98ddf9ba496662de4
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+369c5bc0942bacd81eec20f579f8a0a7
+7d4c5665d97469cb13fd067c666fba94
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+f3f57143748d946fb1f955abcb2568ff
+49238f3b490e085df5c56c600b469dbb
+d5d4dd27604b920b0a20242f167da36b
+11ae1545480e16171e79ebe6f761e343
+c2bef11d43d42a908d638b8e21336173
+67181eab8dafec0b1535ec1d625f4746
+1388960429dab93a52130db39863e790
+c2bef11d43d42a908d638b8e21336173
+d60c5396a4c53ec3de5e233706ae4efd
+faa2f5f8a9b6c2301f64251ead54b10b
+fc582dee90840840b6fa6d242cea80fe
+115c0309a2a4c4d4a10d8dce91b68080
+cbb184dd8e05c9709e5dcaedaa0495cf
+bb99629f3917fa661c1652df6dba137b
+c2bef11d43d42a908d638b8e21336173
+a00753294576b1e90102859c9344921c
+4022494cc266fc9800385ffc582511b3
+fc582dee90840840b6fa6d242cea80fe
+115c0309a2a4c4d4a10d8dce91b68080
+cbb184dd8e05c9709e5dcaedaa0495cf
+920ea38c557a0ecdf60f9b27aa71ca00
+c2bef11d43d42a908d638b8e21336173
+cb0edc6e6f56d30959f86e5c632f48d1
+b0c6fba187f15220a49a411f45c57447
+c2bef11d43d42a908d638b8e21336173
+07d72c1a52eaa0d58337c12202a98d39
+e71f88643546f6444df2718cb1d1988f
+c2bef11d43d42a908d638b8e21336173
+e98de92e005e0b19c3f50847b5c72188
+46e9949345ce3b8aac948281555eb551
+46fa7cb109dee7bbb8d00cb2e69f59d8
+e71f88643546f6444df2718cb1d1988f
+c2bef11d43d42a908d638b8e21336173
+3b643d05e9a9b673afecac6cee8d664b
+c2bef11d43d42a908d638b8e21336173
+d92faa9e67888adbdb6961df83a1348d
+de735fadc4b1b96d6039f920cc08b891
+6d6ed05d96cbcf36f73907be42bf0f0c
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+c353b6f647aa49b36c61f411baef8fe5
+7d4c5665d97469cb13fd067c666fba94
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bfd620b5dc8216e48735533cb2bba661
+89913a644e00e661cc18c5a7a0289939
+4feb43288d651d0d2a24c8ceebddcac7
+7ebe4010ecfcf12c92195a59e524d5fe
+0ffe59805a535581f28233c4a6224ac8
+b61e842091bbb716678b3b1d9faa3b29
+4fe0f83c07f6705734d69e014e988c74
+cd3ba9a6d5fa3bfd5ac4d133cb909445
+9d9745793ea808834d7de26d55c88e2e
+55c5486a0c29c2484df77fa4859dc8ad
+77492947617191c77c3d357fe7d0080d
+b283906a5321a21d2d918876dbda6773
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+55c5486a0c29c2484df77fa4859dc8ad
+db7d2b963ae77bc27c26b3ce6a5f05fd
+80d5b17efc16ace990c07580fc3e85eb
+7e2b110b85f3ecc5ac2a759f436c44af
+215dba1be57c524cb96c49ad84849f71
+f705561b45a74e7fc51a1057a9782509
+08b0494bbf16f376d9859799661b6058
+f40e4cded5690881878c1253698429cc
+70213b5aee882344ab4891615c2ee8c7
+938e776a174186061ec60f3639ae6dc4
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+945da6340056e8d1bcc926415401d326
+60d199612e2645d96af2ad0eb8c8a048
+8faefaba33f03b9106b32ebb2fa99d92
+30b9e4668f55d43a65d6ba1545d87a95
+ccece6d53dba00f7c83d9ea909f210e8
+93588742acb827c35fb8623dab88c67a
+4737eb3412d20ea4b8a382128210c88d
+f24021fbd2ea607d0a87e0ebeb1f8fa0
+4956b9e2f6e983ccaeab04597ec8ed6e
+4c9cb3b9004fd44256d4e308edf5b784
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+cbb184dd8e05c9709e5dcaedaa0495cf
+a6b0d6d74c9877aa3313f375e0e47ac3
+324e81d2ba06a1778b88498060c2b369
+2dc1665d31b37f9aa7408939a0365027
+cbb184dd8e05c9709e5dcaedaa0495cf
+324ec32c6881a9b212b3a7c304a1c034
+
+744d5d8acb09be98771f52d3fb90e203
+070869aa3277d5453d34b38a72b778b3
+409c34e8755c227faa017edcaa2919c6
+a26bbcf43c9a345c806ab2615f8763b1
+cbb184dd8e05c9709e5dcaedaa0495cf
+2f6b86956806e792c3db90a84dc482c7
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a0fe5b101bf330310a15cc9c62ed5a20
+ea30bb883acbdbf5cc7d71f63895bfe3
+667af87e6452f66440f05fda60a547c5
+
+3e592adc32df73b977841ca0ec818542
+e1f99aecc4979a4177806046645ef6c4
+c349615af872e9d91a5a9c487714280b
+
+1058669bb487cdd30376a50149cb9610
+7a90cbe97bb8e75e7583c072d054a87f
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+346b047bbb3f49076ceb855ea6450ab7
+7d4c5665d97469cb13fd067c666fba94
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bfd620b5dc8216e48735533cb2bba661
+8e8db58221e65839e909fb4a7fc13e08
+9cca6fd9fe05796d410d6092630f1409
+77492947617191c77c3d357fe7d0080d
+
+e5222db7c090ac5ed0ca526849154585
+04ec2135bbd528f1495a6d826e899835
+070869aa3277d5453d34b38a72b778b3
+409c34e8755c227faa017edcaa2919c6
+c3e9cef1d46488e58b80894d55d4be49
+cbb184dd8e05c9709e5dcaedaa0495cf
+2f6b86956806e792c3db90a84dc482c7
+113d33309397934d3f5a9ba4e901a9bf
+
+b812968b42e8eb981b5ebad88e2383ba
+7a90cbe97bb8e75e7583c072d054a87f
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+43c162aeabd966d58f3abdadf1140575
+7d4c5665d97469cb13fd067c666fba94
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+74932d53f173f6bbd2fd0b2e0a519eb4
+a46d62c2d1e082fdbe7a3ffa30768696
+
+c0d7300dbf90d2249c5bd6b223ed1ec9
+d84aa2de23ca14203c8d667bbc85401c
+e9a04ebbbfb4520087e3d2e54ef3f0f6
+a41a080cababf18dbf1e16e196bbe5b8
+
+37b63356a0e5c103896537d08da39536
+e43a2ecfcb111399b9b843d04b868497
+c6fa7323508604345989dcd11dd2f1cd
+983413cd27294c5dd4c36086e913955a
+cbb184dd8e05c9709e5dcaedaa0495cf
+f205c3a8a55d68a68b379c97c3db7bed
+
+3c7554101cf7688696a495dca5aa5e61
+56c67fbe254eea759aa27811d3bb3f67
+
+d7097ee2955ae08fd05e70c81c886b9e
+ae65fe5b90dba2aa0c58cf3b6e423fdf
+9d9745793ea808834d7de26d55c88e2e
+59e4141ffcf8b20f0f7c912907073ddc
+
+5354c197e71455601626f295356d34b8
+88de0a85854f26c7be9c4a77a90619df
+19e1e623aae7f5fc98a8657c68bb5c2c
+0308da1f55797ff77f91498698f13119
+9ad3981ea2b2c1b0bba7d5fdc5a8f29f
+9504c1b2efd53e84f535737db54c3500
+2954e92a9b4d0e998fe4893f8141649a
+0b5df3ff4c0d906cb3674ac7f0bdecd1
+
+b039cd8a8da8576308dc813f5d199f58
+0fdf7d1bb1430cd99a3663eea3249221
+b6a296a55f50d2812e0b8a5dd821b001
+3d74717b134533ffa47d2d51b4766654
+95b177fa4495404357759bc37b382a71
+
+c1e91d359150c412825698957a2aac14
+93127e07f403927a91644c19ed6b0116
+1067b8226c124e423d483c1dce0402f0
+967e3efbb869c923b7b007e63319efa1
+cbb184dd8e05c9709e5dcaedaa0495cf
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e5fa8461e4a7614b43be4ade0c2249f8
+a4697c591603d75ba7832bbc5477a8e4
+6b6bfb96fba45ea28a9c4e53c40bed32
+6a92837a84f68414ee84246ed4ffdc3c
+cd9ba31061f9e12a6582a484cf2a380e
+f7cd82e5ff9a494e362daa2f431a943a
+cbb184dd8e05c9709e5dcaedaa0495cf
+a0bb7fd023a329855cfce1de6972f2f0
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+23e94f78777464462f33a5c95169dcc0
+4df4d6b16a135ebe09a84d1d6788b822
+667af87e6452f66440f05fda60a547c5
+2ba71c0a4d2ee575a576dc28d250211e
+113d33309397934d3f5a9ba4e901a9bf
+
+d10d455f1c11b9f51d8dc61b4eae82a7
+b97035c5ad720418a5df371d1cd05572
+9d988ea91389d517224a61dde1e1748c
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+21a22171b2d9804d48ed4c3700a00326
+7d4c5665d97469cb13fd067c666fba94
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+74932d53f173f6bbd2fd0b2e0a519eb4
+
+c0d7300dbf90d2249c5bd6b223ed1ec9
+ba66bb6f7c9444d9bf5ccf0fe3acb800
+547d963ac1a2c40ad7d4b6e9a3d608fc
+
+1058669bb487cdd30376a50149cb9610
+7a90cbe97bb8e75e7583c072d054a87f
+
+4db9faae509855bce8ebfd3ec82acb37
+d84aa2de23ca14203c8d667bbc85401c
+be092c3f0446cfd30e1f960089bf1e89
+49d0dfa26961cde07102bd3047c49f84
+
+a916af4f17baa140de5b13a6f758dcea
+1f0253258875fddef677eb80a80c8ca0
+c6fa7323508604345989dcd11dd2f1cd
+8087ff9b9fecee05f2ad0c9b160cf148
+cbb184dd8e05c9709e5dcaedaa0495cf
+1116a8597aa2a8f9fffc8aa39a09233e
+
+7a895205f23d4b7ab2d3b7c79fb25f38
+b6e0d9703c9b990450870c942f04f4e7
+54155d282f793de4bdf4c0e195bbde83
+ef6b5f3af4e9060e34ebb9aa41a49b72
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+3195c87765f30355236b98e0d95eb130
+2ba71c0a4d2ee575a576dc28d250211e
+113d33309397934d3f5a9ba4e901a9bf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+9456541bfcb9e0b66ee957ac00ccf83b
+c6fe929d791203d322b8da57c39ccb7b
+650c7364d14e9f30144f6b7cbc1b1007
+12ddf4724cea42c5af8c93267b2b9ec5
+eddf7565b5e52d3839ba8938e7d24b37
+3619398bfe420e16efc9f83b23055fc1
+9d9745793ea808834d7de26d55c88e2e
+22c3237af233886aff871de531334808
+eddf7565b5e52d3839ba8938e7d24b37
+4660e2769e425243373bdf87a6460710
+e5b8781835512dd1742ce4c8e69e9ce2
+d6cea75fedac12629a25843b2d50b8fb
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+8b1c632bbfa8f7f25a4187b9c1b70dad
+7d4c5665d97469cb13fd067c666fba94
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+6486587ce4f794f1b7661025226f4d15
+2a24508890d17ed17dff3e430c63811c
+4950359d2e2330427371e9995ca90eb5
+f3339d29be1560ce69bc94232b0972d6
+b0473f8f3dc96b8cfac7bfb5131e3751
+
+67c04018934deff364b5db378b71e342
+80d5b17efc16ace990c07580fc3e85eb
+3e5f46442f66c180ec0b842f67e02c6c
+8181f8a7db0281918beabfe42fbef72a
+b89da6425453692927245156477f83dd
+f03cc8952786d4741e4fb3ebc8906a58
+39bf504070cfd0882f5f39ba97778952
+49127a9818bb38eb38e4550c795c60b6
+eaf99f5d35d35f4b60454120ab9e1916
+5e3a6a5523dcfe36c12036ceae0a023a
+9ff927e39ff2d4ff5391b29c603ba6a9
+967e3efbb869c923b7b007e63319efa1
+ca764d217cb44d3138b10acbe58fb348
+98f69c810538f48d43fa87dba8b472d5
+845f95ab86d9cde00ac564675926be98
+fc10f1dcc618d6c2dc810d172fe2131d
+9d9745793ea808834d7de26d55c88e2e
+9f7297409bffdbd124ee8a1fe6a69684
+9e32a588f179c8627e0c7889d7f6ce1a
+1ae34742bdf8273b32354ca19cdbbc05
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+f494fb2c397cd84cc107fc97a9d550ba
+cbb184dd8e05c9709e5dcaedaa0495cf
+5a29aee8cfe3a5110dc892ab8adfc17f
+39bf504070cfd0882f5f39ba97778952
+fc0186588dc763256201ab7a56b104e4
+93704ae8255df0b698ee24b4c4dbb813
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+cd029a54841d182d6ebb1440378ec406
+a7f4520073e7ccace3d7a4c8c33007b9
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+fc5c4839d3e1ccf9fb33999a7843aca3
+895089e285f23c2eeb1f8ce46e6c8bc1
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�D�523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+e79eb0ca9c31fd522c3e33c82156b4dc
+
+aef1905afcbbbc088097495ee5a27b91
+ef713b6845155c3184c55b6f39518556
+740af85a7cf01a113d96982f40915469
+ccce10a067610225143cf3a343f04e0f
+7abc367d2fffa7e2e6a2a1e6730ae432
+f774ad3024f0077dd9836c8a35557101
+
+57061af8a0594d7006d0351e9584e710
+7d78e297797ff1e3c2b4a524684778b8
+
+b6d6be80112b3eb7226375ea356b346b
+
+763f90da5106226a039c926480a2e0b1
+
+aff6b48054e3588110f9d3e51b82148a
+
+5a5c03b73d3f925ad02fb644beb2ad4c
+
+e3ea2ae2bbd0c904abccce75a2c8f2dd
+
+4f633c006b62ae1682694fbb890507f3
+
+3d29abbba36869a7313ec73d9b688858
+
+45a048be6c3ba7752498f2315638ad20
+
+54f56fbe27dddc09ed2769c469b656fb
+9754d3f36a08eff7c9d9650080c94090
+0cdb860126cba33c386610dbba815ab2
+4bd8ba836c380b7253aa660045f444e4
+d20bad302b94329329ce60ec2bdabc17
+2a1387e5bafef863a0575f79fcbeca71
+dd88db0a2c17db7fa1b3057decd40fe7
+cbb184dd8e05c9709e5dcaedaa0495cf
+c0c97e22db5055def551d1cef15fb251
+2a1387e5bafef863a0575f79fcbeca71
+6135a9a397f4409b683590d541ab0ad2
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b90b337edb25ff1cf8f6c53b980deb82
+a9a23a6242688f146d104926547600cd
+5119cd82d13c1e78e02af262c3360741
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+910ca272e4ef1a276b7424d6c39262c3
+d20bad302b94329329ce60ec2bdabc17
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+59fd5df20938dfa526a44d03a31f6ac0
+143aff4650933f4ff453f47a2fa7c81c
+543c2a76702af3d0489324d10492af52
+b7f901822ac8473d4427d0eedcce023c
+7bfeea237f36c18c0ae39fe0cf637a49
+0cb6011e466181913db0f12091e812e5
+c2bef11d43d42a908d638b8e21336173
+0ad75b90cbd563f254ff5b0619864541
+67e2e5afb71808efc667bf33318ab4a4
+c2bef11d43d42a908d638b8e21336173
+de735fadc4b1b96d6039f920cc08b891
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+5950cb2178731011568b4be8ace3b181
+cbb184dd8e05c9709e5dcaedaa0495cf
+9cdae8a8b4e35671ed467851e66f36d3
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+66488ea16db46e26550722d091e148cd
+a9a23a6242688f146d104926547600cd
+5119cd82d13c1e78e02af262c3360741
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2b5c2f2b7d7ae9bb496f8c2a13b07277
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+d3f8edfacd16c035580310394c7d29ee
+9273aa067fb1b3aafbd59a4247c2075c
+752f40fef88723665ef272c43900e4c3
+a3c762fc6a4f01bc19e5d3370ee5e037
+46d950ac4e7871e8f17db0d1fd6148b9
+670ce683f9cea2dd88b33d61182518c9
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+ddb51bf240f6b95e2ec352b9d7bdf316
+ce7dfef5d6b06703640a0e6e4eb4fced
+5e4f235e55ea84af09358599e58197b6
+c43b499f6be40bf2925251c43972d0e7
+af8ab2334e4ed8f183409b13c6fc1f28
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+c8dfc7838a3dcbc2b58b42fb1da4d3e0
+0915695b44984ff607b23615c623856e
+c40d9d9783d992c7a09128ac112888c8
+1aa231d5a5d68e0bcb5150fb7e4d6707
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+dfba93d33805a8abdde5a2a6841d8337
+28d647f6af5ed6fd1d4bd0965d2fd09d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+6601402c9d5e1ee5192e55fd29705792
+37e59cfe15fbd8a8dc0577144d49cdca
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�E�
+523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+e79eb0ca9c31fd522c3e33c82156b4dc
+
+b2b129892aee282181b8cb2376f23e1b
+1c090bdb2479f870b9f8f61c05c52b6b
+a6ed1980356f7e5188ca9bd251348440
+740af85a7cf01a113d96982f40915469
+ccce10a067610225143cf3a343f04e0f
+8564017151d9908de779c0195e70a10d
+
+a98d49638098b960f6f1b0449b2931a9
+9a3787520a2f72ac8befe316ee55d7da
+f3a29cae694a85cbdf864dc394c6e6db
+
+
+32736f6dcf4d429c6d6d627031b9b8ba
+
+43ace402191a3a9b080b49b4429fb253
+
+a2af1ae8a8812623470fe7656bbbf297
+02bf2729e10f079d106cdb040866046b
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+c458e619396054f78bc926fb81b4386d
+
+2c46bf710a49803d370043027411a85f
+
+0d088b8e67aeef71d2dd055662a3afde
+
+a9d275f8461a103d312e8eb99ca7f632
+
+d019a0400b3e488d92e8b10aa4080a59
+75df9d476e2298272f14383ae1ee3a00
+fbf77cbc7305b81f5715b3cd3bb9c21d
+006f1e97aa762e7becad4f01742bcf83
+c9df51c0e03a3f7d53eaadba91d82fba
+592981d03f2768d7f4a73e79c7820ee8
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+fc5c4839d3e1ccf9fb33999a7843aca3
+d1404ea6456273c4c12ab54aaafa607a
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1d1bace5ebb2c9d6d58fa83c4fb2594a
+a6db08be91ac5022833b8d0bb31e51d9
+78e731027d8fd50ed642340b7c9a63b3
+c0c97e22db5055def551d1cef15fb251
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+6a6729777caf224da3411c9c373e0870
+8ff4b621841580c66c8fc4eb26fc2aa2
+6913cd17c563b5845d8fdc52b5102ef4
+f6e2ab47403f8805bfe75eac0a387ac7
+eea3f3f592006a89df3033f0e6f67f5f
+7026e183996b4aee13a8653e0b37928c
+0f89a82f06d848926ada40a0a5a3a4e1
+db1013c2689f65d3814d986c9fd33466
+e77f72c2a222b6387a2487fc7f6f487e
+
+9d9745793ea808834d7de26d55c88e2e
+db1013c2689f65d3814d986c9fd33466
+c3789b12b4180281e22e5a4c3503436d
+cbb184dd8e05c9709e5dcaedaa0495cf
+857345012389717ae7eb42bfb007c938
+47e7d0915d78d62cec92dffbd2642279
+1f1400afbdf6b6e91c7b53bc0bdf649d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+7ef6129ef6f8e0eaf4199f4ef0179bdc
+fa5f6e2fba2b1ed12673e811344d3aa3
+b31ed72988cf3b50623afb6e0425c063
+e70c39b8184a45c92562ad16e79ad688
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+cf124aea81bc003214bbaa95f25ee9e3
+7718eb0ddb7c3feb66ab066eae0010ba
+93cb993a8fe2deb2b730cb9c43c2f0b1
+418730c9401aa940c725c4353f8efc9b
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+7dbf121198f5c469a29826076dbc2b09
+eeb40d18003d33169ba2fea907ad38b2
+47cd1ebf883eb76b51dd15f0bafce0da
+d4df4f72d0202dfade20f1c3fe6b4fd5
+a4495fb57e4a5bfd0c3bf4a0722ac5c5
+53660b69161f5e7981ae9b1411af030b
+65a9e8d8288c307a11b254dac825f5b7
+a675ce9368a46b70b485073e5e7e8162
+cd0bf5bc38d5161798a2eff3e44f7c91
+5d199e2b8367875b38bf10f747773d26
+403cc4525a069f43704d08d192ccaddf
+4102ea101bc762cc31fe0e5e0ec048bb
+cbb184dd8e05c9709e5dcaedaa0495cf
+76877f8d03f8cf198274e8e5fd9f6f98
+51b18406ff16de9242cf44f87563e334
+
+c0a4636e14eb4f6b03cb2dde77b07d70
+8649a7505ee5811b270140e9dc7dcd01
+cbb184dd8e05c9709e5dcaedaa0495cf
+3dcf170efb7478d5c8efecb73ad1647e
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeUŁF��523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+e79eb0ca9c31fd522c3e33c82156b4dc
+
+8a6e1ed62d4eb0cf25ee793056720458
+3d34684b5095d23f101dfc30c15c88f9
+fec70c9bb5a5fa652d7e7df5358f69db
+aef1905afcbbbc088097495ee5a27b91
+7abc367d2fffa7e2e6a2a1e6730ae432
+d8ef62f07d0e287d78ee5c31f531211c
+d7723d59965412e1086c6aa7acab5b68
+
+eb14b05545c8d3b29f3365d47ee3b435
+b65f2347f1432a9ee7b923319d354c96
+5fc3012287b8625cd19567cb4c1e107c
+4278cf46807e6a014bcc485106aeda29
+f7306e98b878a40ad8405241728c0643
+f99cd4345a70deda6ef9bf7c01488193
+f3a29cae694a85cbdf864dc394c6e6db
+
+c1f31ef80858dc0edfcd8a969acd51fa
+b1971da9da573dd92ca5c7d6375c990a
+b3a11067a998e76a4c7afb8ab3409e42
+9789ce2eee7f5352880fb0cce0a7c4ed
+169e0ce43f42b78ccc601ccba84af7ad
+fc2f949f90dd05cc6062ddd962a8526e
+91f7c539501a950dacc0618863ed4f0a
+98870a932f4db33c4def704000c7cf81
+7f65b7b7cfb8ca4201d0c927f931f6a2
+ffd75ecd0d62c7480740ac0b3d4981ab
+5fbdc03b53505860d9ac1e85056006b9
+148b191bfa994af3aeaa6f8eeda6a988
+ef869d2be9e00fe1a54cdd35e23cae86
+31698b5145138fca2da5cf085c6c0629
+45dcd7bcd02c2c203f707c78116e14cd
+c87a908939dcaad60691dad03e4a82e8
+b09b10ed6619cd247dab8a915c63ff24
+
+eda62cdce6b2a7471a0a68f1821b73d1
+6fa05171389dfbeda44181c98e580d18
+6f8654322123410341aa3598228f7734
+3ccd924a0475ae514e9d592b9010c43f
+c3792cedca2f399d7addbd7282ef0d33
+bb3900a63a8cecc1e79592e054915c97
+926acf1424fba8a42b7df07873592061
+346b67ccfc046734492cb48ea7d79130
+d68cf79f6e0ed1afc3f7c04676c97fd1
+
+
+0c981af70bb35b3ce3c8f031973166cb
+9c9028d5aa5f0d465e6064b0f52258e0
+
+875cab035deac5b6893c5404b284d7c3
+
+3e5498ccd9132fb4b6772bcde82652fe
+
+c66f2d22971f85924d23c3942e1065b4
+
+e1b1e6a2edd6f30b328997c033cf9ce9
+
+f4416c619aa6c9cf0b51b7cacf9c6280
+
+f93c64679d480ae9a7d937cbed13d067
+
+ffa31b49f8fdb201b61e49df28c03ac1
+
+4d1aebd9b94115b6b24adb46cea06dda
+
+b6587f8c7a70c47fcd59576d1b531d10
+
+7bd19e0b43c3a68967fdd07b4a81ffa5
+
+99622222876253f32c26c337677fdd71
+
+3b055c3859c53a8acdfc59c6c8440df8
+
+68f77a2a2293f8e5a648f12f4ee6e23d
+
+f58b435e7300d11e6a68ae52445ad0ee
+fc28a9f000335849f684bb77e0be91d4
+2824413969b166c58493893486c4879e
+56b025b4a85a85628ec6faa591c32561
+f31952c6dbdc5b6b0a0cd153719955cc
+fd3a5497db122a87aab641a2871f9cdb
+2b3d470e488f922a1df3e12095455dc5
+7cf6928aca7820d209507413ddb43036
+5f7245874f7cac01754e7b94c1a3584f
+1cf86faa1ea1ed8d1c540d15e10ac77e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1c378ffa679372589cba14ebd54ad26c
+c6866b176be9a0c99bb009466bdb3f90
+86198bde504b6d295188b3203261868b
+cbb184dd8e05c9709e5dcaedaa0495cf
+01a4e1572bef98558ed7f4e845c07cfe
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+0fdedeb3e24d89c15aae6926407940a4
+5280c505b96179864d4174c287d5dffb
+21b20da7aa53b1e2f46e2169cb9157ff
+14b2a8425b66e3532dfa43f6b931b695
+fa72f8849bc4ab85cce60db26a4c4164
+fd3a5497db122a87aab641a2871f9cdb
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+14f8fd7b2e478a0f2684b482e301ba58
+562a794feb41808d1eab42a178320e48
+568a1d10cc5f8deef25931b45093a9dc
+cd6c73b5fc8e0610d05b062ce9581718
+fd3a5497db122a87aab641a2871f9cdb
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+3d87db697bec1c1a3d6de2393d4a28a6
+f2493381be53536576def07e4981bb6b
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+620569e1a67870612f94328607346960
+bce4ece09979c699ed35c92ea28445b6
+79487e243c7fb3ba413cbb54fe10102f
+33c02af3056b759c959540c8de88ef75
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a92370f65645969e5dd8a4fa92981890
+dee9df2d68b8af6eb743fd8cb88d6992
+5730167e294fee7e181606e5ef28371e
+b70b646b80817f15ddfbda3ff8e2ed71
+17199c4bf57f06d17c60eead9144e043
+a71b7e5d38e6028f460204091937f0bb
+39b52c7b27d5f6ed3286a7a43ad26e71
+6ccd83cf6b280ea86524c5939663cfa0
+de74681e55527333ae1c5d12df423f17
+
+c12bea6e5fa7242f57dfaa07acafdfd5
+946a9e3be93ed2e0a0f22fd2a9286293
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+578459bd3b1eaa8b55538ccfc37b6979
+977787bd01fcad5c5a947deb5b989e6e
+2824413969b166c58493893486c4879e
+56b025b4a85a85628ec6faa591c32561
+30fc44eeaaf7181da4d0dcffe2c14c84
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+946a9e3be93ed2e0a0f22fd2a9286293
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+ddce20e8d8c9dd4bedae2467b1e96a04
+a9bde9b26a721f351bc00be2a7caba7b
+e9eb245328374b0327540f17ff77336e
+c8b1559345e067fecc89d82331d1f6e7
+
+5ba4660e1d59d588c9e13351e90c69f4
+e35b96c0d4c0108b806038bb5b11de1a
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+3b1422a2745cd879e0aa8022decf3338
+e24537776762d4574ce1aecbbfd63c24
+b31e59805cbb0f68c304ee1809295006
+1661a1f0a354d8fe5e1b355493629664
+ce33bd9d9d0c3dd073778f75e9eb0ad6
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+613f9e404e7101b6d3652fc93811faf2
+fd4f6e7a443bee1b3b4749be33d1b89f
+9d9745793ea808834d7de26d55c88e2e
+49e6668efacba4b673cba561ed10ba01
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+ccabec049e95fad02ba8773688f5e52d
+5e6c287643a8c9bb3747d943a24e9014
+e51d78f9370e436ff8c333d78e4719f6
+80d5b17efc16ace990c07580fc3e85eb
+f098f111fbf8085e69c02ed9870a02af
+4e264bfedde98dff8173a4be15352495
+7a2b0329aecd5851be55cd7cbe57ce55
+3bd00b3bcda06b134fada3d729c3014e
+03848b78e29ff2f6732e580d39a51955
+cbb184dd8e05c9709e5dcaedaa0495cf
+a50e423de97896afb97123424a960664
+677ba9adbb463ed789ee9a5fe6d19a48
+5c4c11c3cd9ac7ab72c37afd7af32636
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5f596d92b29b4aeeef0777bc28aef9f1
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+c025453d97fd6db63b989f0714a5a793
+f5fa83c9bf924e92a31299efb170e89c
+f24c03bbe006f83038faa4fcb77f96d1
+aaabc10d0acb81b17b9e49f0b45d0381
+691b048a8ba0a97f50c7356190ef53d5
+79487e243c7fb3ba413cbb54fe10102f
+33c02af3056b759c959540c8de88ef75
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+f5fa83c9bf924e92a31299efb170e89c
+50b3f3bcbefbd4324c3935ae22aac3b3
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a1a30757eabbd64ad742bd8fbf3d94ef
+34f05614aa8f34bea62ba69ce85ff511
+4678cce5b81952166abea9473aedea87
+dba01eb31b5301631dd6d71fe4796448
+134bcd15eef86c2a7e51e7a9396c0113
+6ebd3aff52c8eb76a43557d948a3bbb8
+cb0f5e6be88ab3fd6d9ff6768d319b57
+2dec8fdad527df089107bece137e9d33
+c0593b0f713f0e78c3cb10a1873819f1
+a6ffe8dccfffc72606d7cc8b413c85d8
+
+8074ddc430b41e65e5fdffffb97ff5de
+80d5b17efc16ace990c07580fc3e85eb
+b6b50968113375359e98392249576531
+d24a622af29dcb21c728dd3a9237cd5c
+5507335a22f49e4b0c40f5b1d91019f4
+c0812fa3ce2053f90be2f92cc8da2f0f
+
+263fac8f75e91ae893b01ec31dcd9b75
+7f1e0dc1b3bd1d4b359ff9e95e6682a8
+70d23cb5b624629b6d20318180c0ee43
+335063a854ccf53b6ceb322eb53a7fa6
+e517e06cd90c8ac06a4ea20eb058329a
+f8920921550d449a023fe0c6945a8c25
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+6860253e237887156e3b4bbded6df19a
+50bcf823b0869b3ccf5397ac18fb0948
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2358239663a3260424c21210b63914b2
+d2b61313b1f5cf25eb3fdd01dd9abde1
+dc6795138ea1cb636e7986e2f6d5dc43
+d858474259dfa8902a8572061c610457
+0697fecb1f610e39a89ef4a3e83593b4
+52dc5f631d24cb5b53621ea85c848de5
+316544f50872d2d6065221ecc4ab8e68
+760d07539ebdd965cdcdb593ad1d6fdd
+a181a591b427941dadfb9c88eb121a59
+cbb184dd8e05c9709e5dcaedaa0495cf
+13e9b82a8bee2bac1a6bdf406c6929eb
+29bc2762296e78101585b095943e2f71
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+d1fe4dae1118fe43410f233c92f0438e
+a50e423de97896afb97123424a960664
+702b3a8fd08674130906d38d5febda76
+3390daf65ffab9e72e95dba96690df0f
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1902051edb09b1eb3e9f187ca9a93c31
+eb92d6b4bc66a39f2b5cdb649c21036e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+eb4b2f74f18e98c368976e4d615024da
+543e704285465291dbba5a18696ecff0
+a1acaecfbb83e3fbe9ebb0856355049d
+88fb7c39b4d7deb30931dfa962240f59
+adf31d4211c2aa4872a117926805bcbb
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+607a0f31794bb371079bb16b2c147e94
+adfbd57f635a01da08b87604a4b6b37f
+fb7917491e1d3818fc272f48e0bb4e92
+30b09c06800b3de02fe7c7c291cd3c30
+c7b837be97f8785f3111b5d044c51015
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+3c1e28982cb04911992bf89136c65775
+5607181583e5e80e7f447ed70a25adfd
+cac164ef769453767900b27e05a0a802
+405685f5a05caedcbfd0c2cf43fedfb6
+ebc04d31d1e9a76298bc314bc7d01349
+1338cbdf05993689cac30abefe67a7d3
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+80d5b17efc16ace990c07580fc3e85eb
+d933c0feb538da0a3aaccd5605f86930
+0a114e3ec4d060e5ec39a6ce043b78c1
+450fcdaba8342b7e53be3cdfa7a88f14
+
+6679fa07d5cd0b8180e541cc97b31026
+291f99d06a9b8b334ab0ae4b168c5e99
+6b05708d3d9ae93318a060de366ba547
+2460b846747f8b22185ad8be722266a5
+cbb184dd8e05c9709e5dcaedaa0495cf
+acfd86bd63a88052521994163b1cb7f4
+cbb184dd8e05c9709e5dcaedaa0495cf
+5a29aee8cfe3a5110dc892ab8adfc17f
+d64337111a9f80505865933f0d49b465
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+18cab0adcc89997c4328b75b6f6d3ae6
+977787bd01fcad5c5a947deb5b989e6e
+fefcbc1d4b16d659c0e5ec14616ba2df
+b9bb54ac0a09487b6590cbdaaf7a8ff7
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+7506e9e6b5ddfa244196695b64b7079f
+80d5b17efc16ace990c07580fc3e85eb
+08e1a1a302ec99075b7d6a5fa01514da
+f65e741f697cc7cd5d133bfbb22145c9
+cc9be35765c8637e0866259b74efbfeb
+f0e1e5ed460d179b2f36e603648afe9f
+
+001d0896d1dd3013307ba8ea1fc3d697
+42b3453c7ff10441e3bb9e9b338fc20a
+9a12651854232bfd8ac358992be94ccf
+8418b67858040490d292e36165b73b1d
+
+6540a17000e652a016a0b305f6d04eb1
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+6c7e1e62e846fe6cc2bbb6a12332924a
+6b2decb38be3882440910fd75ec508cd
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+6c7e1e62e846fe6cc2bbb6a12332924a
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+0bbc243a744247f45a6aca6d425cab80
+a50e423de97896afb97123424a960664
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+bc1eb690c950c533f9ace716bf13c498
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+41ca43819463a6117dae01f2e1d89402
+8ff603672eab7bb08a9644f1cb6c1a9a
+80d5b17efc16ace990c07580fc3e85eb
+ac674d294fb032d4d6d3424ea2ad966e
+222d2494183ad45854148f726360b302
+
+4dbacbad84c86116c325225bb96175ab
+a0e2bc693d8390db5f5c9f7530b0f450
+1ce39258c6e7bd35565c4caefeef6c85
+
+1108bf754d7b1a74bbef89898d991a48
+44db9db8749e433ba49ad7e6e5785042
+
+ad580ce8662cbe03a35c8bcc8ae16433
+8c56875da5bf63dea7ffef685c3280cd
+6a5fb525ecb0e0131860bf3f2ea3171d
+edd9ed3e828210f6589a145b3d42e720
+9e3f05a48014e8b1568011869abe51d6
+
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+e3cb5708983d757e483fec5b9a1a3388
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+61fe33a3514c6d8775859b6151b4c2d6
+8ff603672eab7bb08a9644f1cb6c1a9a
+80d5b17efc16ace990c07580fc3e85eb
+ac674d294fb032d4d6d3424ea2ad966e
+222d2494183ad45854148f726360b302
+
+4dbacbad84c86116c325225bb96175ab
+90a12e59d113a6eb6ef91135050abc3f
+1ce39258c6e7bd35565c4caefeef6c85
+
+505ba6b897868eca1e2d2deb1c84e1d0
+44db9db8749e433ba49ad7e6e5785042
+
+ad580ce8662cbe03a35c8bcc8ae16433
+8c56875da5bf63dea7ffef685c3280cd
+6a5fb525ecb0e0131860bf3f2ea3171d
+edd9ed3e828210f6589a145b3d42e720
+0c2401f07ca98ee477b4d7d5f2b77221
+
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+95ba39c864ac74d092aa943eb3220810
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5c2905df8206a7cf77bb138c5ca24287
+31594b7cb62de8ee0e99ddb5d14d8feb
+80d5b17efc16ace990c07580fc3e85eb
+ac674d294fb032d4d6d3424ea2ad966e
+
+4dbacbad84c86116c325225bb96175ab
+4cd8d986251f44aaaa21a4bd001cd18d
+
+1108bf754d7b1a74bbef89898d991a48
+44db9db8749e433ba49ad7e6e5785042
+
+281cf36fd59ec9c4970f11640da83fa9
+1cf86faa1ea1ed8d1c540d15e10ac77e
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+ed0a47a9e7f9c3bc68d32fad62577bbd
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+6f55aafac236b072aa5bd95b13a6866b
+9ff927e39ff2d4ff5391b29c603ba6a9
+74ef0ddd0f5e012888b50e35ba758417
+02f64e66cc2b5df45d22d12d48205783
+8585004d26f92193711fb0916e2ddde0
+8ff603672eab7bb08a9644f1cb6c1a9a
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+807bb2b2d19cbdbaec378aaf38c697c8
+2135be2a792f747d63af75ab90245efd
+ab069b24d02a526cc6980612534f3bb5
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5d8f818b15757233c284cde2eae6a3ef
+cb628c80cbc082bd516e5ebfaa202fe6
+8ff603672eab7bb08a9644f1cb6c1a9a
+80d5b17efc16ace990c07580fc3e85eb
+ac674d294fb032d4d6d3424ea2ad966e
+222d2494183ad45854148f726360b302
+7c72598d641078abca3a190f8aa20f58
+
+4dbacbad84c86116c325225bb96175ab
+b612a9f71969f98a0149257ef4d0c4b5
+ef3039e4b420ea4f0b283a620d09188c
+7f71ab9746adab651e3917741de4218e
+148b33f7aa5414955c067873a0e1e2d1
+c2fcbc36f685930842b06b8a9ec9bd17
+f88324d3365e4ac6d3e280e71564c8c1
+b3d3477dc3d9618d9993ff700570aadb
+2597b73efa859e7da62ac87e9b137981
+cbb184dd8e05c9709e5dcaedaa0495cf
+e04ea52e9e463bf9215d6823e9371500
+3a05f509ba3e91d38153af2debc026d7
+267b13ad9c0f04f4e1554ce26de54d42
+d19de4f7d1a6cf7c87d170367c12aac1
+491b3a94dc02c38d848a8e55fc7e3bd9
+cbb184dd8e05c9709e5dcaedaa0495cf
+f8254c576793cf8f433cdfff32b0f423
+1ce39258c6e7bd35565c4caefeef6c85
+
+1108bf754d7b1a74bbef89898d991a48
+44db9db8749e433ba49ad7e6e5785042
+
+281cf36fd59ec9c4970f11640da83fa9
+
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+a5c774cc1580dd401d0443daec87651d
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1c6daf9b87687c550cf86888b82e7ec6
+8ff603672eab7bb08a9644f1cb6c1a9a
+80d5b17efc16ace990c07580fc3e85eb
+ac674d294fb032d4d6d3424ea2ad966e
+222d2494183ad45854148f726360b302
+
+4dbacbad84c86116c325225bb96175ab
+02abb39d01edad7ed62ed58990c14742
+80251b719644e6a9827d3a71e8396ae1
+1ce39258c6e7bd35565c4caefeef6c85
+
+1108bf754d7b1a74bbef89898d991a48
+44db9db8749e433ba49ad7e6e5785042
+
+281cf36fd59ec9c4970f11640da83fa9
+1cf86faa1ea1ed8d1c540d15e10ac77e
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+67db9a9b265baf1a5d5b46bee4fee366
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+dde3c2e7eb5afad90f53c76a26265242
+977787bd01fcad5c5a947deb5b989e6e
+fefcbc1d4b16d659c0e5ec14616ba2df
+b9bb54ac0a09487b6590cbdaaf7a8ff7
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+80d5b17efc16ace990c07580fc3e85eb
+c7391eed4af14926c23b544424c036b9
+5507335a22f49e4b0c40f5b1d91019f4
+c0812fa3ce2053f90be2f92cc8da2f0f
+
+1c9ced4d94567ad41d009d77a7d0c6f2
+d2b61313b1f5cf25eb3fdd01dd9abde1
+dc6795138ea1cb636e7986e2f6d5dc43
+d858474259dfa8902a8572061c610457
+0697fecb1f610e39a89ef4a3e83593b4
+52dc5f631d24cb5b53621ea85c848de5
+316544f50872d2d6065221ecc4ab8e68
+760d07539ebdd965cdcdb593ad1d6fdd
+a181a591b427941dadfb9c88eb121a59
+cbb184dd8e05c9709e5dcaedaa0495cf
+13e9b82a8bee2bac1a6bdf406c6929eb
+45e61605f67781ee3b3099485cede74a
+6540a17000e652a016a0b305f6d04eb1
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+c2533b5b1d761527b483beec7b9293a3
+6b2decb38be3882440910fd75ec508cd
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+c2533b5b1d761527b483beec7b9293a3
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+ca5c537d1541ca6c2d799fa78f1a8cf3
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+8010762f0946ac32cef80d9e290cf130
+8ff603672eab7bb08a9644f1cb6c1a9a
+80d5b17efc16ace990c07580fc3e85eb
+ac674d294fb032d4d6d3424ea2ad966e
+222d2494183ad45854148f726360b302
+7c72598d641078abca3a190f8aa20f58
+
+4dbacbad84c86116c325225bb96175ab
+b612a9f71969f98a0149257ef4d0c4b5
+8cae3acf4fb771c98dd7dbb02b8507df
+7f71ab9746adab651e3917741de4218e
+5ffdd10c295aba5ff2b1ad63e39dc0d9
+156935410800ee1bf3aa9b58832452dd
+f8254c576793cf8f433cdfff32b0f423
+1ce39258c6e7bd35565c4caefeef6c85
+
+1108bf754d7b1a74bbef89898d991a48
+44db9db8749e433ba49ad7e6e5785042
+
+8c56875da5bf63dea7ffef685c3280cd
+332b64f99ff3056b19238c79d3cdddbd
+a6b0d6d74c9877aa3313f375e0e47ac3
+818e14eaf6a70ae26cd9f0f93f1606ab
+2dc1665d31b37f9aa7408939a0365027
+88f33334f897bef3318e2beff203f135
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+acace7b9ae664f2ea3c331a877070a5f
+2fe8ea32fa9b8e370ca9f64f2091252f
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+ea3dd0c678b050f609584424c526e2bf
+1cf86faa1ea1ed8d1c540d15e10ac77e
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�H�523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+dc04c2a6eae79c5d3b430d0734f9bc18
+
+cac5cd8ba990653e7c402f8a9e5fb6a3
+740af85a7cf01a113d96982f40915469
+ccce10a067610225143cf3a343f04e0f
+
+8b9d948ea25d9f16b0aa2edfabc66104
+2c953c12d2eb6ea958b7f3045ecf8e81
+e49cafa16f62361549fe874743ed8e9e
+192625de887c0acca4122df34064946f
+11e4d1c902f7879859bc38469e0204df
+1b70ed50ee2753da1e3c5d2280c671b9
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�I�523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+dc04c2a6eae79c5d3b430d0734f9bc18
+
+0275696f0ee3169423f79ecc971e6395
+
+a98d49638098b960f6f1b0449b2931a9
+f72bf8fef13c3b8d914f94e93ffad1f5
+6b24fede9f659e809417e84a4f8d3925
+
+73f09735c2e02467c42c700f572a0214
+740af85a7cf01a113d96982f40915469
+4499d7d89c782ef1dea684ad0215bc53
+7cf5b35e1fe52d8912e20deca0a52a75
+08af5be2679df8ebc75eb912557f1c09
+d08afcf456e68f9c032cfb201ced6f94
+
+22c864e63783837bb345f2b0fac6e35b
+
+28696009923f306eef8a522a0479751a
+35fd601ae81d55f188a5e5435a238e5f
+61aa77aaedeecc3ded2557511e2d47ca
+d9374ae2cf04cf63a3aa9ea794c1a2b3
+
+2020689e63e332910e348a9425d9188f
+2b4348b2c089acecffee6b493a5a9ffc
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+7976a821e9266cf5d0e2452b97b56601
+d09e20ac6460333b60c2e8520a107e45
+f5bf02aa94f9acb10014b29498d885c6
+92f348af30022048c2b6bbcb40fb2c70
+127257c7e0252c27c5311499db886afa
+f3b353ed9b333a57bf4053f29f2d90dc
+02e0000a1c88900723af55b81d79abc2
+accdc9ccacec61758d2925f9500eb98a
+295aa7951c08a7936e92e81c55c19b68
+54f3bca271ffd43fbde6924acc84e135
+5272cbe46a992dc7c6517712f9db5666
+8349cc230de148d74992044088d98110
+e3ba6360b36ef22df2576532b6d2ce06
+cbb184dd8e05c9709e5dcaedaa0495cf
+c0c97e22db5055def551d1cef15fb251
+71d3f69395990a8708ad858e0e28d288
+d332232a1e80dfd9b6126486dcb5c7a1
+8e91e7729670e72714bd5d2a4462c03e
+4720e0e1b2ea3efb4cad3b3ec4b33c7e
+5091ba555558d317234bbfb8bfd004aa
+13a02c2b6a9047e7c4bb81a54d1a14e6
+e3ba6360b36ef22df2576532b6d2ce06
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1f72e1d4f6b92280deab0f8f27e2b04c
+09c8d1da1fb8db603d99dae2a70cd221
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b1352ca9d890e42507e935b307530f47
+4a1886cf137274d0e7ced8e40a1c2793
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+453cb97673996f54a973b8d539264cd7
+3d83c8a69e1cc57929527984a7ca6563
+d19a8d9dd6dd9172f2614d51cfac84fd
+1445ba638d6bceb38d6425120b68ff6d
+f1c728220239214f0f0f47cb1a26e6de
+fdd9843dfa8ceb633bc307246831231e
+27c0ae1cd02ce62aaef277895ab7c462
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a6ed2e3f22058956f95db70b62b7a51a
+c841597c92e5b164aea1875bd7590dd1
+8a131e7a1677b63619e4ba4ff6ba7036
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+cbb184dd8e05c9709e5dcaedaa0495cfAYctaK4aibojJVNiyQeU�VJ�V523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+dc04c2a6eae79c5d3b430d0734f9bc18
+
+8a6e1ed62d4eb0cf25ee793056720458
+3d34684b5095d23f101dfc30c15c88f9
+39722c7901dca754dbeda82e2a94899c
+73f09735c2e02467c42c700f572a0214
+cac5cd8ba990653e7c402f8a9e5fb6a3
+193bf67889b339ae01aec85f433db1b9
+740af85a7cf01a113d96982f40915469
+4499d7d89c782ef1dea684ad0215bc53
+ccce10a067610225143cf3a343f04e0f
+49c7d54c04eb64e10a1b5e51b04e1574
+2dab01e183566387f3414c3eb43b515b
+7abc367d2fffa7e2e6a2a1e6730ae432
+7e96ef7bbe18600a54840b0f58cb9b7c
+3c00ba821478351efe5cc6e77e8ed25f
+fa94ed3211a1e7d203deb4aa6fd1f2e6
+ea166f14563e8873a24576f22ea47737
+d8ef62f07d0e287d78ee5c31f531211c
+08af5be2679df8ebc75eb912557f1c09
+eb73afd45f2642b667aba8bf67561f90
+3aea064021272f343d558909927d4a5e
+e5ad158bf21e9fc1784d13319c696b7a
+5ddabb9d3527b879abb19fdd03dbbd13
+7d574c2bf19e03c0583c554423dcdd9c
+c661b1523ece8cefb8e17b2d2781ecb1
+d1d0180c1a8684073824cb92a9c12156
+
+a98d49638098b960f6f1b0449b2931a9
+a06699b08840f779e6b958cc6246d6a1
+cfcce14c5f9d7bbc672b1124ea6d84df
+653c0966b9ad4c85d1039bfe4ad7f68f
+
+
+ee8321b8f88523ae0c145e08a7262173
+7505864668f0540eedbb92b8b995b306
+
+fdc284b57912003b489d43728c30895e
+
+952817218e11e643d746c7efc40c2873
+
+3992e499db3b45eb8ba9b1104a98098e
+
+619286d99bc7d15a48bfa96441c55893
+
+253bb2fc7359483b6d13a18ff602ac56
+
+f983ccc5f041d1e01d803e1dc560b11c
+
+c06727ec361c249545589db08e44efd9
+
+b47a2f0e17445dfa8d2e543c5f499fa5
+
+a4cf4cb854a2e116607825294378a829
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+ca105a800854dff808f5d40f1f3c568f
+e9cfdd2f08e17fc9fd51cccc7554741a
+
+83b879ec4d7aaf2ead076c189eea3571
+1ec2734a5dca54145b0ce2867e72d440
+
+46ff66381e5618f415accb6cf925b0be
+79eb25e92de31b9efb46d791cdd59774
+5de69a8ac683e71895e2bbabf58a4273
+3ce685d203683c9d4ef512011a6ffbbe
+e275742c89af7c435abbcd568dc86644
+efe97aa90a4a31539429f9154a59a68e
+
+a33a5e6fd50a41a5fdecad578282bc1e
+c65f74b3b066618859b5d656abf324e0
+0d0e83642c61690f3d30a255eec7dc72
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+c460e63e1f59483eedbcbf07c4b75c74
+8bda11af93d0ab692137f96ed9e21ca9
+
+4168eb7342d67354b3e7391f9349d9f4
+eb3ce374273398d61fee98f6da38fd38
+3970c07c09a07284c3cc26618e22d912
+ceb7e6fc4ba66c121e314022daf71a7c
+67b2fe611a44d1e1129214317e73cf01
+441981d7353a1abd81351664d4ff1e67
+bd8a44a987e2f2a0d37d409b7ee2b5b6
+5da3db2b2fc5eb2fe24b1b48e32a555f
+fca9cfbb730fee4c2d32dfc6f569bd0f
+e96765f3c3bb80f89b54da04c6c3179c
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+8c1f39cd928f6537e5fae4c35febd915
+3a59fa57e85e73c6e70965058fccf843
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+dac1595841676f1ba22582cbeb874923
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+d761ee4e9ca2539cc465f001585d6bc5
+9de413ee3e226ea7931373f9af169944
+dacd38535602ce217de19a94e16a4343
+cbb184dd8e05c9709e5dcaedaa0495cf
+e2eb4df0aba19cbbf83da8bfc3643269
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+0353a513fa154cfcea92568bd495e12a
+4860e7ab7157060f828cde1b6346de52
+
+996c07df3e2faaed16ed296e3ef2b860
+cfe6ba71d02cdfc9cf2cd8adccf3733f
+1f7339030f65a394b67b5153d55e2183
+db00f8c11da8fca3248f8940de7217d5
+fee95d0f306e328fae72289a27d194d7
+c6e9b057111d1f2c672aff7f59b243a5
+93a629cbf7b09bc9dede3f723da59ae5
+4c9dd91dca11ac3d1f98cb87cdc602d5
+5c41d63c886ecff5cca959cdd676b318
+96fbc27801f2c4df9bef4a9f898cfc7c
+9d9745793ea808834d7de26d55c88e2e
+9fd3d3f74746a33678993898bfd03728
+a14566b7eea4c375d3d86b440512fb45
+c89e4635fcea7ff787c959c9324106f0
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+178ccf256d2be019a3e0a18255bcd640
+f85b7d5b719e0e15ba0745e0cde19c38
+0f8ec312371edd57220086e010e464c5
+cbb184dd8e05c9709e5dcaedaa0495cf
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+c0c97e22db5055def551d1cef15fb251
+
+c0a6d62af8603f58c0a00795f666cfd5
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+9bcfad04a72a2f3d0cac604461860a47
+da5f410f3e5406edf42ad0f8fdb90bae
+ce2445f49c039c87b0f20dd6d4ddc9c5
+
+1bf5450197fe81b9b0d4f67dceca5b2d
+d8250272b4cea90a6740d9da4b6dd73d
+e4abce2d4190cba71753c40b4708637c
+674071f3e828488fc467b16f14b1ff20
+6a7aae4b6b3a81784edfb9662e911dec
+c054b78d5398504d5bc699953a8c6419
+cbb184dd8e05c9709e5dcaedaa0495cf
+c0c97e22db5055def551d1cef15fb251
+9d9745793ea808834d7de26d55c88e2e
+b700bdfa8a8c4b9cbae0231052337184
+674071f3e828488fc467b16f14b1ff20
+6a7aae4b6b3a81784edfb9662e911dec
+cdf27a6db722cb1e12706abef11d68bf
+cbb184dd8e05c9709e5dcaedaa0495cf
+c0c97e22db5055def551d1cef15fb251
+cbb184dd8e05c9709e5dcaedaa0495cf
+1d7ba11dfae60f5d4fa981b5659d35e7
+
+76949c8e467405a4329910b676c9e2c2
+d8250272b4cea90a6740d9da4b6dd73d
+3bd070ae6dd48679e437e29598b52650
+30b426ab6ef1426397dd32d5a57c597d
+9d9745793ea808834d7de26d55c88e2e
+9039d087dcdceda4340e5b905a59e479
+600bdda3adfebe207434134aad7dd610
+98e86e666e0831940723d68006bfa3d2
+5c2b37c2d7b64f0b839b5c0e493eebf8
+64dd1697e74c1ee50e53f1a565d5326c
+30b426ab6ef1426397dd32d5a57c597d
+9d9745793ea808834d7de26d55c88e2e
+e1cea36ce77d02df27ce8e88652478a1
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+0e9bed9e492cace2306fe07e5e784ca7
+e2fc91a5074b061359a1184cf30a00e3
+ebb1aba64a5fcdec82dcc35a692da4fa
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2d74e5dc271f98366acaef642b68a499
+5ebf76ea28a6d33be8ff7d80db3b8040
+
+21afd1a58c96f9cee14237a7feff993c
+1fcf8628e09eb9a36bc3bddd893810ec
+a226b8adbb9df099203be14e93bcc215
+d0f8f2c3c51383b0f1f80a54bd23345d
+26bf4d17e6fb9c504bc7ed980fe5ce76
+
+9e41160d0580139c073d70141224ab4f
+6dc93842f78ec42079e429b4d0c9df32
+
+ceb7e6fc4ba66c121e314022daf71a7c
+92c708c2e83d61f7212fa4d3941df5dc
+
+cdfb5a3dbbb5a756ea5d5d8d11ea67d1
+0598666e28ffcfe3d6f8e983c09ebddb
+
+3eaeead56ce234ebf0632a85a06199c3
+30cf6197a0beee5e543192c99bac3f73
+85e239c794dc557e45c4900d606b4567
+12d0f58c67eeb8e3d8cc2cd905b79faf
+47c32aaf84c84d33b0ea3c852250fe1d
+a470c43e115967ec691265c2eca1e2a3
+c7d69f712dd022cbfb71d19f1a60615b
+08ff54b19331e6479807663f9edfa6d5
+cbb184dd8e05c9709e5dcaedaa0495cf
+723eae5b98db46f9b2b6cea8fde0fb83
+cbb184dd8e05c9709e5dcaedaa0495cf
+2f2b820fe0b1e1a02d615c2d5aa20297
+f970d5f12398bcd3e2ca41463bb173b4
+14ac2fc33ae122a2f19de4f7996a264a
+5955e19587678983d8d5f590c74ff38c
+f0d72f5de1f38a101a1ce9bfc70c44cd
+dac1595841676f1ba22582cbeb874923
+cbb184dd8e05c9709e5dcaedaa0495cf
+c0c97e22db5055def551d1cef15fb251
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+55bccb647a59a80a3838fa06587ed300
+b5607c7c3c3a8945635d9a86899a1359
+
+fdc769533c6cbc6a9cb903c3e915870c
+e51312a0a9c1674c1897eb850207d865
+6a7aae4b6b3a81784edfb9662e911dec
+e5ad5df68909870cc26e1827030063a9
+2a970f97eed9d3d98cd13e1fe6a36c44
+20b7942c3f4fe04d4318f73fee5fdf1b
+31d47f0b25717fcf014a7086af700b31
+c0c97e22db5055def551d1cef15fb251
+dc6b29307b67e21e65b7657fd4fe7f6f
+f0d72f5de1f38a101a1ce9bfc70c44cd
+cbb184dd8e05c9709e5dcaedaa0495cf
+c0c97e22db5055def551d1cef15fb251
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+38afca82d85614c4985ce1546273ceb4
+5ebf76ea28a6d33be8ff7d80db3b8040
+
+21afd1a58c96f9cee14237a7feff993c
+1fcf8628e09eb9a36bc3bddd893810ec
+8274a19c9a2750c2d4322dddc19e2980
+b27aade77c250fc763be1b5dedb9628e
+d0f8f2c3c51383b0f1f80a54bd23345d
+4dcaf294936d2e3c647b7c46faeccdd5
+9e41160d0580139c073d70141224ab4f
+
+bcd6da9eda8d2f5869322b722f1c1ec1
+a1eb3bf4f0696ae7cae2531554ed2994
+0ad4366703e1dbe3ea7fe2346a5c8ae6
+00491e4c9780ec6058a42f418f281f06
+2145c1b6992c0d519ad223f91671329b
+7800eaf6537bc85f83debf5826f7a5d0
+14ac2fc33ae122a2f19de4f7996a264a
+2616cf2ed1356e5d6d355dbddad92ccb
+96fbc27801f2c4df9bef4a9f898cfc7c
+9a8d737b813595a59858fc50daa335e0
+4c3053b8922266200e05f77f1adc9edf
+dac1595841676f1ba22582cbeb874923
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+c0c97e22db5055def551d1cef15fb251
+917aaedd3b5096450ff775fc50272da1
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+f4fcadd6fd9ce242a9b4eea2ec07a930
+6e5a1663fe97d50631dd2e0314e83d59
+24fbb2b962782220eb31c49279dc99f3
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+82cf99be948cc0a2679d4f7d4d34261b
+692f12451b30830a24beba65d887ec28
+ed20b4818a3b7da4759b5c9cba2b44ae
+94ed0f15956b69a573b4c511237eac6d
+613f9e404e7101b6d3652fc93811faf2
+f3a0c0c4be951abde03d2c38d5dd66f5
+9d9745793ea808834d7de26d55c88e2e
+6636d039f90bee0f4578618b940785af
+cbb184dd8e05c9709e5dcaedaa0495cf
+3af3a7ab4b5ddd4c92fc8b48a1a9fe55
+
+6309c5b13fc5873197ecc0e8627c19ab
+0217f86bf4cd178c1ecb094226507693
+
+ee46f069d331191d06a6690cac1ce8fe
+51b18406ff16de9242cf44f87563e334
+c0a4636e14eb4f6b03cb2dde77b07d70
+ca764d217cb44d3138b10acbe58fb348
+2fb849e10cca2d2a5187005a2af95e58
+6a2377857508a57c268687ed747aa7ca
+744e4e7c887d282859f639298617156b
+cbb184dd8e05c9709e5dcaedaa0495cf
+3dcf170efb7478d5c8efecb73ad1647e
+
+178ccf256d2be019a3e0a18255bcd640
+10ae02f3e161b7e03534993b00d55ebf
+6306c143a24a548883f2bc518104de2f
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+57843202f27591a040d369880c09d951
+ed20b4818a3b7da4759b5c9cba2b44ae
+94ed0f15956b69a573b4c511237eac6d
+b7bab6b3220885505ca4f2a875b45d0d
+ac3377873875a3e56405ed2e23d16224
+cbb184dd8e05c9709e5dcaedaa0495cf
+452b8f7c74270aafba1790a236b1eb64
+204199b2dd5f4f0afd186a3777d01bee
+cbb184dd8e05c9709e5dcaedaa0495cf
+3af3a7ab4b5ddd4c92fc8b48a1a9fe55
+
+ee46f069d331191d06a6690cac1ce8fe
+51b18406ff16de9242cf44f87563e334
+c0a4636e14eb4f6b03cb2dde77b07d70
+ca764d217cb44d3138b10acbe58fb348
+2fb849e10cca2d2a5187005a2af95e58
+6a2377857508a57c268687ed747aa7ca
+744e4e7c887d282859f639298617156b
+cbb184dd8e05c9709e5dcaedaa0495cf
+3dcf170efb7478d5c8efecb73ad1647e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2621140e2d40579a5e5fa47dab8c4740
+6a2a2e807da0bf86ae44d4b239af2c9c
+64345b2077d3f50411e18cec50b1996e
+0afb0cd2bc2b53f287eb4968008b6e48
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+d5808d28eded875954f683ce2763740e
+6a2a2e807da0bf86ae44d4b239af2c9c
+64345b2077d3f50411e18cec50b1996e
+94ed0f15956b69a573b4c511237eac6d
+7fe44b722738efd56ae9e5ce943e20c5
+3af3a7ab4b5ddd4c92fc8b48a1a9fe55
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+dd3c0fadb922b61d4b76731b6b6eef59
+6a2a2e807da0bf86ae44d4b239af2c9c
+64345b2077d3f50411e18cec50b1996e
+06e8ef137a082ec1d47829786a875729
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a31a110466d8746ce601cbda7ff600c3
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+e49cafa16f62361549fe874743ed8e9e
+dac1595841676f1ba22582cbeb874923
+535363d005790908b295b09e11cac951
+974c1d8f2e7a737690db22c2c7009910
+4be87721f43df731e3684aa7562aa46e
+cd07cd6b88f58a0ce3727cab8d0f26be
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5cdb3f1b94191d5204cd1c2948b3a08b
+d18137e6417294722324094c384a79cc
+b165fd45fa0a5709bc02eb1ee1e10e04
+90242a2457faaa7a18c57c8ce448610e
+89e825543f8c8c3b89730ca4782779c8
+51b54610d536b5b1612e4c7fb113c80a
+8a6c141756d58ae351cd56242e5f3361
+de735fadc4b1b96d6039f920cc08b891
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�K�523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+dc04c2a6eae79c5d3b430d0734f9bc18
+
+740af85a7cf01a113d96982f40915469
+d08afcf456e68f9c032cfb201ced6f94
+5ddabb9d3527b879abb19fdd03dbbd13
+efd204d77b43bf84bae61bbc364445ad
+92954d75437d815b893b383aeb78afdc
+2b9ae799c499efb3eef85462fc6c76bf
+c661b1523ece8cefb8e17b2d2781ecb1
+
+a98d49638098b960f6f1b0449b2931a9
+a06699b08840f779e6b958cc6246d6a1
+29c6ebf62b718d37876ea96440383f1d
+90685e29c2018e37a5485010d677c948
+
+
+ff973a5f14a222949c86afb0220f41a3
+d882d47ddee2829f159ab84508a38d7a
+5b5c8a2df3bce032db4d6bd21ab19c0c
+d535e0b6da1575269d2b8d9d026e18cf
+68d4630e3da6c0cf48b1bec9a1c364f2
+d239ebd5e0c579873219cf979968c53f
+7182f33f1ed89613270531b36c5fcccd
+
+44dd148ea73a6bfc7b7d6596af5778a1
+d09e20ac6460333b60c2e8520a107e45
+72182618ac90133fa24cf5c68f6f0a7c
+b7f8cc0ff46a9fb840ce4ec663e2acf5
+cc2da158545ddd7c80e2155e1a5be160
+94c4911a9712ed5d145dd651b8011fb6
+41294ef6ed503681a720ddb3aae7e6f3
+069e57b2cf794ef8ad4cff2de670b818
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+168d81c7227e486043009db81588ba2a
+9bd341136374d6d93536a4bbb503538e
+b2269b4f4cf025a80a6b148f25fa836f
+2248fcba222ec99e3faa6678276db416
+9d9745793ea808834d7de26d55c88e2e
+6996dbae4b449600b3d4cbad4d43318c
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a17a3f615033b0ef07cd03bb5818028f
+3d0f0f6612cf01f10fddd9db041e92e1
+4b2a706e4fa185e29a0f75c324bd273e
+fd7d7b7c06933fad665c7bf28e139019
+ca3762b19472cc20741c2d144c55d994
+3fdbc104756d241fd91783f114abaa3d
+24bd4c519b1f463faddc2c9c600fdb39
+68bd337f7f95fef20b0eaea737ef2260
+9679970901552a7f41c81d9e7f6365f8
+3aa24d33a6f471d25b1cc68056a7d9c5
+b59f56c9b724aa78d37dd9b37d65d969
+8502cce55f50a303b2af74c0870fe4e3
+9b8730bf88cb78d33691287b750dccf5
+4c89cd78af8f595e99e62fd98ee08318
+eb2ac991bb5a2c9f1b7722a0a2763807
+fd7d7b7c06933fad665c7bf28e139019
+9d9745793ea808834d7de26d55c88e2e
+fd58265b2872877ea4ac85d84f690dec
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+4b2a706e4fa185e29a0f75c324bd273e
+ca3762b19472cc20741c2d144c55d994
+
+a0814146a0ae0732789e855cdf0e2065
+bb533739f4fc6dfe5b3716a7bc7f28f5
+a7d9e668a61d5ba64d8b4af84c3f779a
+9cd12374521fc3121a1782910b9c873d
+fd58265b2872877ea4ac85d84f690dec
+9d9745793ea808834d7de26d55c88e2e
+9b8730bf88cb78d33691287b750dccf5
+4c89cd78af8f595e99e62fd98ee08318
+eb2ac991bb5a2c9f1b7722a0a2763807
+fd7d7b7c06933fad665c7bf28e139019
+9d9745793ea808834d7de26d55c88e2e
+fd58265b2872877ea4ac85d84f690dec
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+b753ea0d9a4757ffadb76070a9f9de53
+
+d1d89cb1020fb3b658bcd786235387f4
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+4ad1f094a058f50b21ccfca46f141e81
+fd8e83b6fb56c0a88d23e0e808c20889
+c2b22bb21b64258bec3e0890e79f9156
+cf0fe05ec50b1b8cbe3b7d6ff6fb7ccd
+d3f0e1729eb4e613f69bf8c2cfad616f
+72b6c306455626e726b5e7dce5e5bec2
+0d8f4a984cd7aeaa9389bbb543018a3b
+b82da47aba4602d13fb7c524c4625096
+562689e5ec5062a8bf00d7cb23a9a590
+9d9745793ea808834d7de26d55c88e2e
+714a5c0e1575a9bff4797b162a67c7e7
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+af28cb13a489ca9ebb45c21aec8204db
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+21b975bb866687c15a363a785c3e41d2
+fd5535759c41b540ebdbae602a671a91
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU��L��523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+dc04c2a6eae79c5d3b430d0734f9bc18
+
+aef1905afcbbbc088097495ee5a27b91
+73f09735c2e02467c42c700f572a0214
+cb0503b54579eb29afd8921cf890814d
+c6a91fcb86e13bd5926211bcbdd90d95
+89e96e9c6273745a1cff84c80f0beb0c
+3187cbfc52c03e9f72a660a0f76512e6
+193bf67889b339ae01aec85f433db1b9
+740af85a7cf01a113d96982f40915469
+4499d7d89c782ef1dea684ad0215bc53
+ccce10a067610225143cf3a343f04e0f
+2dab01e183566387f3414c3eb43b515b
+9988777496d1ddd020cdcbcdd4a2c18e
+8564017151d9908de779c0195e70a10d
+7abc367d2fffa7e2e6a2a1e6730ae432
+b82639497a455122d6a0dcf7a457f37d
+c7a40270199660af343c755b54d6a350
+d8ef62f07d0e287d78ee5c31f531211c
+e0e7f9c9b874a6de17a08819a9df6782
+d7723d59965412e1086c6aa7acab5b68
+4af6e5b05801eb93f0d4e3fd07be0c2a
+f4d4d3e88eb73f086045549f90706268
+581eed19422ee810143f79ab45e16b1b
+e0e8240da95b29c1df60bb28fd398d26
+8693a7970d9aea75605fae76e8247ecc
+eb73afd45f2642b667aba8bf67561f90
+3aea064021272f343d558909927d4a5e
+e5ad158bf21e9fc1784d13319c696b7a
+d8fcfad31d71a7bb23428916c9cb4dd5
+1391b3f3d9683918966f64331b255c7f
+5ddabb9d3527b879abb19fdd03dbbd13
+aa75e987ce8158a702f2b8524cbd0ea9
+2875782d3178e0862de5c6a2284abd82
+94a496823ec05856abf00babcc90157a
+4c62544046df32b762f07ce183af97b1
+635e8e61ce2015540a4320b45a1d8766
+9dbdee8340acdf63d9351eb1ef0a6bd3
+5b0f0dad8b2247248e2275e598546d55
+7d574c2bf19e03c0583c554423dcdd9c
+25f38df5289607b01f5b846475ed810a
+06c51cc8ec384370b5e0c365fdfe617d
+1d32db76a209d0e403d897753654d147
+c661b1523ece8cefb8e17b2d2781ecb1
+d1d0180c1a8684073824cb92a9c12156
+
+a98d49638098b960f6f1b0449b2931a9
+a06699b08840f779e6b958cc6246d6a1
+cfcce14c5f9d7bbc672b1124ea6d84df
+653c0966b9ad4c85d1039bfe4ad7f68f
+4b3e40468fbd58fd8663a89a577424da
+2049bc9de89018d240c967cda794db22
+29c6ebf62b718d37876ea96440383f1d
+c00a344394a3547ac95cea881f28d8f3
+d38c7a60302fe5aaaaf794c171b0829d
+60befb652976f4ee6c231c1ecd036cc7
+8f9be8fa00ed03fe08ec78efcb40d8d0
+
+eda62cdce6b2a7471a0a68f1821b73d1
+6fa05171389dfbeda44181c98e580d18
+6f8654322123410341aa3598228f7734
+3ccd924a0475ae514e9d592b9010c43f
+f21b6af4795c6b1462d3a87a7da9e52f
+
+dd805fdce2c71612584a114dafde0cc4
+1ac56b41d949a0e4b5e6a59577e21ff4
+
+691ac6330d4a3951c2efd635f4bb7ab6
+
+bfed819b5e95e6dc912ce1465513a86a
+
+8948fcda8a23dba25d576692674ac9ff
+
+a2e5452957f3f1d8f8d513efab36f73f
+
+581eb1b065d2bd6358f9d21244472004
+
+e1b5a05616deac54de3c13dcd483c27b
+1c4e5f87edb8cc0de16a02b2f002cbce
+2145c1b6992c0d519ad223f91671329b
+
+56bce5a27ad9e98839e1cc18b133f93f
+
+836f2cfca2adc5a6db9116c95bfc2981
+
+c378cd7f9c315e7ae1ee9d2becde73e4
+
+4530783678ec16c1a2cba681a93854c5
+
+274ea1681155679d36c2e171560c7aef
+
+7bd3c60d26d1f3a578704fc513aca337
+
+70589605128e8df3936df63908f99add
+
+ba9eca3c2712afee2440563865d2773b
+
+07eaf5f5ebab988748b433062af461d5
+
+0221c4dd68d158a5fc23eb5bb9890571
+
+14c84d443235cbd3c5067a704a7ecff5
+
+ac912f2981b368a13293841cdcad7102
+
+dbe37ef239b17541344f27c6259df68d
+
+a553a4c28bf7455de2dfea7431af8e62
+
+a91ac841f64c285a59fde9376e43d764
+
+e9da057e93dac08fc48ea015c98a0ef4
+
+6788af477fd159f2bd3003b5c1eb1f83
+1e2f8e01871fd3cc07890b1ad946cb70
+62e15c31650ca3308738e0f795649755
+17a910e0a428e72210a94c3b33265bf5
+
+d88c72b343c4068a225df2544a8e3f9a
+3685491df94fa554414bbcaf00ce5a30
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+1bcbcdef3d0171b018c30f15123dfd2f
+f57917ca3d5a9ea247cd37739560d3b8
+a3d3aec1cb13b2a4ef3e161ce6716f64
+88d5a50f42992eb1f9bb519b62ee83be
+
+bb7258b757e6a3ffbdc4544780e61a2e
+537b98a56403ad90e2eea9182aa94951
+c4c9bdd47ee05028cb84873da0ebf2b5
+b1882158641ad70131bd8836704db68b
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+7612ea87d71e5e86065d96a527a125e6
+d0899493c8ebd6b8889662413f03cd8b
+bc38ab78e5d414e2b9f0b0b75d878afc
+03f6df4e421ac3099bede2e59d14d005
+9d9745793ea808834d7de26d55c88e2e
+64fb903f2aad7dbdda66a22095996aa7
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a5a8b8ce8afe292ca087110b1ddc88d0
+aa203f64582b673c99562211fb006e36
+f4a9a2579e1af21679441f8dfb9bfcac
+450fcdaba8342b7e53be3cdfa7a88f14
+ea1af0d7949e9dd63c8658d6af21dd66
+80d5b17efc16ace990c07580fc3e85eb
+ec449c9d3ceb974a13c07667617b3e2e
+92bce030ae129c0e4dae5fc714aa0011
+1e5610cbf01ea3af970e1a7ccc6fa64e
+0a114e3ec4d060e5ec39a6ce043b78c1
+9153c20d185caa1e12282eafc4051351
+4868ac1d2bf7d3732203a29c97cababf
+743d14e2710b142bdac9576ce52233ed
+c5eddf231842e1a1fb9cd757c054de97
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+5f6dde6631b5ccf0d63094daf019e524
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+6b2decb38be3882440910fd75ec508cd
+2dc1665d31b37f9aa7408939a0365027
+505b97969baa28c3f607a38ee02f4f2d
+5a29aee8cfe3a5110dc892ab8adfc17f
+92bce030ae129c0e4dae5fc714aa0011
+80d5b17efc16ace990c07580fc3e85eb
+e47e4346a8e1368a9faf564b02d531ab
+6b2decb38be3882440910fd75ec508cd
+7070b9ee421ce52b0a94300bdc011420
+2dc1665d31b37f9aa7408939a0365027
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+311099e3d91a6f5fa6d706a4c7ef15f9
+81adbf9deb35fffac22832a7b0f9d955
+2255d3be3ffb48d200d3bf04f1d7ce72
+d5b91b986e0288f117e30d2651923430
+132a2d1b7d81bf66c9d52f6d8f00eea0
+ae88cd5899d46fa83c4608db3e1af862
+9d9745793ea808834d7de26d55c88e2e
+c841f88e556e2d96f34292ac0db53006
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+d57004894cee064f540f30ccca5521a6
+5cd85a8d43ebab0aab1ae640761074c1
+fcf201fbbe828690c372a5ec43dadb07
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+f0ae5feb1576d9b1a0d9d5991ea8cbb8
+d34cc8f0ad4a9c02c4c4d8862a3153e9
+0b9a78cec85760c4c63afbd61c915d6e
+c7e658a2d63a7479d40822f0da3b2ed0
+9623f7a2182258d8f0b5dd2b9c173b8e
+de19fbc856e28ad2ea270898bb070b56
+c5469c0ac8d7ac4a4dd76967d07fb603
+ce2723f715337e6576a821fe3b431156
+271ab840db27c1f6ba976fdad3e274b2
+11b7414495f916c37c361d199e88416f
+132f7851688dfb735913038b69be0dd3
+ae36ceead1cbd2adbe9b9d736f1eeb0a
+e84ee2945a3d3d2844e268d06543e6bd
+a06929c64c033789e7f0e2d13fa734f2
+2eeab04e6cfea8d7d9289893bbb61893
+aac5deb91adcf78cb8092e82a2952bb6
+ea853d131164f551dfba5a7771eb199a
+b09119339a9ca2f6a88cda38dd999363
+af4c7ad29a9a9c305b0c2d47c18fb065
+19732c4b3f880542e8e078481c8d63e6
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+f4966913f98d6e6891e1f501a2b394a6
+35816cf53cb841586d3f8a305bf2a3cb
+941205d807ac4df9704a65bdaf4756ec
+5a0e8ed26d9fac082bec0dead05933d3
+
+75a6ccf9c84cd3603acbe3b5e23aa5f2
+8ca371334f7524815c0eef619cf2fc2f
+2ab3b63a472e04138dac72256e44c058
+69dbf99f8b861080755787c3ec4777d0
+a94b57b01538bbefb8037e83877c6cd6
+469f35aaca218d4adfc3c6dab4f21325
+7b1c76c3de49565cf21376bbf0a16823
+9d9745793ea808834d7de26d55c88e2e
+94edfc0b767008e46c99b335e5691842
+4e12c40c902b3024e3a8973a69a2588a
+cbb184dd8e05c9709e5dcaedaa0495cf
+17265caa7b0c307a101679bbf50bfc38
+b187b74981c7aefa1669e3787a75121f
+c6ef9086507fe3439035b076395a3ac2
+2baf9c2505c9adbafe3ccae29d4102ee
+
+82f3e08119448224ff9739bfac2cd719
+f76b3f9758b0422b09fb175a221a6b73
+13a2645ac155e02bbf0c1ff98d290748
+dcdcfaaf1feaf659991a860858d886d5
+4641ba1ac40cc940fc44158687ea042c
+2064fbcf4ebe4905bae783bfc1094771
+7a9609ff278767b46b5735cd30492296
+f07b0b26a7a143d61c0a975c220eefea
+1ce1c5679851d936eed68cb2552eaec6
+76126952a0381fe13856c7d1931b1d96
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+c0c97e22db5055def551d1cef15fb251
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+91a50bf00e38514032e77b0206da2bb7
+7eaeaf1d7d9e0758ff076b962bf8b45e
+b84f586e4092e220fede6e3c54d00e35
+7291195a1d648013e068494e2edea07a
+8d6a5021a6ba0b2e57ce43e532430f92
+818c15682ee00296b9330da48c7b6ad5
+2bdbe738703967f40d32ce28d0c027d8
+9974131ce6bc84dc09c55557e79b12ad
+b6df78764593fdc1c021a44f3e9ae8d1
+5d1fe6f9f6efaa108364fc4849434423
+9d9745793ea808834d7de26d55c88e2e
+e614696d68268852389191e7b5766a0b
+d5de5a4a7b207b2ace4be4fb31ae2134
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5ba7ada225e7aa026efe8e49252967c2
+36364ec9aa2f0995d283c1c6a92d2e5c
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+525a0c53aec3cf14245444887950e409
+36364ec9aa2f0995d283c1c6a92d2e5c
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+6e4b4bebfe113adfc02a419ada6e0fa7
+3aada381d8a879a837c8b480c6339155
+12284bb547f54ee3ef06006c76c101dc
+bc0a5f03013c7692f831ec8102dd8940
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+3cf9c41be95b92fc198dd73ace602bc5
+ee7b1730057dbab76cdf48395330866e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2932d24345a420cd6c13be351fc994d6
+d5583022cec540fdc863fa5731c21b58
+85d4ae256205263b282bdeb32395ae8a
+76126952a0381fe13856c7d1931b1d96
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+f07b0b26a7a143d61c0a975c220eefea
+92de7527423e52c36e34412ec3521803
+10290159790dafbb7f31a6dd80571c27
+6306c143a24a548883f2bc518104de2f
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+d18137e6417294722324094c384a79cc
+df30efa9f80a7a4879b4a606943d05f4
+2f0697d55b40c26b3e8a61b5019d294d
+a666971f12ec91fcfaed9a4417ccadff
+ba20f72dc7b17d71f523166b88114413
+d762e1285adde7785510a9dc19d91bd8
+223422224cb2e4235497f02c905221c6
+8e29993aad7fdbd8562dd39b0c9b307c
+f970d5f12398bcd3e2ca41463bb173b4
+1f03e5c34f2727cbedd6c706ac417646
+d9e2acf45a4a60a54f7689c2b81989de
+3825c5c2454abe4388a9be12eed4a701
+cbb184dd8e05c9709e5dcaedaa0495cf
+c0c97e22db5055def551d1cef15fb251
+bb4145ffc7e3d69dc4605efdd2cd2cda
+cce250e67a8d561251be4257d951a948
+c2bef11d43d42a908d638b8e21336173
+6ea6614fee358bfb8b42ffbe09eaf186
+a0a390151b1970f10d8226dd9071c6ea
+c2bef11d43d42a908d638b8e21336173
+de735fadc4b1b96d6039f920cc08b891
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+7c006282c3497b1e489595a448b02655
+
+22aeee7354094b3c1d02c0718d441d4f
+4a00c40c4a3f3626fbf1ca375f259f89
+257dc7394cd462d3b66a13d0eec2adac
+468fadbef1f4263d111dc3a04fa5803c
+efff6f97a94d6eb1c15cc58f5f196d98
+9ad47fad934ca69f8d99a89ca2f4faeb
+850d7dd37b1abcdbe7098269deb4472e
+7aaa1df5f2459410a1b1e67ff6d86f8c
+bb7258b757e6a3ffbdc4544780e61a2e
+3735ee54c9fa44edf3428cb730220505
+c4c9bdd47ee05028cb84873da0ebf2b5
+d305cc0af20a7eaaed4e0189e807dab7
+c56f1cb54ff96932e8edb150077d3988
+ca580b3139e73348324b458eb86ced98
+cbb184dd8e05c9709e5dcaedaa0495cf
+bb7258b757e6a3ffbdc4544780e61a2e
+3213c9497a82a3931fd53a940ee2bfd2
+eff4e1c7d7fbea168ea6422ab18d4358
+4f64aed5dde750f12a88b6e91592b86e
+990ae1ae74f670cee9d4fbbdb514a895
+5608a41297a2bbb2d4aa2865cb7c4202
+df68a050daa07ca0b755aa77b013b3e2
+ec33c5bd7dafa0b57bc986b54303d78a
+c4c9bdd47ee05028cb84873da0ebf2b5
+1eb804426d921009bcefc35ecd61f716
+c52dc3180528e797fa3493e75fe1f815
+e5f513e1a6b8008bca6c2bb0e8ff64c3
+728d066326f1e30677ddf9b55898cc5d
+928ee8fee9df35a0a25b1ff2b1f4256d
+b9f96b6380026b3107cd575ef2b23422
+45945db258f3c63a30184c0de84497d6
+43a8947c37282fb486fe10804a90866a
+e2ea0cc74097ee72af8a8dcc0b0d89e3
+0cd9d1efb1a101bc3a355fc6780fbf14
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+9e3a2e29d448daffa0d9b29bdbcb1a61
+2f069393a256e3121620f1b01eba4ee5
+1c53df149632693e489fafd4f66fa6d8
+43a8947c37282fb486fe10804a90866a
+0cd9d1efb1a101bc3a355fc6780fbf14
+cbb184dd8e05c9709e5dcaedaa0495cf
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+6e77d8245bb1f298bcbc11cf9e7e5ca6
+2f069393a256e3121620f1b01eba4ee5
+43a8947c37282fb486fe10804a90866a
+2eeab04e6cfea8d7d9289893bbb61893
+0cd9d1efb1a101bc3a355fc6780fbf14
+cbb184dd8e05c9709e5dcaedaa0495cf
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2145c1b6992c0d519ad223f91671329b
+
+848b7229dc324548db89810a91090e3e
+bc5cab766ddcd16a99fda9c5c9ee646f
+f15cd81e30fe8f479faf167ada1728e6
+356434c3628582a6a707efa7f789b279
+fc0e4f58d2d6dcd5b37bf0989182c92c
+739b2475e9e48e7e95df5f1916844e9d
+cd95b86c36895c6a06092021be89f83a
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+66d7ce950a89b353fbb964c4406dabde
+b2b46684952beaa62f2cda07929f4b90
+390f12187f1296b4552dcbaf8f596411
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+e1eadd39cdf2ed4ab852d582ccc9adcc
+a0139d50834ef2dbca1b9a36eaa372f7
+7db1e2c781ca15f50365999f9bb102e8
+f331431b6e49c4904bce937642f40dc6
+c2bef11d43d42a908d638b8e21336173
+806803e16c6be3c67bfa73fbaa1df78b
+8458d241184bef243fd4d82bb8a3e95e
+99998e0bba9ac54ce9db506518103cd0
+9d9745793ea808834d7de26d55c88e2e
+18bff3beb550a71408330b837a7b1284
+cbb184dd8e05c9709e5dcaedaa0495cf
+c2bef11d43d42a908d638b8e21336173
+de735fadc4b1b96d6039f920cc08b891
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a06833296d446d029edea054d82ba11c
+2f0697d55b40c26b3e8a61b5019d294d
+b8f4a3546b0e9823178c16be1163f422
+da50cc784f74b9777500bf19d33221c5
+56353dc173d3d734c36105411acc7f0b
+
+14ac2fc33ae122a2f19de4f7996a264a
+9b083aeddbf0498a9c291ce2c607509c
+895b8492ff31fc32680b87a810a4a52c
+45f64c7221faf69cf98496476348ba93
+20231619760eaf955e07b43239453c2f
+be4519ec15dc6ec1daeb910185a12205
+363f203f9891f5c64b8a13715cfda142
+fa239862874e670768b175ea5d7246fa
+6306c143a24a548883f2bc518104de2f
+ac27570a8ed29bb2bb7b1f22e386819f
+cbb184dd8e05c9709e5dcaedaa0495cf
+c0c97e22db5055def551d1cef15fb251
+cce250e67a8d561251be4257d951a948
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+9897257a5d9971182f7523c10794e54d
+34fbf7070f741fb5335a8986ff5e83ef
+65917f2412524ac8582ee3b4992ff27a
+3dc04a7144bf88caa4fcb3bdcaa640a8
+9b617bcf6f69e3938e54f04dfb61a7f2
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+870c0b9e30b4e35f1e49992e517d6b48
+46565e503ca5f6615309fd83fadce8b5
+3ec79daa73ff7d3b50add023e92c2513
+e727ae8cc39b88381e8a08a51d9bb055
+c7e8e30e53cae10455bfcc3f60f62a31
+0111af11f236b341fd2eb27735db260d
+595a9a14777e48349beed14bb025ede4
+0f84b0c54aa1381e45e99851cac8c897
+9d9745793ea808834d7de26d55c88e2e
+27de62b18d11c55aac323bcb4ec9af7a
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+7198b835350a4c7cdd579b671949477d
+3e4a0230674e8a6cb3508324a3fb535e
+788069c6271c65f6e66d6e45e03705f4
+fa37f281f840cdbe07fd1351a34a73c1
+b90f46eebe7237a7bd8e16fb8e2ff1d2
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+6c1ea919b89121328953318c256604f5
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+b2ec19bab3b81fb98794d70c16ba4e9c
+7281cb7e00b9b605c8dc6d84534ba4be
+ee13411baf58dcef253e7f3d4ac43043
+766e29c090fb9dd1252f257ce729779d
+84ed3cebadd2ec174c79382c31a3fe7c
+f80a22e96086e130200c6e986c32b7ea
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+ac27570a8ed29bb2bb7b1f22e386819f
+cbb184dd8e05c9709e5dcaedaa0495cf
+7e3783ab90d74075f2f607b12b41aff0
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1ca0d66ed40db6185b5cfd9e59a18cce
+db32ba6ae7a30d45140fb9019680ab63
+d068bf1b1a37967c41bfe708ff33b35f
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2ca91b5160c948115f05205c7ef8f88b
+60eddfe5659d946203dcaabdd06d7e8c
+6948289f916416b3750813d117e683f5
+6151075086c5b88b8a9097b39b9ce33f
+c7e8e30e53cae10455bfcc3f60f62a31
+cf1919b91fefcdc3d268a511c2be2507
+a5544053aee0e3a615a6fd6a887f6b10
+9d9745793ea808834d7de26d55c88e2e
+fdc55661049bd09b3dc1a1b013ed343e
+51cd06eacd2cd9a0bcf2465b0e84d8d8
+cbb184dd8e05c9709e5dcaedaa0495cf
+7281cb7e00b9b605c8dc6d84534ba4be
+ee13411baf58dcef253e7f3d4ac43043
+766e29c090fb9dd1252f257ce729779d
+84ed3cebadd2ec174c79382c31a3fe7c
+f80a22e96086e130200c6e986c32b7ea
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5f3494abae64da74e504dd9d54ce60e2
+34fbf7070f741fb5335a8986ff5e83ef
+26ea0a38a46e57c6fe3d93df4235d300
+25174a6a94b8ee179d63b3a5a32709ee
+dfcc139a5b4119840aa7a47b43b64c0e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b977633974462a10e804a69a25b03e53
+0c9b503d4b1cf5affc8b5154afa8ea36
+fcf201fbbe828690c372a5ec43dadb07
+3d0f0f6612cf01f10fddd9db041e92e1
+c38a5b1c79814309f0e315d11aca6f18
+2baf9c2505c9adbafe3ccae29d4102ee
+9d9745793ea808834d7de26d55c88e2e
+9d13ec1712c48cdb33450849bfd17c55
+cbb184dd8e05c9709e5dcaedaa0495cf
+3d0f0f6612cf01f10fddd9db041e92e1
+bd868435c35fe15673dcce843d85dc3d
+9d9745793ea808834d7de26d55c88e2e
+3f6e8168f17b741b89edffe639660301
+cbb184dd8e05c9709e5dcaedaa0495cf
+1fbbdd5d1dfcd23e0d8db4832d434fa4
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+6a7aae4b6b3a81784edfb9662e911dec
+add2380a50e4b0165e360555e2b01fe0
+4d12d01fdc20f12104eddfd91199b2b6
+1da45c2e9c500d0e6d42517a441a8c36
+c2bef11d43d42a908d638b8e21336173
+de735fadc4b1b96d6039f920cc08b891
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b66203cfbe58c874c7e462c784b95d37
+3e171b728d3fa146ea283a698adee1a0
+5e0495fcbffa29c747bc77aee45baf34
+2b05997f868eb9fea4ce65399adf2f7c
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2dd2b0bd7d252d3b54ec8c914b6f8e6b
+3e171b728d3fa146ea283a698adee1a0
+fb81d15d703a0362503c00e8dd7ecfea
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+8734bc37876c117b087cbcee97384d01
+ce3a942345135feb5a3aaa36848190a1
+6c720b590a2f08f0c6606091b0e5d35a
+4844306b1349ff4ebb26af0a4a201332
+1518f2f0636335155b1334ebd841a3e1
+bfc4fc65e4ee152c41aa17ee28c5403b
+22f52b6afb6877f04b6e40bd2312f4c2
+2520334c8dde8923e62661c7e89fedc2
+81679d2ed4445db975896bb31a14979b
+9d9745793ea808834d7de26d55c88e2e
+ca4ba759cae50d2f110276e05682701c
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+dcb1c5600bb12a0be86b3645601cd3b5
+771da1f1a003f5ebf33843a7987cfc77
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+cc6b7f9ea25d0d7044dd7275bbec4d72
+6f2a791aa5213af8b3f4341063c4f37a
+14ac2fc33ae122a2f19de4f7996a264a
+8e3f7fe34df3f37563d869ea0a9c12d6
+cbb184dd8e05c9709e5dcaedaa0495cf
+c0c97e22db5055def551d1cef15fb251
+
+626f391c8f03b6152ee1d6b36cc39ca6
+3eb76645b46879a25285caa4f570b1fa
+f919fc2657ab153dbf0e7747c0239c2b
+6a7aae4b6b3a81784edfb9662e911dec
+8e3f7fe34df3f37563d869ea0a9c12d6
+a682517ec97da6209ec16d73b8e3395e
+ad751bad66a0a858dd2aa8fd787e0c9e
+d72ddd32379427fb1e58830a13f55a07
+4fe9e18e03351e342460b1dae98e7fad
+de4b4d232d32cf68ae4343f53a8a8c04
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+bfc4fc65e4ee152c41aa17ee28c5403b
+547a5ebb5e1c1e8b417e2fed14a747a9
+ca764d217cb44d3138b10acbe58fb348
+06bc1d868c000ec04772a9c9d34df2ed
+beabb0d9f8af46b897ad6486950d383c
+0cc5f3ed6465fd20389ef8e568d3f782
+204c994bd9df7bbc9a65ef0fd5fe728d
+4c967ee166d2d93af18404286d02eb97
+cd9e785b575e726e5e8348848a486e22
+c0c97e22db5055def551d1cef15fb251
+cbb184dd8e05c9709e5dcaedaa0495cf
+c67c30cbc9f19312e720ca94be4d510b
+ca764d217cb44d3138b10acbe58fb348
+06bc1d868c000ec04772a9c9d34df2ed
+beabb0d9f8af46b897ad6486950d383c
+c75b8a505a3fe6b9f41d7fa912186e0f
+cbb184dd8e05c9709e5dcaedaa0495cf
+f0d72f5de1f38a101a1ce9bfc70c44cd
+cbb184dd8e05c9709e5dcaedaa0495cf
+c0c97e22db5055def551d1cef15fb251
+
+424aeb4f2a872df3a28ad3fad0818be2
+2ade2a71a81c3ec8168e69b67c5843c5
+cbb184dd8e05c9709e5dcaedaa0495cf
+bb7258b757e6a3ffbdc4544780e61a2e
+5b9866e454f355f57ce3777be61b7620
+c4c9bdd47ee05028cb84873da0ebf2b5
+6267dc4f60efc7518fdec6eb56b44ea5
+6875e5896ac52d8f77a7ebab5607fdad
+36364ec9aa2f0995d283c1c6a92d2e5c
+
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b536e41a73bf9163abc437bc9e7744fc
+424aeb4f2a872df3a28ad3fad0818be2
+2ade2a71a81c3ec8168e69b67c5843c5
+9d9745793ea808834d7de26d55c88e2e
+c79c67740ef1ffbd1359209b0d01e9dd
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+897e8475aafc612fb8e7f9f8e43cba6e
+36364ec9aa2f0995d283c1c6a92d2e5c
+
+cbb184dd8e05c9709e5dcaedaa0495cf
+c0c97e22db5055def551d1cef15fb251
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+f58119bcf365cd2d599f152e08d1167a
+9a929a5656cdf4aa238c92c3d7fe32c3
+02082105e1c60a0674497825c2c433ae
+c7e658a2d63a7479d40822f0da3b2ed0
+af4c7ad29a9a9c305b0c2d47c18fb065
+fcf201fbbe828690c372a5ec43dadb07
+18b9b151b15eebf702ed7ec4526ce03d
+c2bef11d43d42a908d638b8e21336173
+7efd0782494c1cbc3aef80b727f181b4
+c7e658a2d63a7479d40822f0da3b2ed0
+af4c7ad29a9a9c305b0c2d47c18fb065
+bc0a5f03013c7692f831ec8102dd8940
+18b9b151b15eebf702ed7ec4526ce03d
+fcf201fbbe828690c372a5ec43dadb07
+c2bef11d43d42a908d638b8e21336173
+b85d38f41fdc1c28157d2c14a3af6834
+ee829b3541ffb3ab03c70ec0fc940318
+c2bef11d43d42a908d638b8e21336173
+de735fadc4b1b96d6039f920cc08b891
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+fd197dd646a8dc0e79b26be8cc55cc93
+b4e2e685cebbb2b44eae4697935213b1
+c49bab18453352f2e051a5e5c4ccf9fd
+12a1312a6cd6e0ffc36c24508ba70f2d
+17dc70cfbf82d4e88fa6a7a19876d1fe
+7b1f6a41390ff245e123076961506acc
+9d9745793ea808834d7de26d55c88e2e
+03db238873282e0ee71babbd3f59da02
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+4e3cc850b496412c6e0c45ae848386b5
+918c5fb56838d308274875e1acbacffe
+c0c97e22db5055def551d1cef15fb251
+
+670ce683f9cea2dd88b33d61182518c9
+7ea41f50703ad24b1b0434d00b865d2e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+cb14a78c762dee8ac71762064e08706f
+8f142654a25d7f08a821d9c27513bb02
+22f52b6afb6877f04b6e40bd2312f4c2
+353e12552a61c9c5b74d4e722616cc85
+ec447e0284a9f86eec8b657c66e9ec1d
+3d61eb708a22c6e25e94e06f06f17f99
+c3ff6f18949529c77b118b068cc76547
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+2145c1b6992c0d519ad223f91671329b
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+56957e03b5b16fc8f7bb732415893b3c
+8379e1a686179fc23e18b5c1058ff204
+e250732ea6b0944c06b24dab0b6afdc2
+cbb184dd8e05c9709e5dcaedaa0495cf
+9f161b81ff9e8c6bea9a8ee03694b877
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+558e0513dc53b184f9bd5a222fe930d7
+b12aa02dcc09f5bb238ff526e324bbc5
+ca4ba759cae50d2f110276e05682701c
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+d18137e6417294722324094c384a79cc
+50a9f54d04bfbe89d12263f751c5f0c7
+3be5e82994db3803a043541239a128ab
+c2bef11d43d42a908d638b8e21336173
+6609c83cf1bb3eb8960b54ec1257e432
+a1b82eaad1ef78d3d23d6b83cd072887
+a666971f12ec91fcfaed9a4417ccadff
+ba20f72dc7b17d71f523166b88114413
+881a6e90721350d5ad06c6734337d72d
+8e29993aad7fdbd8562dd39b0c9b307c
+f970d5f12398bcd3e2ca41463bb173b4
+14ac2fc33ae122a2f19de4f7996a264a
+7cef69888b8a39fe8d8af4e5bb029875
+cbb184dd8e05c9709e5dcaedaa0495cf
+c0c97e22db5055def551d1cef15fb251
+bb4145ffc7e3d69dc4605efdd2cd2cda
+cce250e67a8d561251be4257d951a948
+c2bef11d43d42a908d638b8e21336173
+c3892bb9fb15317b24fca79fdff537b3
+c942e4a15ddd2b64e5254a3476d1ab7a
+c2bef11d43d42a908d638b8e21336173
+de735fadc4b1b96d6039f920cc08b891
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+b6fcf6551cda6104d7ff6491d430b3ad
+0a4eb4adebdfc62ec18259c799a139fa
+8b0683f32cad3af310945906a1dde451
+34b09a0c4262af843141ac0dde561350
+a749fab2f12fce2d9705722631cc699c
+f481fa44b0ff67cdf1c6afbc674ac220
+22d785d666ee8580e41620c743258c0d
+c74347e2b7f633119964683c39d5dc2b
+56fcecd48a55868756dada29c6b87d04
+e7396635c7be60763d283388f0861589
+436f5fa7f09b37c91c4df4000b8074a0
+9d9745793ea808834d7de26d55c88e2e
+4f9666cc5a632e5ccea6675cd172b66e
+cbb184dd8e05c9709e5dcaedaa0495cf
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+5cdb3f1b94191d5204cd1c2948b3a08b
+d18137e6417294722324094c384a79cc
+c42a9d526b389237a23ade27bb0f9235
+15a6f9bc738bbb89638d91ae7f0413b6
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+c788fdaf204cd26b1ddcd279dde5a6c8
+2f31350ff509c2eb76358da8ceaf848c
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+67d359974d95f5d1954627bc388da5ff
+4df0d046c8eaff77cfe0dd61bdbce442
+fa62c30fc29fd5e9153189796c97d276
+5e7ad5da4db021753bf84d63bd0f866c
+9d9745793ea808834d7de26d55c88e2e
+305a757fbda1205a954c7df0e9ef5f36
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+51b7941fbfb9192bfa68be4eefae90ff
+cbb184dd8e05c9709e5dcaedaa0495cf
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+acff7140a7f769da26ad26b2a3569ec8
+51b7941fbfb9192bfa68be4eefae90ff
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+7269f8eda1e7130fdc13f3b08d44e797
+1da45c2e9c500d0e6d42517a441a8c36
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+d86d926fb6db8fdc2bbd9ab53249fbb4
+6de424494d07f2ee361d5f24db1d42ce
+c2bef11d43d42a908d638b8e21336173
+de735fadc4b1b96d6039f920cc08b891
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+d8e9310ddb33d3c370e548a0f3b59cb6
+decbd019c6a5fe38ae4f46dd726e7435
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb72bc44fd5ac7cbb4fca0308b8a1717
+92431844e6abae660d0f441b1ab39a47
+c98ada72e2786e4a93e350e0fc70857e
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+7ef6129ef6f8e0eaf4199f4ef0179bdc
+55479fbd012a451f6903f6e0785dc3a8
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+7dbf121198f5c469a29826076dbc2b09
+c1f5f4cfcef080070e297955ad72f792
+2f0697d55b40c26b3e8a61b5019d294d
+fb7261890cdbbfc8e4a8a0c8ca1297b2
+e8d3fdf6392c99bf2703fb20715d5faf
+75234bcdd9b0968ceaf68ed4e9feeacb
+4cd06c85bc8f7f144bb4ff44bcdcd6ba
+cc6b7f9ea25d0d7044dd7275bbec4d72
+cce250e67a8d561251be4257d951a948
+e0a09ddac705ac300e249c612d01c0e4
+2f0697d55b40c26b3e8a61b5019d294d
+fb7261890cdbbfc8e4a8a0c8ca1297b2
+3cd30b6b0625592ce98ccb32ebd23fe6
+0d5a7864136fbd09efa5b5ab50fef0fe
+dea3e734b977f9b319a3e85976dc6374
+08bde03767b6140a74c54d8a7a787c6e
+cc6b7f9ea25d0d7044dd7275bbec4d72
+cce250e67a8d561251be4257d951a948
+5f80b477af322fa734e15b423d0998e9
+2f0697d55b40c26b3e8a61b5019d294d
+fb7261890cdbbfc8e4a8a0c8ca1297b2
+e8d3fdf6392c99bf2703fb20715d5faf
+75234bcdd9b0968ceaf68ed4e9feeacb
+e73bd42f9c06b1ca2cfe3c4bcd36983b
+cc6b7f9ea25d0d7044dd7275bbec4d72
+cce250e67a8d561251be4257d951a948
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+7e3783ab90d74075f2f607b12b41aff0
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1815eed47de67b5b92502aa2d76b6f6c
+e9e2ef31efe6ec4872075c9b16881210
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+f6502cd0f0ddaec697d29fe4380c93ac
+d8d90ddcbc17458714ecacee563c1048
+60ff48a9dfd50d803e12d4f918c00d20
+850ca8d9173fb1183e269fab4fb64c42
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+d4df8ec1b156cd674ac97eff2fc64c74
+
+f75020ad1da2457d0e64459ef79c9f6c
+40fe827b18bec46eafc4aea88914db92
+b03f967eecfebcdfdc6d97488ee184f5
+558cef3856802349fdb4be4a3e20aeed
+5f510ad51e535e3a42dae14e5873b6bf
+7da9f6e355de145f816b50acb5125916
+2d097fa2a4118c3ce08c88bd31239b27
+ecb90228159a364828bfc5b3cc0706c5
+cbb184dd8e05c9709e5dcaedaa0495cf
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+9a929a5656cdf4aa238c92c3d7fe32c3
+b85d38f41fdc1c28157d2c14a3af6834
+6f5de4763f694866c7908cdc6810d17d
+1215947a3f6db4f228319f510d8f8853
+e662d90e69114635e6c64a66c4465e7d
+e97a16a557321e105e1a9f5bc32c8b14
+42993faee59118a896a44f2759c76eed
+9d9745793ea808834d7de26d55c88e2e
+c861b9ab51b936e2faa78014b7ec1e11
+cbb184dd8e05c9709e5dcaedaa0495cf
+c2bef11d43d42a908d638b8e21336173
+02082105e1c60a0674497825c2c433ae
+7efd0782494c1cbc3aef80b727f181b4
+5f510ad51e535e3a42dae14e5873b6bf
+42993faee59118a896a44f2759c76eed
+9d9745793ea808834d7de26d55c88e2e
+a7cbeb034225341066894b98bf42d9fe
+cbb184dd8e05c9709e5dcaedaa0495cf
+c2bef11d43d42a908d638b8e21336173
+de735fadc4b1b96d6039f920cc08b891
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+c0fee19f492d63fe4b72c56a91bb1394
+85202a3208a2fb2ef48497e17beb0f71
+b897cc10f86cb86935a120ebbd29580c
+7502dc1cb8e8c881d2dc5faf77f5f363
+
+45093d2584ed374e056775c5e53fddec
+84aee758bb392c96ba61947d6fb3f4e4
+d35f2a3625f8ad374d4a82597f143585
+26c0fafba43b59c87f09cf63087468fe
+039e432bbbf4db4b885f8302681925c1
+becdb1150d9bc93122136c6f476d4c5c
+0dbab261b360d65529a6fc749086cf61
+2f58dce522887ca55dba58f63345ba71
+739b2475e9e48e7e95df5f1916844e9d
+5da387c9fdb0478682680d993d33c611
+b93e03d5d34d67c476342b50420c24aa
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+61a0adf89a2765c9873993393fe5f324
+40fe827b18bec46eafc4aea88914db92
+a29b236af6f9e60f3dc471bb109a1ee0
+025ce690625c502e167c014461a36b54
+471841a7baa1914ec61bf90b87740875
+8f96326499719b46115f1be48ec42cad
+05d2fa23401cd81840fd025c0b48174e
+9d9745793ea808834d7de26d55c88e2e
+c7bdddc422cb5667a0d403d8e3ae9e02
+cbb184dd8e05c9709e5dcaedaa0495cf
+37a67c655240528002958e472d669604
+2b184255d912965ea2f5167afbeba004
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�)M�)523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+dc04c2a6eae79c5d3b430d0734f9bc18
+
+740af85a7cf01a113d96982f40915469
+9988777496d1ddd020cdcbcdd4a2c18e
+d7723d59965412e1086c6aa7acab5b68
+5ddabb9d3527b879abb19fdd03dbbd13
+c27242861af580a0b5fc53dce50e876d
+faa9cca1b5fc25a5e0f954ce66504299
+
+a06699b08840f779e6b958cc6246d6a1
+
+386f7b2760ad1c980f9003efbcf5ac36
+9f14bbcc49f6defa9238d757205a4ef0
+f21b6af4795c6b1462d3a87a7da9e52f
+e53dc032ae98b1b732168e6cd6f7d631
+
+
+f942de0a70875ee9ba72806d921c01ad
+c37acc688b28cc48275bc6aff5f3f400
+c458e619396054f78bc926fb81b4386d
+caabdb0c7eb2c4e27cd383f91de5bc41
+452c8334c13aeddda1ceaf9cd6a9caaf
+d3349a915bd97831eabcb8ea05611e12
+
+fc6a9b1c75d9d5909735e39c5b23e08d
+18701253ccccaf798607e5c1520ba9a6
+3edc36a6d70496e51ed3ff2660bbe096
+2145c1b6992c0d519ad223f91671329b
+
+4f9e0a5834ffb41366949fc61fdbe662
+115c83b5416d8ba3cc5b902187005a83
+8b787f730ab507480560d1976fb55c77
+75df9d476e2298272f14383ae1ee3a00
+002f25b25de522290632c9169be59a7b
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+b75756523fc626d4954c9ea32eb24b48
+02d056a56f25f2988110a10394311c21
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+50e5f953aa76e2e724bad32b3d2c0bf9
+40fe827b18bec46eafc4aea88914db92
+dfd564918aa0082cc2ddda54139047d6
+fa37d3f944492c8144dfa25fa17dbc5d
+8d276a7bc617194f9de5920cb5094bb0
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+54b4565208f7133b64fcfaeb41fba1f4
+ba34c52a5e13dc2365fe33a584ee1446
+ad7f5d3ec576992dcd9e738ab7781adf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a58c944707b9cd34bca80a184eb5fa77
+7c283cf4efd75766ce4dad11b613276c
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+ecff87f3d93690129383d12dbd19e164
+c30ddd1f473f05b8a7e7cc78360e0f7c
+b749343d2d65f2f35ae853927142115e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2878369a331639b9391e5e38be1fbebc
+d609e9fdf108aed33aaf54b6b03bfeca
+e533fc5f663a6780f3e1328d56ad9feb
+f11bc2259c7dcce02311c54da931a7c6
+6c1b302305b49af9544eb30f9137ca77
+f147e3e0cec842bdaf86d6ea9a2e36a8
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+d7af96eff3ad10e2842536340b9443d6
+aa0f3222a1d656047630119a181ef51c
+16cdc59f08f820bb33826cc7ed889aef
+64257bb908267d76ef3fbe65c5e65f04
+c9572ee57a1eda45b882205114ef9406
+304b52b22406197171ac9ed351235dbe
+036f6dd9924e387bacdcce431b750006
+9d9745793ea808834d7de26d55c88e2e
+dc0d254fc10307dc502e39616f620017
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+9bb7a5c6df5102eb0b9ea13d6dcfbd70
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+865038aa0f4d52b6e030ba3223a877ac
+77faa19fd29a73591fe2efba6213b981
+16cdc59f08f820bb33826cc7ed889aef
+64257bb908267d76ef3fbe65c5e65f04
+0e9b38bbe389e640b70af62ccb0c53c3
+39bf504070cfd0882f5f39ba97778952
+7d16660e58d70066071c25fb3f588895
+c40e87dfef2724313123966fdb32fd55
+2c25d1070232b04a005bc9731e4749eb
+33d7dd7508ee800a4c8697a10ebd2584
+fbb4c4cb3ae72333dbc51606a4c03afd
+bb7258b757e6a3ffbdc4544780e61a2e
+92ada2615bb550629647feb47a00c612
+c4c9bdd47ee05028cb84873da0ebf2b5
+9d9745793ea808834d7de26d55c88e2e
+6d49fc6ff753d9753a7c03541aae1d6a
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+9bb7a5c6df5102eb0b9ea13d6dcfbd70
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+ce8453c3ad23b9d9049b3233a859a341
+e3df77f8d25f63d45fe263d85ca0ebbf
+61d03168a82a7e8a6cd99ac5c03877a3
+bb30ba0b277e7e114796d8bd84617021
+cbb184dd8e05c9709e5dcaedaa0495cf
+4b4430fc258f75551a8e4be2cf44ca57
+b524e41aa0cf6ad39267f32c8c687778
+0fdf7d1bb1430cd99a3663eea3249221
+ab469f754f8685b1cf2082d3f9512681
+d5fd46d93a2180f8752ef35ea02445d2
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+30887aa135e96765ba1eeb0f19a56ccf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+6bef19a6f35283967e5c77e9ca0b0f61
+92e33f1336ac1b1b59e87366987c8895
+b31e13c6e471bc2f159a7e355dfc61e1
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2fc045332653f280cfd719d1249ae6be
+d008c325f7b09ebe127f3332c740edb0
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+6342421d3de15110be4fbf5f3fbcd5c2
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+af7aa3fe9628300662fa0e3ef001d28c
+ffdb098fdbf134df917dbba19aea7e8f
+d075252d6162f906ea7fd35923bca7a0
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+956ee598d682ff9e4da8f715bf4b76d1
+3562a20ac84db0478e65c73d74664a58
+d075252d6162f906ea7fd35923bca7a0
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+d57e682c190c2dd272759f7a8d3d947a
+002f25b25de522290632c9169be59a7b
+e533fc5f663a6780f3e1328d56ad9feb
+47eafdedf26faba58c8e320b6889415d
+39bf504070cfd0882f5f39ba97778952
+cf27f0e8ee60936d63e195ef0d26ae33
+435809c1260d983ec27656f8bdf343a2
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+6d49fc6ff753d9753a7c03541aae1d6a
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�N�523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+dc04c2a6eae79c5d3b430d0734f9bc18
+
+740af85a7cf01a113d96982f40915469
+9988777496d1ddd020cdcbcdd4a2c18e
+5ddabb9d3527b879abb19fdd03dbbd13
+c27242861af580a0b5fc53dce50e876d
+faa9cca1b5fc25a5e0f954ce66504299
+2b9ae799c499efb3eef85462fc6c76bf
+c661b1523ece8cefb8e17b2d2781ecb1
+
+a98d49638098b960f6f1b0449b2931a9
+a06699b08840f779e6b958cc6246d6a1
+cfcce14c5f9d7bbc672b1124ea6d84df
+
+
+d31f618581396e0c2fc82cc92ca5adf3
+e38f1f3a823fff039c967ec11934d615
+ccdc9abedd559a444b66fc2cd934b512
+560fd84c98318f957a93d5fe2b1bd6ed
+2145c1b6992c0d519ad223f91671329b
+
+d563f9248b9b04b21cb6712b078f77f9
+3474cc1023ebe78135c12027db823568
+
+d7bf53053f291e78b5886cc4e8eac2a8
+33850482f35f98d504b8f9084eb3840d
+c4f57efa199bc27c4da51b24ff6ab91f
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+b75756523fc626d4954c9ea32eb24b48
+4d45a0647541809c5e0b75dc98b014f9
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+50e5f953aa76e2e724bad32b3d2c0bf9
+979da165e758d294d81bd9bced3b910f
+c28133b85ec149888e9f831f6ad49e30
+175139e119cc9026bf63839125514899
+27a2769c795f1cb9ed221ee40195f290
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+c6554cf577b58873ce470e9748f17e84
+f3c683495bf1a2f3df7e15f10f7abe9c
+b7f34af607cded53246eb821413cfc88
+175139e119cc9026bf63839125514899
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+07202de5bb25625ffc93ac798de127f3
+b003326c85c202d58d2076ec43bbf6e1
+
+6d2215cf6fa762d8acd009a4dfc24abd
+d09e20ac6460333b60c2e8520a107e45
+cc6f3efad679132c3dfcb0e62942f7fb
+15b15027c5737776a3ea955ce83d63df
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+fdc3d38c239892061f021cd9a9fec414
+7f377666b9d3a13e675a0b880423c702
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�O�523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+dc04c2a6eae79c5d3b430d0734f9bc18
+
+1dc4230de8b0d446eb61a6145a906af9
+a6ed1980356f7e5188ca9bd251348440
+cac5cd8ba990653e7c402f8a9e5fb6a3
+1af0b524dbc8a1689697ac49bc7add26
+740af85a7cf01a113d96982f40915469
+ccce10a067610225143cf3a343f04e0f
+9988777496d1ddd020cdcbcdd4a2c18e
+
+a06699b08840f779e6b958cc6246d6a1
+cfcce14c5f9d7bbc672b1124ea6d84df
+
+
+dc4273c39c08f669a7179f851063e160
+
+63a73dfd90456907b7f39368e24f9a4e
+ccdc9abedd559a444b66fc2cd934b512
+8acfccd6166932216ff279d9317beec1
+2145c1b6992c0d519ad223f91671329b
+
+4058be6883048f3a2c82964a35ad9c33
+cfa132a321e9d5315bc50063b8728096
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+e49cafa16f62361549fe874743ed8e9e
+8ae4f5c00f2506874e391354a8aed60f
+69f179fd37f9574273484304be77f70d
+8930db4a0e0fff2accc99a581988e236
+b18c667cbf0d3ab3da025f3b1c289e1a
+6eef9d6ccfe9db0756f18abea1b9c30e
+ff2d973186f894f879ec8f19bfa58e69
+
+39bf504070cfd0882f5f39ba97778952
+0dbd24b09bd064de529629aa3aae289d
+01684440c3624d281743789b407ea69f
+dd103ed02863e4544a17bbfe45cf0335
+24c0b249bae13562a9a8fc8d017c7036
+2e9a95b3fb2a8b4714fc06925ef14db5
+72c8f7062d61576f132d397b99b7c4cb
+f06173b98ff5610635dee4f176a57638
+6f6f38858c299fa2641a7d2339d76572
+bb356292c061ccd977cea8add57b629e
+58cdcd8ba9f33ccf2a567d33925f60c2
+cbb184dd8e05c9709e5dcaedaa0495cf
+fc0186588dc763256201ab7a56b104e4
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�1P�0523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+dc04c2a6eae79c5d3b430d0734f9bc18
+
+740af85a7cf01a113d96982f40915469
+d9add8cab8734fcbfbf6b5bd95e99b63
+5db6cc9c65a5ab192af63f3ff364ecfc
+c9ac87c03711dc8c3d7473c917625509
+4b69949a6b3ac0d7c74eaf791d37110f
+d8ef62f07d0e287d78ee5c31f531211c
+3e85021a19ae7041840781d2ec970bd8
+4168875ecb8083dfb4de090318d0284f
+d7723d59965412e1086c6aa7acab5b68
+f4d4d3e88eb73f086045549f90706268
+d82db0f47077a2fa800bc43faf246691
+e5ad158bf21e9fc1784d13319c696b7a
+d8fcfad31d71a7bb23428916c9cb4dd5
+1391b3f3d9683918966f64331b255c7f
+25f38df5289607b01f5b846475ed810a
+
+a98d49638098b960f6f1b0449b2931a9
+
+9f14bbcc49f6defa9238d757205a4ef0
+43e38890a62dff55349d9e47672e3775
+
+b97a5c9a66ceda574dc203353babc49c
+cb6cee5f1e788e680189add97ffacd86
+b8b828cadffae7a5a771aab7a1527a20
+e1407ae82fc45b332418176a9c7389af
+
+9675fb86985592d945daa5037f198c0b
+d7227eb261c259d1eb219bdec2e1aa49
+ee5328632719aae690e187098507d47e
+
+a124f5428883dbcc3cbc2e95eabe0709
+06718463aba932848f2d988811aa3249
+772c57711d061f641d49c6df4e7c69aa
+c822da84b59342feace15483c3c647a2
+bde06b3a5a61006183704cd1c24bf8a8
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+4b1eecba5ba65533d0f2126f9bd9329a
+c4c9bdd47ee05028cb84873da0ebf2b5
+ad1d17a72ff5e2c74d48f10da0bf1f7e
+bb7258b757e6a3ffbdc4544780e61a2e
+c0c2adc36214eb565dfc63cc22824f8a
+5ff0131f54411cfa91c541a3588d7a5e
+c4c9bdd47ee05028cb84873da0ebf2b5
+974ec2d449701ee17a1f3e4285770b76
+
+bb7258b757e6a3ffbdc4544780e61a2e
+ce737c829ffe0002a35c367f1b2702ec
+0d4cee89357be2033b9b6076dfb6d055
+c4c9bdd47ee05028cb84873da0ebf2b5
+c009735fd01d620eee94648bbc748581
+
+bb7258b757e6a3ffbdc4544780e61a2e
+2b3bbc1cf264caa2d15d3849c109ebe5
+c4c9bdd47ee05028cb84873da0ebf2b5
+1c5c9003f7d6ae658ba61e25f9a18a6e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+ca5ef352b9d748ee71b6b3d853121bdf
+
+7bab626364002ed5c60fc32d34669010
+115c83b5416d8ba3cc5b902187005a83
+6b3f9d41bcdaa6a21074d1c3f736e78e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+75956a1ab71788a044dd9f2c555afc05
+6874c1bed8920d06d9c8c8d5aa6bc388
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b8f7b69c045cb92e9a922c2c17ad11ef
+45f0efa1b359e9d7ef0dfb463c2a76d0
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e5d1ee9eed926e13da8fa0122b9780f0
+71404a25e45d98194c724d27afb3e71d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+46054cc7614c7a101b33aa89db30572e
+006deb6ce36cf142d485d2f6753936c7
+c4f57efa199bc27c4da51b24ff6ab91f
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+211a6ca47cdafe97ce00753c4f55cc74
+4a00c40c4a3f3626fbf1ca375f259f89
+84872a1b4ded38025c285482999d75a8
+
+50f13c22724ed2b62f99a8d7791f1523
+8772fb35bcedbad6163726662b879a85
+07a51d33c93939bdb80c50c7158dc715
+95742ef7556202db112add0ef4774023
+07b7f05016879de79d20b1998f2ad217
+a68cc4408d43295c7883c4fba655b400
+
+e3b3a8ed026db2a33f10be691f9fcddf
+2e7c7b75de086a79bc175b3fd97a75b7
+d55f661a404de3e79fa3961f1c1c1597
+76d1c1f552c03734309907f486f060dc
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+32b846ae321c2ced510115927a664bfb
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+cf3490dca5f98e2358e2eab78aec71d2
+1d1d95463c6b94fade210855f34d311d
+d5a7d441472e7c082d952ab0310d6cc8
+8f08a9ed8958bd5c73b1957baaa96669
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+c2bef11d43d42a908d638b8e21336173
+f3204d63bbf0e5202f10fa6a93a5700a
+0c3769a414c612df994769dead5541f9
+c2bef11d43d42a908d638b8e21336173
+de735fadc4b1b96d6039f920cc08b891
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+49f09d341664ff8a3006ebcb1fdce3c5
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+942a5e6bede6aca51fa232083bda8c77
+1d1d95463c6b94fade210855f34d311d
+f3204d63bbf0e5202f10fa6a93a5700a
+8f08a9ed8958bd5c73b1957baaa96669
+0fd7bd31586175741efe51f71d68e2ff
+4765ed93469e11f1b926d049f1a3ebe1
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+ae43f97f4f0ac91f21aef5559547022f
+cbb184dd8e05c9709e5dcaedaa0495cf
+c2bef11d43d42a908d638b8e21336173
+d5a7d441472e7c082d952ab0310d6cc8
+8f08a9ed8958bd5c73b1957baaa96669
+3c49fdbce4664859ea571a755e21bb97
+af2c327afdc72ba606a2004acc2db215
+9718f612b44de043ffaaabe119c3fd2e
+7bdf2257e1472940bd66a31b2d028f86
+9d9745793ea808834d7de26d55c88e2e
+ae43f97f4f0ac91f21aef5559547022f
+cbb184dd8e05c9709e5dcaedaa0495cf
+c2bef11d43d42a908d638b8e21336173
+de735fadc4b1b96d6039f920cc08b891
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+0fbdb3454b601c3fe2b32d3d3b663f15
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+00101c0398283277f702476bbc1477ab
+8f08a9ed8958bd5c73b1957baaa96669
+d113d9a37109648826d5493787e2a11b
+8419de8193b01e9e47527851e299c3f9
+9d9745793ea808834d7de26d55c88e2e
+ed70a6fd292926d26b9bb11cc07a97dd
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+aa7afac6801f71bf69048560ccdbc0c6
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+bd8b22323f0119e0d09e5ce190b46461
+079c679980608fdacf5b2e8107612a34
+4ecdcb52e45627d1abc9079b4e5b6631
+e39b95bacf248725aadd5a42e8b0ad45
+
+a72cb550fe555e6a56796b0e3f5258ed
+5a2777a53f3f7801cce505ca9214e10a
+
+52b95c35e44eb8e6da6a5d9001cdcdf5
+2e3d410df78e2e735ec7b38f6cd24a4b
+60ecc1288777c48faddb141b4fc8d59d
+8523206d0049618fa2a8e9f8724d9897
+c8ead09e9ef34bbb599ba0420d7933ef
+b35f69f39d73f598b4779eceaea03a60
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+7e0f7674c9535255292c059d739a3302
+80c8c40b16113b472cc4feb45ed9b296
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a3be5f5ce2efb428b080a194ba12787b
+ed11918a427fa5e5f10c5a9d82fa4d48
+f07b0b26a7a143d61c0a975c220eefea
+acc769ec36a311e5a4eeec866053b35d
+19b4777709b6a5ff2568f58df8ae9028
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+c0c97e22db5055def551d1cef15fb251
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+26a593e612be97dd51e90ff0bff8d8a0
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�#Q�#523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+dc04c2a6eae79c5d3b430d0734f9bc18
+
+aef1905afcbbbc088097495ee5a27b91
+73f09735c2e02467c42c700f572a0214
+740af85a7cf01a113d96982f40915469
+4499d7d89c782ef1dea684ad0215bc53
+7cf5b35e1fe52d8912e20deca0a52a75
+7ca52c37fe69802d5278090c8f3b7978
+ccce10a067610225143cf3a343f04e0f
+783ef28c2e806c156845a4eda865e0c8
+d46a00ea52354fe9292e052842abd5ec
+278b76b5e0beffde4792f81951161931
+36978fb1f1fbb0dcd52c7c1e1d6debaa
+7abc367d2fffa7e2e6a2a1e6730ae432
+726ea7bf91426ea2ab2b79c1662458f5
+48f287e40e691feab18393d193cae63a
+c72ca93b96f841cbab245d76776bf177
+a6ee198cc43cdba1585a39b5661d2947
+
+a98d49638098b960f6f1b0449b2931a9
+a06699b08840f779e6b958cc6246d6a1
+29c6ebf62b718d37876ea96440383f1d
+
+6fa05171389dfbeda44181c98e580d18
+
+
+2f7b270d1406e94fcb1c4afbed5dd6a7
+a3b10517210882884fcb3b9ed42412c0
+8c03f2a6ca25217ae7696e24918dad6e
+21e866724f3112037961d20a2242e51a
+5f7707d5ea4011b85b33b90a42726925
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+1bcbcdef3d0171b018c30f15123dfd2f
+f57917ca3d5a9ea247cd37739560d3b8
+457f898e9e365473f79364cb3156d5d6
+
+73ccf1afd01d65a1387f968f977f10a5
+a226788477fd375e8302ad2da32ef2f6
+
+87809cb0dd3c07dc1c70588d519d9d9a
+e27d2bd3298f2ce1974a57d4963bf8c6
+3916b6d8e8f1f5c74d43ba7107d6d4ca
+37ca0bed855b36e7de4bcaf39e4b240a
+fed3793460423e724273a2d73a7a43ee
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+ff0630011b0c978c6b3d053eb15c2786
+
+80d5b17efc16ace990c07580fc3e85eb
+b0109fdc1923d91de932c55297c18df7
+98af1cd79c7cef205af875676c2bfbe8
+3df24ee409c742fa4a33326d8c234a6b
+078875997650b69764e4c05f4c4b8f31
+1f6c6dbe83630db79ec798c5bc950160
+1b10da5f7ef83db74a49c9d36df910f0
+2dc1665d31b37f9aa7408939a0365027
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+d90e767a5c20c1609292df65f84d0cf5
+6a0be1788062528fef5dec419532cd58
+cbe9309d9c3c6987ee10eed4f31d8479
+842df8e249cf02a7ee254c340c937206
+9d9745793ea808834d7de26d55c88e2e
+e92c710fdba4fbd21b79dd01aeaa5409
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+d2cb03b9debe5d4afdf88c838edbf8fa
+cfe44db7666353d56d84d86216e43158
+e4a0ca276d5d68bcbc2e458d99029746
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e483326f5b56faadcb5040d7fdafa78e
+6689d9d5ed099f2642052853a948eacc
+
+87d57cbc84f7e75c5a1aa0e0ec9d39c4
+5ebbff821132a403d86c6a9c798157a8
+
+806dbe809726635a0ebece3b30a45c99
+bea9b3e8a4a7b3f7f2fe7c6f566e3a4f
+9d9745793ea808834d7de26d55c88e2e
+2ddf4391fe0336d0d3b24561de85cfd2
+cbb184dd8e05c9709e5dcaedaa0495cf
+80d5b17efc16ace990c07580fc3e85eb
+2c0af9627fb9da1e347e5806c8e06606
+5dfad3bf6f39b076cf94309e68a92f72
+615288702d3c8e6a1908ca0a0e8d9262
+bb214290b74630536ed94ec788fd7736
+1b10da5f7ef83db74a49c9d36df910f0
+7070b9ee421ce52b0a94300bdc011420
+2dc1665d31b37f9aa7408939a0365027
+49ec8d3a44791d63f6a0bbd27b89b7df
+7070b9ee421ce52b0a94300bdc011420
+2dc1665d31b37f9aa7408939a0365027
+6363c52fe78eebb9655397727baf548b
+7070b9ee421ce52b0a94300bdc011420
+2dc1665d31b37f9aa7408939a0365027
+6b2decb38be3882440910fd75ec508cd
+7070b9ee421ce52b0a94300bdc011420
+2dc1665d31b37f9aa7408939a0365027
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+d8d9a4954dc842934242ec0219d3ba65
+bfb905c10ec44db04312977e01498dd8
+4facb685f2dab7ab6d598e3ca45be17e
+ea7c5910ade86c410040ccafac3023f8
+ebd32bc5073d3d8911db198ad9ca4d07
+97ed24045da8787154bd12ae69b68e53
+e8886d2e0b2b2eb7eec423023b276508
+cbb184dd8e05c9709e5dcaedaa0495cf
+1c7f4e92e0fd38fc0ea0f16dae27b635
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+14ac2fc33ae122a2f19de4f7996a264a
+2f73d021651e2ac879b4ab2bd26236e7
+a521e9eb10c4af535bfde9b1acfc6465
+34fbf7070f741fb5335a8986ff5e83ef
+26ea0a38a46e57c6fe3d93df4235d300
+119810ace339ed5e65448324e8da85fe
+51b54610d536b5b1612e4c7fb113c80a
+c2bef11d43d42a908d638b8e21336173
+de735fadc4b1b96d6039f920cc08b891
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+800d8abf037777465a01d08bfb31b579
+ecffbbe022868e396b729c7f9590d9ec
+e92c710fdba4fbd21b79dd01aeaa5409
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+830f8106d16bdfa3a64c25eecaf7afb2
+f8f665ccedc64a2f72fca0c92092b731
+309bfd3102e7811a324d2bcca868a502
+11a111e8f54cb434355d8d48cce411de
+7d7e9ed52ee667d61b30def3c874e059
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU��R��523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+dc04c2a6eae79c5d3b430d0734f9bc18
+
+aef1905afcbbbc088097495ee5a27b91
+1dc4230de8b0d446eb61a6145a906af9
+73f09735c2e02467c42c700f572a0214
+a6ed1980356f7e5188ca9bd251348440
+9e87ab199c2372f7191fd0e9fe896cf3
+c6a91fcb86e13bd5926211bcbdd90d95
+1af0b524dbc8a1689697ac49bc7add26
+740af85a7cf01a113d96982f40915469
+4499d7d89c782ef1dea684ad0215bc53
+ccce10a067610225143cf3a343f04e0f
+2dab01e183566387f3414c3eb43b515b
+8708ee436faffe6524c96150a8c03ba1
+7abc367d2fffa7e2e6a2a1e6730ae432
+b82639497a455122d6a0dcf7a457f37d
+d45948723db2658b35e03990f46bc7c8
+3507ee2d908b08b6cf0c1e44379e94c2
+d8ef62f07d0e287d78ee5c31f531211c
+d08afcf456e68f9c032cfb201ced6f94
+4486b9fd855661595c12e0d4fe552261
+d7723d59965412e1086c6aa7acab5b68
+eb73afd45f2642b667aba8bf67561f90
+3aea064021272f343d558909927d4a5e
+e5ad158bf21e9fc1784d13319c696b7a
+1391b3f3d9683918966f64331b255c7f
+5ddabb9d3527b879abb19fdd03dbbd13
+aa75e987ce8158a702f2b8524cbd0ea9
+a6ee198cc43cdba1585a39b5661d2947
+efd204d77b43bf84bae61bbc364445ad
+c1217d998a806f67550ebb59c9f84e1a
+498a24c79cea7a609faea17b8dc52bab
+25f38df5289607b01f5b846475ed810a
+92954d75437d815b893b383aeb78afdc
+2b9ae799c499efb3eef85462fc6c76bf
+c661b1523ece8cefb8e17b2d2781ecb1
+d1d0180c1a8684073824cb92a9c12156
+
+a98d49638098b960f6f1b0449b2931a9
+a06699b08840f779e6b958cc6246d6a1
+37d4e28f45ecef1a9831811ffc064387
+4b3e40468fbd58fd8663a89a577424da
+0e6f663a3c58c8a7715e11c8c43b4d1f
+29c6ebf62b718d37876ea96440383f1d
+c00a344394a3547ac95cea881f28d8f3
+fcb3cb84ee30bf6867a47599410094eb
+45ea69247c9ec31db867fe7e942979ab
+c00c8536450d071037b749931163e437
+60befb652976f4ee6c231c1ecd036cc7
+8f9be8fa00ed03fe08ec78efcb40d8d0
+
+9f14bbcc49f6defa9238d757205a4ef0
+f21b6af4795c6b1462d3a87a7da9e52f
+43e38890a62dff55349d9e47672e3775
+3fa85dbf99634e06ff00d88d1807469c
+7d060f15bab98550b96e3c8c74c36e8c
+
+
+01a4ff03af4510ffbd1342430eb7348f
+f00b07c76ac9c204005cbae744fceb86
+78de5b850ae351c91f828eacd823ee7b
+5676bf7307c99e64db2272e0d9c2673f
+
+9d54f79783126cc045bb8345f287c457
+
+df171f3a91a55a70e6995b2d0eff4f33
+
+75821cfc71335b8352c3a9eb50fa6156
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+70a2922f5d3aa004ec88b2127fa18c0a
+06718463aba932848f2d988811aa3249
+352ad770db2e389eb5bb9076fa63003b
+00253961e2f507d9e5921096b3a05d61
+594291b4559a5130faeaf43db3f6bd41
+f1a815e8e013af5ac9dc7f752720ae43
+204b730f51e9ab4d254234ab5ee94422
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+86481230da51eafb734b2797a93e6903
+06718463aba932848f2d988811aa3249
+c4f5bd53c62c9938ba21921fb35bcb45
+35b0603dd2772a19ea149e444a2f7582
+782202da6f82e32ce1c5448618fff0f8
+0f3b33d8bdc92529018de077748dcf62
+8a1cfafee9ac73c2619dbe13c9f306d9
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2e89ea1c2723e5729aeffd66a1e1264d
+06718463aba932848f2d988811aa3249
+ee3962344d69422eb4cb518c6e17bc3e
+57773b6be07180861d07c3737a466dd9
+d8d22aa076becd98bb15a1a1f1d3071d
+865594f34290850568dc46527f0b367d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+8b0f7158daf5fa3213f3b83691e5900f
+06718463aba932848f2d988811aa3249
+7f9e8079f272abf6741be472cbe94c73
+c1cd56b625dd0d8cc3f5144e1faf8d6e
+6b748f39866a7c5e9cb0d410c9808773
+4662e28e24eaf117295a86a2e61d364d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+f63dd487f3f2818bdbd96aeaa3bddcf8
+
+b1d8a03657e84384f4abfbbe160ccdac
+
+5c05a8c8b52304b07787844047c351e0
+
+1218a628712d818a6f89b956471f80f9
+
+075c5a04c48610fda0fd9d52a44ff2fc
+
+bedd6b288a907b6d247930797960c615
+
+2c4bfca07aab30a50846ecee0e7cd87b
+
+71f303ec49b1a787dbb7a3932647c0bf
+
+86a9bb068e75917a0223f564bdae85dd
+c20b82bff2d6e308f4a3a3f59a7e772a
+
+dba8d9bc35cccf33d5f4fbb47181e25b
+
+a115baeb98f90dc479c1e0b3173ab524
+
+0b1f4490ef38f74879df5debb08db9d7
+bae52d9e4cedd5fc1272b36dadb582dd
+
+12573e605de461dd35cad53511e45b40
+
+a4df17d9c01fd7fa245a1be527f16171
+121a1732081d9cd39bd2ebe51a4b7301
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+1bcbcdef3d0171b018c30f15123dfd2f
+f57917ca3d5a9ea247cd37739560d3b8
+8801217207576aec7d3c3ed8be0fdfa3
+
+51cbc30a1519aef19461cfa9404a9754
+e92c710fdba4fbd21b79dd01aeaa5409
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+88d5a50f42992eb1f9bb519b62ee83be
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+6e6976e9c85b252e3f149c2fa672c34a
+461303e2c4d16cd7806fc58beabbb8ba
+c4c9bdd47ee05028cb84873da0ebf2b5
+2c953c12d2eb6ea958b7f3045ecf8e81
+a4534c7663a38642ae3cd872537f830a
+6c0ea1c6ff420564dace167bfecec31f
+c6e6f73458416103119a163d15449367
+409f0bd5b31a0822622548a0cf939dc4
+56db3d93b79faca4b238cd55a4347f1a
+597ef719227b227457e351a0ffa89a48
+e92c710fdba4fbd21b79dd01aeaa5409
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+14e10f39500c2f51dc427c5ebee1de4c
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+70f9005257fd191f70067e331c1783a8
+bb7258b757e6a3ffbdc4544780e61a2e
+8d294d3c8a4d3c58b7805fdb6a2bdfd5
+5323d70afc952f567dcdeb6b84d65d7e
+c4c9bdd47ee05028cb84873da0ebf2b5
+b7591ccc032185dc1afb5bea0966018c
+18965b65df2ca4ea51f010f3b9ab53de
+9d0d448beae05280350dd30e73e2ebd1
+99696897fcf3da4b374fbc898b381a55
+
+bb7258b757e6a3ffbdc4544780e61a2e
+20475ae34d143fcd21a8a97cf44129ca
+c4c9bdd47ee05028cb84873da0ebf2b5
+4ba9111919e8c8d5c2c87eb3081db7ca
+78f82f2d08f318670ed6dc89837027bf
+4e138996bd2a9dc16a7dbcc620e53186
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+c0dbf8818c005f4395027889724f4905
+9b3295442c0ecd417c8ad36691e1db39
+621ad25933f73973c6f53f4193a222d4
+eb3be738c022a5331000714401e88e04
+e92c710fdba4fbd21b79dd01aeaa5409
+d1fe4dae1118fe43410f233c92f0438e
+9d9745793ea808834d7de26d55c88e2e
+a93ff808c201ae6ff252b261235edcef
+b14df87e07feeb5c26391d2bcfacad68
+60b7e60abe36283f649d797cd5aebf76
+e92c710fdba4fbd21b79dd01aeaa5409
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+26c46a3cfa9087b1df461018dab24020
+0a0518ad24c727a140e66daa36538e2d
+d4ff5a0b05cc260f1298ececb8959f8a
+421f7b590d517e47f1cb6fc703d5fc42
+71839a8733bf071852704f46129632c1
+24635c17c97cfa630f5846dc32f203c3
+cc678aa62204f652635f1452ca4f37ec
+a9292bce656b80cd45250912324988ad
+5c97ebf402a5de5679325e68b681c470
+307bd7b3d3d306764ee33c1d326f8958
+b8dc2e25ef8688f35ec7d8b4139937ae
+4d4a03b16644c5861be682741122de5b
+
+439dcbb08ae8e13604b1efbb26d29b8d
+6b99116713b4f547be1b941809876fc0
+d197c497cb27d1f7b9d63864408ffad8
+10f90c5092c5d56772aada7dc51e574a
+f3ab6fb7a6e22901e78281aae23bcc4b
+1032a341cd24bff0da56ef194af15967
+cbb184dd8e05c9709e5dcaedaa0495cf
+b0de1871a56daaca044d1521fbb45972
+dee7f760f8640a9de661a142f299e6aa
+fb8790b48ecd4a14a778cfd0290af1a0
+a93ff808c201ae6ff252b261235edcef
+b14df87e07feeb5c26391d2bcfacad68
+ccde14e771c569d41a458d7cb61fe8d9
+e92c710fdba4fbd21b79dd01aeaa5409
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+1bb2c2d4cc6802b05d5d1e3577106651
+25a12089751a7df4681e48a9c89dcc71
+a2f20450e88e7d5904efaf8a618dc638
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+785dcc302c7318c18f42a8f6c3270d41
+8acf30ba9a09c2c18e0ff69603f998cd
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+26c46a3cfa9087b1df461018dab24020
+17cfa28b2ef10b579c4837c1ba18a535
+82a380f986fc1c547ee73582fb0b9852
+9d9745793ea808834d7de26d55c88e2e
+c06952a105d65f52066e061408344a52
+e92c710fdba4fbd21b79dd01aeaa5409
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+b7f3361d6b86ad4f8f8d1061bae16ffa
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+c460e63e1f59483eedbcbf07c4b75c74
+8bda11af93d0ab692137f96ed9e21ca9
+271866537262b9218d1a2ffe0874aea5
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+0bf53290b0e4635bf7e4305866877117
+a96bdf67d36e8b14bbdb1c3f98388f0f
+47907eb884056c25ba34ab66f87ac604
+f498ad9ebcaeec7ee3ab38eb46dfccd6
+b28552f338c9ba55d5cc04f27004e21d
+9d9745793ea808834d7de26d55c88e2e
+4fbd6db3ce1ca6a44fc67d6f06e639f7
+878606027c82a4877332777f6e219ceb
+cbb184dd8e05c9709e5dcaedaa0495cf
+d31f882cf2de3ff5347f8d3bd4a74e29
+048186b67f58e625ebf60c7f2c1d6c43
+cbb184dd8e05c9709e5dcaedaa0495cf
+68425e6c58a1ad889b3a038c3303aaee
+9c4b6800ea20b3d2ce5daa2707a6ab16
+
+6287494f021790805f8512af4523dca9
+ead61c21582b7ffd9e96b463e669ba61
+cf5939f09946e011e3355eebc6c92aeb
+476250029f358dac000ec7630201173b
+
+bb7258b757e6a3ffbdc4544780e61a2e
+7a3c46d5ea9faedddf14226433b377e0
+cdeeb440d0f23c1fdf3d63490134715b
+c4c9bdd47ee05028cb84873da0ebf2b5
+120bbb52f40c111a83ea09b398e4ec68
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+9ed57a7ff367b77b7a910eed4cf3a4a9
+8b1f41a28fb3dc3ede4a320d5fccba02
+36ffd66d649b463a56422924bba7368f
+7c19c7a206a9f5c5daf2c97d98910eb7
+81e75fb973caf6e1016fdbed66b1bb1e
+9d9745793ea808834d7de26d55c88e2e
+88d2ab191f0841c87054917a131e9e5d
+0cecb544ef496ca47cacfee1deef733d
+cbb184dd8e05c9709e5dcaedaa0495cf
+4d85429c2701b95c14f7f2fc7ad92288
+218b71ad051ba1dfbcc50e3f6ebb4b30
+9d9745793ea808834d7de26d55c88e2e
+4871ec01ba16294c638a551ba14a7e00
+497dc98fb57a0a5343ef17799479ccd3
+2145c1b6992c0d519ad223f91671329b
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+f5312d7a70280e9ddd9e8e53b3aa4d3c
+73a02b281c3fa92b8b1cf50e1cba0a27
+3640345ad379f2bf47863470989e129a
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+6181278a244c1b9848225a51797b143e
+68953fc1625f1cb914445b269b7818ff
+bb7258b757e6a3ffbdc4544780e61a2e
+3c77ff31249d60c4705dc82a1c600524
+dbbe9c4c529da2ec1e5b3367e7c870d6
+01f76c78d46efa9daafe39e4a3a1655f
+c4c9bdd47ee05028cb84873da0ebf2b5
+1475cf4bb330cda3aeef8efa79459c5e
+84d1bfee769141f4074ac472a641599b
+cbb184dd8e05c9709e5dcaedaa0495cf
+aefe050ddecdc22355c9c279ed7cb57e
+ff676283f0b2dcb85504741f4f441a12
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+386f31ef694d1077e51a2cbea417089b
+db99c1396383238503481d4d3bdd4f60
+a234b3d5ceab9d309e468ba3a1e20466
+a1ea092401f4011738024d91e0f30483
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+176454f32a40d07e073cb3da0ce3bd8e
+a4f32457d40a8d43a3ae7d6549315dc8
+9eb89e780f6579e7c115c808cba7d542
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+c64a1a566a4e4dc06b2c5aa6ebff6c54
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bc3e2eb74759413de123f045dafa8382
+6e26553797c8bdd9a0f8657f89993f93
+7690960d173f54fe7ad1e9a33ded2013
+85a44b58e8138a35a9231fd1802b3169
+5f4c2bb883dc9f92923d63404f716145
+98c91b45247aee3734c6f9efae2e12a8
+bcda1661253189dbbba98fb9877c8e52
+8168e782d6f267081e3e7f5df5c4e7e0
+d70d13812bcb9371088bc3f34d3ae5bf
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+f0ae5feb1576d9b1a0d9d5991ea8cbb8
+30d9c554f9ef587c496b496112bec8cc
+1c1fbf13b0ce188e829e10af8288d205
+4876e0a1bb04f5cdb94a17cfd8dc6bac
+6912088d3fa3083c8a7b367f2bebe164
+0487b883445a35eff56fa3caec43849b
+ebcd829f93e1ecc405041a1f74b2ced8
+4d3945bb3a886695eb91aba68683971c
+7f057255dfd7e3aaaad31708b08fb4cf
+221c292a8ab19c18ab9938544a00b5c0
+9b3fa5577900f6e9b4224b5e336d60a6
+80c494dacf86ec7779d0cdf90ac55244
+3f64d84bf09fd802c3af4190d07b7017
+1e9c9034e88bc759663787710cf9d03d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+07984110b2e01dafd22cf84f0dbad173
+efe7c25bba903b3d841de326c10394cb
+680f3f34f8c39734a829e04d49620834
+df87a092795d4bf62fb9e4d2f9ac75f0
+2145c1b6992c0d519ad223f91671329b
+749a099c818338e4cb987e3a00094605
+5f534d45db78f6389aa0dd0b9255824b
+bb7258b757e6a3ffbdc4544780e61a2e
+76f3869927f0651cb80c442209c54c26
+94d33595ba2f077138d80eaf69642cb2
+b49f657c149c016935239b2485769272
+c4c9bdd47ee05028cb84873da0ebf2b5
+afe6406a3789beeaa9cb640a52ac975d
+1dac83489e6c2c9085c4f5e534f1135b
+cbb184dd8e05c9709e5dcaedaa0495cf
+80dcfdf5fc3477fd8d6ba408cda324be
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+cda55bfcddf176de30293101e09ac804
+5d3cebd4eafae0144e0aa1a5ea9f154d
+9b8e163414a510833c86b27ad604d5c9
+9a3d08779b9772d4e5d4f4c90116257b
+cbb184dd8e05c9709e5dcaedaa0495cf
+53aa9e3d79078471a4f2e412e4e00fc7
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+dcd3fcae125c95fcf63e15625044071d
+b4e2e685cebbb2b44eae4697935213b1
+6e83b5229d715e77bf2f32f6bb18f1bc
+12a1312a6cd6e0ffc36c24508ba70f2d
+3af0baf7ec894ab1fe19a712103becfa
+7b1f6a41390ff245e123076961506acc
+9d9745793ea808834d7de26d55c88e2e
+03db238873282e0ee71babbd3f59da02
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+4e3cc850b496412c6e0c45ae848386b5
+dfdc283ad0875986be222a714d0746f8
+c0c97e22db5055def551d1cef15fb251
+
+670ce683f9cea2dd88b33d61182518c9
+7ea41f50703ad24b1b0434d00b865d2e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+6a7aae4b6b3a81784edfb9662e911dec
+099c418ed1d859d57d5f22eecea1bb49
+88e03b96ad748c1abdab4857bb41fe37
+0f37052aed68f8c8676c93f9fdaf0168
+25bc216840b1a5dce6e20b9072004a24
+f610a0fdc01eaffd8def9c3762737bb6
+13144ed415866c17b17e74578d41872f
+25bc216840b1a5dce6e20b9072004a24
+05f2006b9a5b1a1bdfc09605f048dc7e
+5d922a6618be23ccf71605acd7b48385
+a1ea092401f4011738024d91e0f30483
+8c3a38522d954f68e7c9f000bec5202f
+7a48b7f0746dfdaf6a26a45c5b73f64a
+0aec2e86d1177eaa3987181b7c195b9c
+863b63b8d25ae0a331f38a689c1a33d5
+14a23b78423cfeb0864052c05b7aaa55
+f498ad9ebcaeec7ee3ab38eb46dfccd6
+0edf77202c25d16f1259203a0cd119ac
+b28552f338c9ba55d5cc04f27004e21d
+9d9745793ea808834d7de26d55c88e2e
+5d70f6bfaed748bd3b3d59eeac72383e
+13512e30ad587af8ba19e474195bb161
+cbb184dd8e05c9709e5dcaedaa0495cf
+9eb89e780f6579e7c115c808cba7d542
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+f58119bcf365cd2d599f152e08d1167a
+0ef49818acdcb004bd2dbfa821ada7d6
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+84d1bfee769141f4074ac472a641599b
+ee829b3541ffb3ab03c70ec0fc940318
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+0136a0307d7c1d162556d88f63888793
+d60da58ff89a6a87a99a4c4ef163a227
+a1ea092401f4011738024d91e0f30483
+8a6c141756d58ae351cd56242e5f3361
+258abc49545d2f057577a139ba433d09
+9eb89e780f6579e7c115c808cba7d542
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+6427fb1814db93acdfbd31b5430958e4
+25bc216840b1a5dce6e20b9072004a24
+d0afbf0efc08f540b6511654b3bd1ba5
+9c4b6800ea20b3d2ce5daa2707a6ab16
+68425e6c58a1ad889b3a038c3303aaee
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+b6fcf6551cda6104d7ff6491d430b3ad
+c64f654bf53c9eeceb52e196d0159137
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+53aa9e3d79078471a4f2e412e4e00fc7
+0a4eb4adebdfc62ec18259c799a139fa
+35a65d04590ecdef00d4cffa8585d73d
+1f3fe3a2e39e4f14bacaaaf0dbb98b48
+9d9745793ea808834d7de26d55c88e2e
+41d2c51521ea8acdeb580b8e671fb390
+cbb184dd8e05c9709e5dcaedaa0495cf
+f498ad9ebcaeec7ee3ab38eb46dfccd6
+a412243fd796428a7e146cd550d6098b
+9d9745793ea808834d7de26d55c88e2e
+954f7548f2ad8a8ea77db03632694073
+cbb184dd8e05c9709e5dcaedaa0495cf
+8b1f41a28fb3dc3ede4a320d5fccba02
+ef6e11457e61fde6da3ab59bba2624f1
+9d9745793ea808834d7de26d55c88e2e
+0672a689b289e739515a9fad13c1b3d8
+cbb184dd8e05c9709e5dcaedaa0495cf
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+5cdb3f1b94191d5204cd1c2948b3a08b
+d18137e6417294722324094c384a79cc
+ece63a0c9dbe21b21ee3d628acf0cdd1
+1da45c2e9c500d0e6d42517a441a8c36
+c2bef11d43d42a908d638b8e21336173
+5080b8d894c6d1aebe8afff84d49efc3
+a1b82eaad1ef78d3d23d6b83cd072887
+a666971f12ec91fcfaed9a4417ccadff
+ba20f72dc7b17d71f523166b88114413
+f0df3030083916f716ac8be1bde858ed
+8e29993aad7fdbd8562dd39b0c9b307c
+f970d5f12398bcd3e2ca41463bb173b4
+14ac2fc33ae122a2f19de4f7996a264a
+5510b250c54130ec9ce4a55b27763e47
+e92c710fdba4fbd21b79dd01aeaa5409
+cbb184dd8e05c9709e5dcaedaa0495cf
+c0c97e22db5055def551d1cef15fb251
+bb4145ffc7e3d69dc4605efdd2cd2cda
+cce250e67a8d561251be4257d951a948
+c2bef11d43d42a908d638b8e21336173
+5de1fb2043c23579a2c9479dab404870
+d7a7f35f7fcc5db79afa5d2593b15cee
+14a23b78423cfeb0864052c05b7aaa55
+c2bef11d43d42a908d638b8e21336173
+412138a37bdf6ce2d1df8e8fc00c803b
+c5c14e1f47c33e48299f2e2b6d139fe9
+949f6594f44c26b0442205d925427af5
+c2bef11d43d42a908d638b8e21336173
+fc2d24aba24c20ff8dcfed488e9ff7db
+0edf77202c25d16f1259203a0cd119ac
+461797d724f11df79112226d8274b3ff
+c2bef11d43d42a908d638b8e21336173
+1adf30f604f1edda6408256646bf612a
+98abcf29a2083551fa14cda53b0822b4
+c2bef11d43d42a908d638b8e21336173
+d7a5b5ac10efeb88d832e7791e7ab539
+cf98b48babd6e398e39b4fcfbb02d211
+c2bef11d43d42a908d638b8e21336173
+2fcbc1d8c079055c88de8c64ee33e507
+bb04a6bfd5137d78fa0f85d6d8cdfcb5
+c2bef11d43d42a908d638b8e21336173
+de735fadc4b1b96d6039f920cc08b891
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+dbe68ff43b9a926e3b9d6d7a924b4fc3
+82401b3437c31eb6ed21745bb63198a1
+b039fd5bb8abfa1a58bbc7436abd709d
+3a2dafa9a0ee1255d03f36902283ea77
+ce36ff7088a8cf4244246a6054ab2122
+cbb184dd8e05c9709e5dcaedaa0495cf
+c0c97e22db5055def551d1cef15fb251
+3602dd3fa19b1d2cb3b4260d241608bd
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+6b606831e2e7b11d717f4be1420b2ba1
+ce0b9ed58983f473944695571af6e1e2
+c4c9bdd47ee05028cb84873da0ebf2b5
+46729840f251f7894cd364f24331b84f
+c9555b858aecfc4d425e8e7304ac4126
+0e11fd7f30a84df2d1876eae98d36222
+834fd6e82c7384671f809a45f3a6d032
+1b70ed50ee2753da1e3c5d2280c671b9
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+9897257a5d9971182f7523c10794e54d
+6521ef6c3b386157950fff35a095f6f5
+84d1bfee769141f4074ac472a641599b
+
+1a4fc88f54545ff3729794ea2d9961f2
+e92c710fdba4fbd21b79dd01aeaa5409
+34fbf7070f741fb5335a8986ff5e83ef
+65917f2412524ac8582ee3b4992ff27a
+26f7b680b4001ef5d0420894a16aeec1
+51b54610d536b5b1612e4c7fb113c80a
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5390fd25c52090086a2185d0f583429c
+b89325992709d6c3f3cfd293dcce4f3a
+2ca91b5160c948115f05205c7ef8f88b
+399bed264e50d58b2704bbc2e84d5434
+4c450afc9d8aeeb3c1e4c54523b0c9d1
+b6cea08cf2736eabd1f5b47a46953427
+9d9745793ea808834d7de26d55c88e2e
+5d1845ea38b2629a50e13c2cced78b89
+cbb184dd8e05c9709e5dcaedaa0495cf
+c7e8e30e53cae10455bfcc3f60f62a31
+b5c1c03f949386c2d1af1f9c4c89f0eb
+7a2efe7f61a23eb6a5e39ffade8f06d9
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+91dfbf64cf70f763370f533c37048222
+b90f46eebe7237a7bd8e16fb8e2ff1d2
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+f70cc4b7be96e7f1b3225e4fcd4379bf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1815eed47de67b5b92502aa2d76b6f6c
+e9e2ef31efe6ec4872075c9b16881210
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e0a17f4b74e5e6c5e2fc40ab1ea9d05f
+bb7258b757e6a3ffbdc4544780e61a2e
+da3792a86b17455c92ea4fe051eb85be
+fcb31a2c14a6da5c71aa148708e41d55
+c4c9bdd47ee05028cb84873da0ebf2b5
+1475cf4bb330cda3aeef8efa79459c5e
+84d1bfee769141f4074ac472a641599b
+cbb184dd8e05c9709e5dcaedaa0495cf
+c7113cebfc6e1accf202986c0ea5ba46
+551ebd7516cf1f36b288bb02c4a56d55
+eb0d8c4b7a1db41d8d7b0e9cfc1d1a7e
+24bbd78857bc4c6cf0d67b9b382575ed
+56cd83a5e93d93959fe2d8ed51a5ff29
+120bbb52f40c111a83ea09b398e4ec68
+d1471bc3ebad5b3b0080315b01e706b4
+17b5fa05681116df2426cd63e6e3753b
+9d9745793ea808834d7de26d55c88e2e
+4334cf316f91a304c0694a5823df4ee5
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+bb7258b757e6a3ffbdc4544780e61a2e
+ff34120b02faf7dafc51f84ee9f3a7d6
+2a45a2c6e8971b273e759d8b5c489acd
+b97cb45498da07c762bf660d4ebb8eb1
+c4c9bdd47ee05028cb84873da0ebf2b5
+2032f0525fdb4179a7fd59e83dc6b73c
+8849df8a3da2a061642f12697f422c2f
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+39cb43bda4c7ee95ab030b15c9db81a0
+93e90cff05bbd19e2a689d07adec86e3
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+29373cc18a86f842673ed9f4060c5947
+81883cee3fcb2f0c6d0b10d583ad2fa1
+0b44386673ee2e180d7bb7bc1fb21972
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+193d4ce61acb9908abf52a5e9813dbcf
+6f642f98ef5e96f30eb4a6f1eff29113
+eb53fdad7e074e9a118f3bfd505abada
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5af8f0f183d1431c1a775dd1bbca3629
+6b7a7d949d05c7262eed8b1691cec976
+37f2dde31908df50a3159c1b2ca04326
+6b29b6a910933a40718567606f91c7ee
+928bd2dcb3e37385ce303348a409fd88
+9d9745793ea808834d7de26d55c88e2e
+8ceb0c9269e6c7f5f2a9e3fe81a7b2c5
+928bd2dcb3e37385ce303348a409fd88
+cbb184dd8e05c9709e5dcaedaa0495cf
+0e5dbcffbfe1006015f23c21b54f5310
+6704a3ea051bfaa1a05206e66fa2162f
+ece7eb9b87207207110a086d137f784e
+3ea71e3f65f2019490c9ce037b9f460e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+afe5a9d6e74712a9ea47391702debbb5
+bb7258b757e6a3ffbdc4544780e61a2e
+8451f6955e081ad926bf9b708a9906bc
+c4c9bdd47ee05028cb84873da0ebf2b5
+0ea2ec8eb98421d2b3300756759fb57a
+540402954bd7e7b318a3eb2484bd7ad5
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+c221b35e6c296be383860fefedaf2960
+6a25dc14c4d2a44e5d8611028440c735
+e1c2b167c404fab9f6c984b087ecb5cd
+ece7eb9b87207207110a086d137f784e
+92870b256daa37ed0c51d23175c54e0c
+a74440cc7ef858371594975fb1580871
+6f642f98ef5e96f30eb4a6f1eff29113
+a64373d23fa07feab5642ebb6528df5a
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5279a7f0b9ef4982fe3525322544b4f9
+4300f80068fabd3552a487399ed92727
+5a4702ff1b76cddc93c631850e853224
+47c32aaf84c84d33b0ea3c852250fe1d
+5f75cd74c5f7b63955a5dcb5c6e24c01
+6c219d7a0d8b87f3ff6a0bb15dc9da24
+7292c561a5359443fa5f56a8cec43554
+56647b285d415764bb90ad737cf52860
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+3fb7effddb93c753850b343bc2cab548
+b439be00995ec99daa3f1e274fab423b
+
+0254377e60542ddc6b623a99be18289c
+256c8e51ba557e99196f5f32a54bab56
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+03ec380201f60c1f252ba82788dbf9cc
+0b9cdcefc8dfa7d50fc53e8e51498f33
+f3369cb849aff35eb010322e919d6da2
+7b69ea8cfb40a1b28bb6bc73e0cd45e9
+a3f80dad08f80c5ad390ee2babe05a68
+9491a6a06bd75eb3a75035526d324b32
+7303998ca83d0ad9500fed3335c9446b
+9744bda3876085edf160cc9008757e30
+92be21acfb17654fe3065732c7417191
+4571cbcb4f28af255565bd0d73d6213c
+207e7869a03cbc1713d777f0baf8ed60
+3e7643a4610c7115ef8de23e1cfda9d8
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+8402c237086c416d6ef8ee05a0e366c6
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+c7952dd4b3099d332e9abfd4e5e3b73d
+54968fdb7554ee3663e936d6f30a8caf
+aa762cf43cc988d2a642933a7ac89231
+811a5f90ec1c5714fdc982dce8c6b79d
+843754c15c561e3df250bf1d99424521
+5e7926db6283be87f8bb304fdce59289
+aebd92d64f7500673308c93cc819b899
+9f3e0e13c655cea0bdc7d8572268a7db
+7aa81c6c7c3b7acf598d1f2a3dada702
+9d9745793ea808834d7de26d55c88e2e
+3bab5a136e6ecde271edb1bf8b83e91c
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+c0c97e22db5055def551d1cef15fb251
+
+a0342403e51435e80b38c76f5d708cca
+7d3cc874eeaef1046c2c39d8c21cc22b
+7aa81c6c7c3b7acf598d1f2a3dada702
+98b68022823eba0bc663847cdf242dc3
+3f21013f853cdc76fb4a19d88b29898d
+17a4cdc160f52d6b095d4263f4de6a7e
+3bab5a136e6ecde271edb1bf8b83e91c
+b75690cb10169df14b79ff333492e8bd
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b6e154ca0afd17af5df524ee0be6f5bd
+22d3d6e2852bd11259909d0d71f328a5
+5b3093cc01d7565973062c99d73b3295
+057d265746ae9672afe5f9ff6338071d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+f70bdf76bd223e58f339768dd43e8dca
+b6517ead467dcf0b46b9eeb84d9267c4
+8bec77a1f214d9c795d7430e98a2d37c
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+cfde1c2eb06588f3c95e8ffc9e2f7f64
+74b503fa2e3b9d7388f04d589e492fab
+9d9745793ea808834d7de26d55c88e2e
+18c95687c51bdee5ee270c2910a288cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+8accb97080dbb174cf7ec7d71a112d91
+e3b16d4c79e4b02653fc43c6ee71eabc
+4ad5c8c1df1c294902a42be09d1a66b1
+9d9745793ea808834d7de26d55c88e2e
+c3669a8a7e0d29148c9b08971c2210b7
+9ca5dc8df4061251b93c3af82b1090ee
+4a8a11786d027a7d99b713e174032b61
+cbb184dd8e05c9709e5dcaedaa0495cf
+4fbd6db3ce1ca6a44fc67d6f06e639f7
+bba56c75e1837bc11b89155b92989436
+ffd853cf0fc570642d8724c864d87a53
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+ac6bb5e70a538fe4d54def303e09164f
+15e452dc6cde77560ae03bd08d028194
+f498ad9ebcaeec7ee3ab38eb46dfccd6
+450fcdaba8342b7e53be3cdfa7a88f14
+a0c53f3aabaf62c4cb75e1c242209f2a
+c4ef3fe0fdaffe76789b364409263ac8
+e1c2b167c404fab9f6c984b087ecb5cd
+d8045fa815437382278c76c19fde314a
+fc3b52f177ca123ceb2c4eea0ec9001e
+eb350a14b672484fd0905c6f3d2f1f08
+4444f2b481997dedcce15462ae397dc6
+9d9745793ea808834d7de26d55c88e2e
+1532772b7b301a755416eeef235d4a29
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+d4b7e57d5eafcee10b9b1ac3f916b856
+9d9745793ea808834d7de26d55c88e2e
+cf01b4aae406d3ab86ba59705a37732d
+cbb184dd8e05c9709e5dcaedaa0495cf
+defd66bba794c67f708f088378d96e15
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+7dfaa86b08abba4f08575428cd10b2a0
+0edf77202c25d16f1259203a0cd119ac
+ea243f8709ea24b1b483443f4940d190
+ecd409671fd480e629fb699dea909440
+bb7258b757e6a3ffbdc4544780e61a2e
+bc014f395eef078af269b475152c8f74
+67479a08025f6afa93e10419a83ed9a0
+24114c471073bc2972db586ec8b26e51
+40d5c2cffbeb354437167413fd5567d3
+4612cc415815e253504a46526ce66e61
+c4c9bdd47ee05028cb84873da0ebf2b5
+6b78f91a771ea4553ee06f532f1575d2
+cbb184dd8e05c9709e5dcaedaa0495cf
+6623cd6b385334f973cbf93c0b1bcf46
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+7098f4cc061e47b97695210627054df2
+bb7258b757e6a3ffbdc4544780e61a2e
+8f0634dbb11fb379430900785c967514
+a8282a0d2a7db7f9cb663463bfe66b0f
+afad71ba934aeea4b8d4b0f627bba70e
+c4c9bdd47ee05028cb84873da0ebf2b5
+1475cf4bb330cda3aeef8efa79459c5e
+84d1bfee769141f4074ac472a641599b
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+c7113cebfc6e1accf202986c0ea5ba46
+d0582254ac2ca90b04d6442d5b63243f
+7906b084ba7d834673f84ecc636069da
+d0075e95fb20e9b2c1f8c80a6116e317
+917b0570178b6cce58c82ee035cfa9cf
+77cd371371f078d49ead219cb830ac5c
+597edb4135d647a9b93230571d788b58
+447d565a0a51b8edfa91632186ea6fb7
+757ecdf9538b95747ca98ce5b721881d
+50f0e6af6ad4843b0e428b62df2fce15
+88957260617a58e33a25dcc96a9fc031
+02e798863d03d5b52bae8f509b2d251c
+f5f02fae3c218a6ef894bccc28488ed8
+131354fe61ce68ede0d9ce78c6fd9ad2
+9d9745793ea808834d7de26d55c88e2e
+bb7258b757e6a3ffbdc4544780e61a2e
+ff34120b02faf7dafc51f84ee9f3a7d6
+2a45a2c6e8971b273e759d8b5c489acd
+b97cb45498da07c762bf660d4ebb8eb1
+c4c9bdd47ee05028cb84873da0ebf2b5
+a01b40890f358739d91853988924eee0
+00ec35c840b7c8faeb23fb93ee393031
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+596740f822fca52d725f745aff954ce5
+2ed81561486717df9d96b7edd2a3573b
+43b7cc88aecc6cf41411ff1a82fc4d8d
+be6c1fc9b5772da145c45ac1bdf9e5b8
+322c8271fcf51f7c22923fd121073349
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+0a69e45fc0dbbc7495f1e9734d01c4b7
+5ab8253f588125bb7bb47aec91e6ef1d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e7cd85d76ccfc8699d60ab527db96c46
+5a8afffc2420564949bc69c1d6c52645
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�oS�o523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+dc04c2a6eae79c5d3b430d0734f9bc18
+
+ee56059c63e86bc5ee3accf1e6caab46
+0275696f0ee3169423f79ecc971e6395
+
+a98d49638098b960f6f1b0449b2931a9
+
+
+740af85a7cf01a113d96982f40915469
+08af5be2679df8ebc75eb912557f1c09
+5ddabb9d3527b879abb19fdd03dbbd13
+133432c38fadaa74f8a0feb7cb3f9480
+64fe68ed640041b529182bc619efac80
+
+168147b81ed53892939032dc2da0ab6e
+
+42820f8051b067b218f3c5fd568da9b8
+
+65ede4f9048cf09d46ec35f5340020df
+e31f2f89504f6e03556e5ebf0970fb27
+e83a6e02da364243ad24610836a3aa0a
+75a82c8619e02835f26662c8001eff79
+ab6a4fd09bb25a882ca576a224e2086c
+5c2b4c7509ad8b4d5193053661823593
+3db1a1389cbfddf14f1492b6aab487f5
+fe6e25a8a656f6d5c5f1247cc659e66f
+e0f8df8e66bd9ce7b7ef91cf74b32156
+2732c516fce2d069e4d60e40e5b68200
+97c83c26354e905609d51ec2969b9891
+a28dd93c51206a1ab3e655ffb1f2e863
+fc031b237ff9733c573698c066bc1dd2
+
+e09044c44459b5f92a050c294603d28f
+333aa7835640b36ca97bd17c7d593f18
+fc66c5ee991a775f2e01c82c6adac59c
+13bb1a48dbf3941ce6eb1a1b00d5e77a
+b65fb5ae1784add2549bfd4d1c0a1bd7
+
+73ef38a552cd26dfa623f8e8716d48b9
+
+277a014682eeb4651fd9ccf1c4c7a9da
+
+35fd601ae81d55f188a5e5435a238e5f
+
+6c9c0d3db89c16d36bf3280f78341907
+
+0d326a488502dada2562b89e374a0135
+
+3d341e504ad1a1e3089aa147b972c322
+
+36bb112e17717fa78860045fa6f1729e
+2c953c12d2eb6ea958b7f3045ecf8e81
+9e56268d936eb779a2f6db7520c2e26c
+4e5ce6a97ec3081f696d5899bf93f085
+eb163060b0dad6bb7d980bcb1cf85d19
+8ebc81ebaf004e87b5e9ea5ac94cec5e
+cbb184dd8e05c9709e5dcaedaa0495cf
+2145c1b6992c0d519ad223f91671329b
+
+2fc3b2581f8160a9fac6c26df317a47a
+2c953c12d2eb6ea958b7f3045ecf8e81
+9e56268d936eb779a2f6db7520c2e26c
+ee92f53fcf289316afa216c6c511c0f9
+9192a834d6137014adadb7f67a133a12
+db04423a07673855888357b1e9764f76
+44e9c8fe4e7cb24c4e275f4286bb2b1e
+e49f339825f1025077442ba582ae0e50
+b85abcb4076f873598656466bc3cfceb
+bae3b8939afdeb3c9e80867c6b384be1
+ab3cad9499288b995da7b55dc0e45b04
+e49f339825f1025077442ba582ae0e50
+1ba0fb0284efb034e4d6cea10f422f23
+bae3b8939afdeb3c9e80867c6b384be1
+cbb184dd8e05c9709e5dcaedaa0495cf
+9c7d8f580f693561f45855beadad6550
+1b2c96cd70acd9c2f0336e8a5c50eb2d
+a7ad98c6319bb363a67e2fb3461310d5
+ea2959e38fc7cf635a305ab4dcf21e63
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+34b845b2df61939e4b105f3d0fed5192
+e49f339825f1025077442ba582ae0e50
+b85abcb4076f873598656466bc3cfceb
+bae3b8939afdeb3c9e80867c6b384be1
+f9965b2d98ff2b7f362264e55e88f2fb
+e49f339825f1025077442ba582ae0e50
+1ba0fb0284efb034e4d6cea10f422f23
+bae3b8939afdeb3c9e80867c6b384be1
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+df4a57ce823785d91e5574a777361ef9
+ac640f82d17cd7b6844592d074b94621
+8ebc81ebaf004e87b5e9ea5ac94cec5e
+fbb7a8ed03329581769ffe59ce02e2e3
+2fd14275eb3f7bffc2588e6fc002993a
+3f4466ca942156441916498992d969b1
+644ce93d20cea337ee3539681fe61fd0
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+2145c1b6992c0d519ad223f91671329b
+
+7b897be4ca1679b688a87188b4d20da4
+2c953c12d2eb6ea958b7f3045ecf8e81
+9e56268d936eb779a2f6db7520c2e26c
+c838553183fcf485ec4d841fa69e6571
+030d3c362eb525967e3889147529975e
+b57aaf7bf5f2e3b125d28448999d0d18
+7bd90be67d44c82c246384bc3e73444b
+cac41046a76d8ecc11be5aa8b12a2008
+06aeba1f554b31ab173a7e2524da7c90
+d69e316308adf48e3b44406a4aa146ff
+cbb184dd8e05c9709e5dcaedaa0495cf
+3f64e1381635da217a458d36be134053
+87dfa5bd2dbf4bc34c896f85a88d65e0
+6714a507517f69a23d9ae1222907e89c
+eb163060b0dad6bb7d980bcb1cf85d19
+6dc7bea3d167c06f45f24805a82ed6b1
+b577a4a920ff932c36db7bfb5e33bc4f
+ca769b31a15a1498d957ca9925133176
+ea2959e38fc7cf635a305ab4dcf21e63
+9d9745793ea808834d7de26d55c88e2e
+ca805a97c4299eea0599780725b98bbc
+ea2959e38fc7cf635a305ab4dcf21e63
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+a0c45ad86fe6427d7a44cab8e4b4a929
+8ebc81ebaf004e87b5e9ea5ac94cec5e
+cbb184dd8e05c9709e5dcaedaa0495cf
+2145c1b6992c0d519ad223f91671329b
+
+112f273ae1da90955963149ae52914b9
+2c953c12d2eb6ea958b7f3045ecf8e81
+9e56268d936eb779a2f6db7520c2e26c
+a7ad98c6319bb363a67e2fb3461310d5
+ef400ae7f030406812ca489185bc6c57
+c381a649a412eecebe62e5a5ab8807bf
+9d9745793ea808834d7de26d55c88e2e
+5c680826f94b07acd6fb650401163b9d
+cbb184dd8e05c9709e5dcaedaa0495cf
+ea2959e38fc7cf635a305ab4dcf21e63
+8ebc81ebaf004e87b5e9ea5ac94cec5e
+cbb184dd8e05c9709e5dcaedaa0495cf
+2145c1b6992c0d519ad223f91671329b
+
+0892aaeb523aa36acd6060343d462439
+bf6465e71fded9a94047e90a249b4f4b
+16d6e3d503a855c9e8235740763a268f
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+ebb198dc447ad6686a892d86bd958c8a
+9ae875fdbf2632a5368f4ea6f9aadb2b
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+80f7e1ae2249b57a3237e884c4d28c44
+b6e693d04c643446fa305197690dd8d3
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+57e69beb757d20b6d1c3adbd3ea86fb0
+d09e20ac6460333b60c2e8520a107e45
+e8c9a47498767bb558a0dc05ec588457
+857f429a82d8106f6277f87d210950e7
+d88bdd551b73c9475611fad1ee8c3424
+a5dbef0aeb0763a9176357e348e77246
+
+0b297f109bf1cec247a0bceb55f2213c
+f3a28505f2c0b68a3ce59d33dafee185
+c5bdf59df174f8191091ee83c58418b8
+7a2d8d1982c4cea463a2f79a21937fb5
+
+e582816318e80914e31ae60cbf74d923
+b801090e142623b82856873e1ddc8416
+e260ebe853876c7fd27b5dd3a28055f6
+adbd00e6c15e0086cd326836cefed2c7
+a5723db320054a74a44ca3e001cbdc6c
+ec5b703d62c6f1efd0e4884e5861aa88
+47bb649ef3974b2c5cd4ac8385b6b2fa
+
+c254b021e1a2e7c3a95e5980019d0fc6
+f8556d3ea1411dbd2d443a2d68e80b95
+de41585405e9c5521be575ef98788221
+90bd2c1afe41979e616f03b8bbad011f
+0dfefde7b1ec85e5c0c0f1118740c4e3
+6b12dbbd14c73ae5eb64be5f3fb9ac2a
+
+eff15fff802f9c65d0db2a3b83f9685f
+eb163060b0dad6bb7d980bcb1cf85d19
+eb8e19c5c419d4631729d35762752350
+ea2959e38fc7cf635a305ab4dcf21e63
+
+8585f47a13d88e07a6b2d5b03c42fb2a
+
+94eaeb95fd0dacbda754fcd5ff631fe0
+eead6eb3fba57dd270f22ef6c8c0feeb
+
+1a3ddcb927776cfa899532bb55543406
+
+e2f67d79fbd4952b454065edcb4a0955
+14206dc8365f9d61e22a1f328174537b
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+bb62c8b5b2c90ec6092a093b4bcb10dc
+e944cdd3c42ce8515285c5f9080bd56f
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+7c5dca17a3d60a6fdb744a5399ced490
+7864f7ec032d291567899b5bd76c67e0
+25b044e5412ead4848dc7c921ea2bfa8
+396c68355ee3db061f606c26b008401b
+1308da004d710ceea28c91c4be70d974
+9b5a78206ef0e0b04a38acf41f36b185
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+34ec0a01b420376062ce5451da927987
+057713d6b4d88a6be38dd65830240da7
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+0bbbcf7561d5fc95c8f7db947198047f
+3389dae361af79b04c9c8e7057f60cc6
+4531473a447c8595d72b40be8ccc2b71
+c4c9bdd47ee05028cb84873da0ebf2b5
+d9db8c500c8f088c4e2dc2762b329070
+1bd94b66653894e5e3bedc9670e4d0f3
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+e99db0e69eefa5067333d24342bd6446
+3389dae361af79b04c9c8e7057f60cc6
+c0915f0b3d6e8d75424300fe42afa304
+c4c9bdd47ee05028cb84873da0ebf2b5
+8847c5d56074aacaa079ac94322d3265
+9192a834d6137014adadb7f67a133a12
+68bb485bd7dbed5b7b35f0d758b62997
+718073d6961d001e01829b3fe4ac4be6
+621625e762f8d06e5f116c1ff016f9cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+e99db0e69eefa5067333d24342bd6446
+3389dae361af79b04c9c8e7057f60cc6
+0b7a77de9d34057d8a5f3022489a995f
+fc1864cbb010b4a5004af4291c5089a5
+23b47372e96f2552843435b50a4cef3c
+b7e9fb4fb542a0ba9a5087f88ace1090
+fb8aee645a7ea4711f04b18828975793
+c4c9bdd47ee05028cb84873da0ebf2b5
+0b61c3e6941bc68c1f1761b12bac1041
+02e0000a1c88900723af55b81d79abc2
+cb01ad46e8fe2f71b42848db7cc89fb9
+8ba70d5a65f9f6ca9742438b753d91fb
+7a30fde3bc57208c9fd3f58d909569a4
+d86d9ffc3199c63805220a9a147657e9
+f10bccfce1c8b62850f03b41e18a0e87
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+30e0f3a469912e4ccc8dd43333690608
+3389dae361af79b04c9c8e7057f60cc6
+abea62e400a09fd34cca586ed605f644
+c4c9bdd47ee05028cb84873da0ebf2b5
+75a49deeeb62b07155a737e018e760a7
+46854ac0ce26a380408505c61f39dbb4
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+953dbe0ad57e94a94b98ef8dedd872d1
+3389dae361af79b04c9c8e7057f60cc6
+0b7a77de9d34057d8a5f3022489a995f
+c4c9bdd47ee05028cb84873da0ebf2b5
+8962bb86c087a8b1377083240ab9eaa4
+5de74650dbc8319601a9f5f2f3982617
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+accdc9ccacec61758d2925f9500eb98a
+eb163060b0dad6bb7d980bcb1cf85d19
+8ebc81ebaf004e87b5e9ea5ac94cec5e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+b8a47df154628eb9da2e24e34eecc104
+3389dae361af79b04c9c8e7057f60cc6
+93c574b32b9bd651ebe1a8e60f92d8f6
+c4c9bdd47ee05028cb84873da0ebf2b5
+522de4d3b67bd279315b34cfe0c082e6
+8b8c2941fb00bf58fd3d68c7c3e256df
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+286af255dcb1f00abb0271476070debe
+3389dae361af79b04c9c8e7057f60cc6
+b76b78bde2504b463de34d7aa00670f5
+c4c9bdd47ee05028cb84873da0ebf2b5
+12b9a64377b8c9e4a0355228dae9e348
+2a0daad37a4282f9ee64ce50f321430b
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+295aa7951c08a7936e92e81c55c19b68
+eb163060b0dad6bb7d980bcb1cf85d19
+8ebc81ebaf004e87b5e9ea5ac94cec5e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+e6471b3cb97ba54b9041ee19b8a42e23
+3389dae361af79b04c9c8e7057f60cc6
+9e454486168dc7459431e87103ed994c
+c4c9bdd47ee05028cb84873da0ebf2b5
+98ffdc974fd5f4695870bd4fa809f221
+c3f7b873bdbb1891d18e53dccaf70679
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+017a152f039dc428d6146d40afc8235a
+3389dae361af79b04c9c8e7057f60cc6
+462dabde04f488941504c35dfc0f2a6d
+c4c9bdd47ee05028cb84873da0ebf2b5
+f282c647eaf2d5112bdab2d8a388376c
+f9c8ed4f34a1ff5ce661866451c9c71c
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+54f3bca271ffd43fbde6924acc84e135
+eb163060b0dad6bb7d980bcb1cf85d19
+8ebc81ebaf004e87b5e9ea5ac94cec5e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+ca87d1fa1d3d11404e188d75264df23b
+9bedb7f3a3774dbe7d172590752a9b4c
+c4c9bdd47ee05028cb84873da0ebf2b5
+3215ae9ec40f9513842f14bb52a7eacd
+38a5398e5982f81878a2dadd0e0eb717
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1dd80fd0e3d9280dbd6f9e125105e1d2
+9f51da6d11217906abe07f29e7b162f9
+d8f3deeedbfc4a8ca50e8088eb43538c
+9d9745793ea808834d7de26d55c88e2e
+e5fe341a44397ffc01f9a996138ef809
+82e2ffeb9e17f90bc4254d96c95cf191
+259e0145d6042d3115c1833d7edfa498
+9d9745793ea808834d7de26d55c88e2e
+099b7ae6a9ade1c8694aa4b4dcc05f4c
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+8ae222e8bd9663fc69f8598e2cafff7e
+3389dae361af79b04c9c8e7057f60cc6
+3e3c62e76ee7857d75ba0a0501c5b280
+c4c9bdd47ee05028cb84873da0ebf2b5
+579c51d720e796abef4e515f12c27435
+20eaf973f16cd3e27d77010ac7af320e
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+5272cbe46a992dc7c6517712f9db5666
+db04423a07673855888357b1e9764f76
+9c6647d90876e8395d6887076a9e9050
+ca769b31a15a1498d957ca9925133176
+e075b2abdb5c4d0a09713693bafca6bb
+10c5590cd50dc9f590f392a15429cf60
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+ca805a97c4299eea0599780725b98bbc
+9cf2ffdce24577f87e2b43ca70a46004
+52d8b718c43c2661c50785a93863beef
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+ea2959e38fc7cf635a305ab4dcf21e63
+cbb184dd8e05c9709e5dcaedaa0495cf
+8496b7a5da9a631512c4e693548d0b97
+8ebc81ebaf004e87b5e9ea5ac94cec5e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+ecdb9a9b3dbf6d271bf07f9b6aaab729
+3389dae361af79b04c9c8e7057f60cc6
+bc04a3e68cf3bb3b8e92af225ec30187
+c4c9bdd47ee05028cb84873da0ebf2b5
+f20b9902b404b721fb691d887017c4f0
+c235212806d47f6bac6da9a75abb2ebb
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+7488971f59854e1f50d7843c18818aaa
+c4c9bdd47ee05028cb84873da0ebf2b5
+e5b0786863692ed7aecd3077346cf327
+f5640b04862dd73e3c0c7a94e8deddc8
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+d0959d72d3da9cc8778e012a5e02b67a
+8349cc230de148d74992044088d98110
+8ebc81ebaf004e87b5e9ea5ac94cec5e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+40f9d6fb32ec9ca34d385fbd332683a7
+c4c9bdd47ee05028cb84873da0ebf2b5
+915c7ae2d55856ce7f04e4177676fb75
+0a5bcbf8d41ff62595d4476c472b8a53
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+3a8c3eabd107d7c3612c8eae492f4324
+3389dae361af79b04c9c8e7057f60cc6
+0778818c3606f6e6c9e96a61bb1dc32d
+c4c9bdd47ee05028cb84873da0ebf2b5
+1f72e1d4f6b92280deab0f8f27e2b04c
+81f450047b86aafc3398f4a984cf0f1f
+505b97969baa28c3f607a38ee02f4f2d
+cbb184dd8e05c9709e5dcaedaa0495cf
+09c8d1da1fb8db603d99dae2a70cd221
+0057aa74ed08d8b083be5570457531ac
+e5fe341a44397ffc01f9a996138ef809
+eb8e19c5c419d4631729d35762752350
+07233f1aa71b045dd840dff8fd45dc57
+ea2959e38fc7cf635a305ab4dcf21e63
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+0142e8755d86cd7283b59d18a87c7ac6
+9192a834d6137014adadb7f67a133a12
+e49f339825f1025077442ba582ae0e50
+5c2251ef4178fbf912dd01317e2bf342
+1a68e3cc90555d1c11f44ef710c0b6b9
+4b0e472cae3fc6c5b06e6e85cbb8b3b1
+b85abcb4076f873598656466bc3cfceb
+346768f56238108d991fc177a9101ac9
+cbb184dd8e05c9709e5dcaedaa0495cf
+b38748530bc56cda33935bcac8700c37
+1678e8e1cd435e195012e6029ab0b8b5
+83030a4ef57c9b7e06aeba3866061837
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+acfabe5bcf81a2979c6ff6801e903a53
+9f51da6d11217906abe07f29e7b162f9
+0eb73fae0cfc2d356048ee6f086a7c8c
+9d9745793ea808834d7de26d55c88e2e
+c5380d6468afb379567de4d11bff149e
+a4883b9dddd67eeaf84ec308be53f941
+b306f4450db0ad8bd6906956fa0b01d8
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+df989b3f61ed5be78440aa99fe45ab9f
+9f51da6d11217906abe07f29e7b162f9
+58b3bd6b5405693155624e90128cf92f
+2dde6396c126bb5095b8c97e2a4bf69e
+9d9745793ea808834d7de26d55c88e2e
+a0cd151c5fa8ff5c5a444f514bdfc045
+1d671452110a895e29f8a52c35b124e7
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+0544f4ad73cb183655588821cc98c459
+73ff00f3938a612d516bcb97cb377405
+c4c9bdd47ee05028cb84873da0ebf2b5
+c3762ba2a0500feb41c9d290d18470e8
+da8a25d676f11407f6448313e01d3c97
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+655f0b73ad68d042cb2113b8cc48b40c
+017a64b1ddd690d7325f74d6eed64120
+1925f8a509eba91af62b47c7cb0f0a00
+87ec2f3d98b47fe3ee661c803f075833
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�1T�1523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+dc04c2a6eae79c5d3b430d0734f9bc18
+
+740af85a7cf01a113d96982f40915469
+9988777496d1ddd020cdcbcdd4a2c18e
+d8ef62f07d0e287d78ee5c31f531211c
+
+b6af97872f1ebb325e09931697abfc2e
+a06699b08840f779e6b958cc6246d6a1
+cfcce14c5f9d7bbc672b1124ea6d84df
+29c6ebf62b718d37876ea96440383f1d
+
+
+30037a38562e5a9aa90e28c75d43a50f
+9bf651c2c105a13e11d90c6cb914611b
+ccdc9abedd559a444b66fc2cd934b512
+e05689535f5540ab6d95f94f59ab9f7b
+7bbb576f85997e821d5f9ccb9d6620f0
+92e0471df8849ca851f39bff4748d52b
+64f3a5a09704a1c08aba5502325ce747
+362f9aed5f5cd698f4946f5bfeee9590
+0be23d70ee76e8462a3825c7aec7af6d
+a68596be545cfe4cd5a6a3ecb044cee2
+87617264ae03f583e1228ae36e133782
+b4b3d4536947267876d2cdaf2927da1c
+6f071a1531d716388c25efe43e923534
+d397d8a718747d3e968b093afd516587
+2145c1b6992c0d519ad223f91671329b
+
+b00814f7d2abd5ecc049e7f0ee7540a2
+ec269148ac7fc0e06fbfb4e6e4b2cc7a
+6450bce9ae59f57b494b3721706ac400
+b47d1bbca7d8abd4ed54db482473c15e
+c5eb7ca54d5b9e96fbb2676f8699da04
+8281849db8eff1a1bab1f3574c1752dc
+d1e789c28a119eae076af8cc6fb138f8
+7dd1f5d9715cfb29c62abdde6d30612c
+b872225e336b17b484850a027c5c8c34
+b44f9231001f55a8ea050b72948c2af8
+ee7e594e7d209130e72406bdebe8c965
+54bd201779d86a0f99f655688211093f
+
+cf2a5fb7c7bb55bd451d113bd690151d
+0bc9e0ffb4118cba2583aab64ae65dba
+426b875ddcf5c60ec55d717082133cd9
+ed3946a4d34774c380130d6b91a7b4c9
+f54a00f0b257916de56d59a5b8a1aa4d
+7743ef9ef4356271e5abc418ae1f53d9
+452c8334c13aeddda1ceaf9cd6a9caaf
+021960bf74889455ebc8d7bd36ab1821
+8c03f2a6ca25217ae7696e24918dad6e
+e6b4ac7a48e0e54e09a504c828af50c5
+a29aca6c0497d5984ae418c8d17dc4e3
+9c730ea3a132547f33675b1a5edf443f
+886c24c67739c97cf77b8dd239e412f9
+d33476978cd54c942ed6226611614d21
+
+6ee2c9d4be4106317fc6d20c6f6bb65b
+e673b1ab551c90d97cfe56fbc7418d9e
+85d50b8b87ede3f6515877b8272714e9
+ac8289857869ce2255be2a77141be6c1
+53b709917c471a40d60f9411cb2e8e99
+
+98742fc5076a7f261132564bfa455a1a
+05a356400a5186eef79e52fde509db09
+1a78e6cfce19f1a85de97f0ad571beff
+b004d4e184bf3f46de0ef7afc1e8596c
+afa72b2ab2709d465465293c4eb0a83c
+d72c9f9d6d1e4901706a35c93d095df7
+6bd40e5920725548295b13514d746c07
+24b170fa75a09694d24d228f6f2762ee
+6b553a100263fe1c4abc807f6f97ab39
+fa212bc372952f8981bbed453a3341c0
+4530796e60d4ce76b6c6d951b0014257
+84a7a00e9242d0caa184e330d27f0428
+c410536289fd6d7408fe4d165c14354d
+2bd32ed3663980aec6cadd2093b3667e
+7a361aa0ffb09d5192ad7c73969a46a4
+
+d2a3a2bedffca3730693bc8568ec0db2
+cf064ec87b26fce4f990de1a09ca95d2
+169de4c8eb752b8d3892e5a9f4a4d500
+1b56679d4365aac5f74628e8ee6104dc
+058a4646e4d30bb5542d63df11bd4431
+8939cada1091f11222011fd09e3db59a
+9632658f7791a934377835edc34932c2
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+8939cada1091f11222011fd09e3db59a
+0ab48d01e53f8637349cdd82bef26500
+cbb184dd8e05c9709e5dcaedaa0495cf
+0554a771139c1d8d2d1f86cd74ff1586
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+60fc23eb787c463ac82a629fb0a94e50
+39b613d91dfc220ae542d5256c557228
+35f43b7ff413bddde10ef5d01711f43f
+4d09da0175008cad8751e9ff68a67180
+1e437c4e5437f8bb902139f64286a2bf
+06d69e229d1b10fbe7914b0b174fea59
+
+43ebf61fcd9e6271dde15852f24b0e1f
+c6d0d3b17257d4bb2679ae3815405d91
+735038dee53e1f33cf13efc65f0043bf
+0411456637a690fdfe05da57a02f868a
+0323f75bb9659de7c5d100547f628e58
+ef20ba8fb8ccf730cffabf1b9225d67f
+a2e081ba96c3b80b8346be062896fd39
+9d9745793ea808834d7de26d55c88e2e
+224435728c9ed4d80917d3eb47024396
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+33971110271bae4d226d920d113180c2
+e40c27ac9b6279d854bd45e154dad12f
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2bf00e40341081172a28a4e0406e8b18
+2704be0c56bca33f5a841a50385bccd5
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+24590bdd459758e05c71414aa6bd108b
+0a614dc2250d8f39c4590865cdf3b259
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b48f7ffb006009f74b961c9e64da4391
+13752580b1be23b81ed9a2b9fef7d229
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+6505a1796345e6d22939c930f65c4ed4
+dbf15a5fb8102a5c28d5046a0e92e443
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+88a018d94c6f31307ba134ba43ed27f8
+eeb3da3316711040500b2eea8dd2dd4d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+72d99fb17d4938ac41175211fde3be8a
+1de2fb99cca169ed7eeefb957978e81f
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+877118a43c3aebe005f2bb022d675f4e
+565d51511d15781ae576ed3d7a8f70e9
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+181e5a4f76ed205f9c4b6e3ee80b2ec3
+20e7672e866656f4047a9e1c9c6961b2
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e31b4b979c4f52806b31f6c700cda0e6
+46f782ddc5ea3ea43cda762ab78dfb14
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+98d535214378a4de74d02081520fa6e2
+0b4732814d1d7a4a5e171ad312dae0b6
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2701887b02b8f793d4e1a6080e34d454
+72da631a13c0d581e955c88c771fadd7
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+fa7febc5a7a47d26dc87253604748574
+3c05f34941c310413f884693c1f97ef1
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5767a9f2791461f3bb618edd4f7011e5
+8db06c31ffa9cb2bfaf5066dade789e2
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+d2eb9e3c0d7a384719a6fb512059ef69
+861b0d9937aaefa14b8016c80347a01c
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+39157b95d20828d3f883ef221e10aa72
+8db06c31ffa9cb2bfaf5066dade789e2
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+181b96ed9703ebef1b2084549c1b9174
+4ba7381699fcdf343f6526506fd5d65c
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+dac424bd1a47fe5fef792bfb32ec3178
+a6b4589d485b1f6a3195fa649d8cb320
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+7054391f092b79b2b6d4fbf220e39d7c
+76266d9dfc9c3ea527d4b2adb3dcb8cd
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+0530efd0f572483d80c818362fa92d18
+088db524c454e71818edc7289abda019
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2182c1c757bad8ed3f08c3c1f460a2f0
+3c98d297ba760876daca9d94008800da
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e0398153bd71dff556cdca483547a23c
+7d7fe236c204379b4a473b1d20dd7c90
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+41e78515e9904cd0c4dccd8b67c3a721
+49d00e83474eeba6f2eb04afda4dcf3b
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�
U�
523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+dc04c2a6eae79c5d3b430d0734f9bc18
+
+740af85a7cf01a113d96982f40915469
+3aea064021272f343d558909927d4a5e
+e5ad158bf21e9fc1784d13319c696b7a
+5ddabb9d3527b879abb19fdd03dbbd13
+aa75e987ce8158a702f2b8524cbd0ea9
+7d574c2bf19e03c0583c554423dcdd9c
+1d32db76a209d0e403d897753654d147
+fb1179e4fe824b05920c9e0e98aa8075
+
+a98d49638098b960f6f1b0449b2931a9
+
+e4fee184932ac6f3ade5eecfd5e14c61
+3a320fa9bc157bd6424cfc25a3888004
+1d7393a6d4f73fff2dbb37b536e8db42
+ba8fac39bc14653b8489a88e4c7f45e8
+
+396bb43f74f4ab3f9d011a0314dcf96b
+aa0b7daf37159ae39b5d0e1cf75ff426
+82422441d90fa519100f7eb08bf946f7
+e3d66b7ddb16cb21abaf268c7e5d93c5
+20858f62d604501e234103f516de81e0
+ab66aeb6dd2cf959abbb8ec99ed7e6ad
+53bda05839ff643de1b0e0f617855611
+6a7aae4b6b3a81784edfb9662e911dec
+5f498e3f2c0cf927035a033955e91581
+cbb184dd8e05c9709e5dcaedaa0495cf
+c0c97e22db5055def551d1cef15fb251
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b4a37962685b98b036d233a4d83adcbc
+58a2547ca7ca94615637f9d13d975500
+f380ebc98dcd2f1cabae72b35bf53b50
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b66fcdc32bf61684c94beb49a8b82b61
+a0f6213c45223aa58e5fb1fc254d31c2
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+d34c139c170a32e73412afef77116537
+3c2d69e405f3234c4a8573a4193199d8
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�NW�N523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+13cfc02d534709a62166493b9ec6eb6e
+
+c6a91fcb86e13bd5926211bcbdd90d95
+1af0b524dbc8a1689697ac49bc7add26
+740af85a7cf01a113d96982f40915469
+9988777496d1ddd020cdcbcdd4a2c18e
+d8ef62f07d0e287d78ee5c31f531211c
+d7723d59965412e1086c6aa7acab5b68
+
+a06699b08840f779e6b958cc6246d6a1
+f9ae2cd701fc6b49425b54db669062f8
+35af660d1117e581b025326c8a9174d1
+b1006ceb7caafc92cba2b1a3fc3eaf06
+cfcce14c5f9d7bbc672b1124ea6d84df
+37d4e28f45ecef1a9831811ffc064387
+dddfe8b059c3b38b32297478098be074
+
+
+732bea8d96e2cd6a44caf318a46166e2
+d91d58abbd6d4b51d59f7332fdd4ee4f
+15ee46c821f3d6239e71569559ea52de
+c0c05414077dd2f6baf3b27f59d9298a
+a3b10517210882884fcb3b9ed42412c0
+732cedc73563846324a78db8088024bb
+9078df59077d1cb56b24963ef08cc42a
+98e0cd7ad785da9abe7b25ab4df73c4d
+b9e13ebc2196f570555262a42e5818ef
+
+0bc9e0ffb4118cba2583aab64ae65dba
+
+7743ef9ef4356271e5abc418ae1f53d9
+
+426b875ddcf5c60ec55d717082133cd9
+
+a29aca6c0497d5984ae418c8d17dc4e3
+
+9c730ea3a132547f33675b1a5edf443f
+
+a29f2eaf721893f5a42d6609a049e4c7
+
+c458e619396054f78bc926fb81b4386d
+
+a1c392b31d432b1c180408f855cb2e79
+
+2902fc608616368b741d5c722ff9bb68
+
+53f0522922c1c41770284ae01264a502
+
+c6f1b76a119dd6e4c409be1087c3ef64
+24087d80f373c2299dfb24a75fdb160a
+6ed200213ac9b1846fb29a810fee046b
+8e54e7d80a219577f95786016c18e5a9
+e7bcbfd37d8ea94d0e9b2df11a5bb325
+c1da4b5cd5d4a9870af5c1b9113c1ca5
+44e7dac87faa32d0e409607f2cb02dfe
+168fd67bd5c6a496172f18576072d805
+2145c1b6992c0d519ad223f91671329b
+
+ea3b94ecbdfe60333a134f28758ddf31
+a68596be545cfe4cd5a6a3ecb044cee2
+e05689535f5540ab6d95f94f59ab9f7b
+7bbb576f85997e821d5f9ccb9d6620f0
+6f071a1531d716388c25efe43e923534
+d397d8a718747d3e968b093afd516587
+c95dfdafc263d8789fc40cd3401f936d
+2145c1b6992c0d519ad223f91671329b
+
+93d7b59eaf09ef549b51456a42ad1459
+
+ef620846bc988510e767595ce5a5ee62
+
+626ff4d667771990a1b446aab514f916
+
+5cc696f4046f7c91196362da3bbab465
+
+7875d4127700b82e021c80b673dcddef
+
+a88daf13773d7dc28cb09fa9d2d4a3eb
+
+96eec75147c7d9b1780512363bd42990
+
+bc4020197a9f177a7b1dc9b738a13f2d
+
+bb157c20ce25a30c186a452b04181f0f
+
+a07628539430cc31872c647fd2a01fd2
+
+9eeee31a6373961de5dcca23c770b8a8
+c9171eb1f02b6737eb37e746c3a2ee61
+75df9d476e2298272f14383ae1ee3a00
+afce2d155e3cf95001c0922414f529e2
+20304186f0bdd56d04ab8841ab81e8f8
+3690d926d85276024383246738e58f36
+33db7c567e9f66f46de4c715ed7e07ab
+406e04b6bde23be7d4e67343a8b7c22e
+c45d334e5412bbe5f6d3fadcd17eb16d
+421fcade763483f7dd7c679c607fcc9d
+1e616306a3bea20e01e169885c86443f
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a28ee4c90cc6f7f141eeaad831a6de62
+7b821e32d011029b482860b2bfa23360
+75df9d476e2298272f14383ae1ee3a00
+5048a041bafcb3bd584f17a8e6dfb1e6
+3690d926d85276024383246738e58f36
+c45d334e5412bbe5f6d3fadcd17eb16d
+33db7c567e9f66f46de4c715ed7e07ab
+e40bc91abf601d8a1f360bfe912c66b2
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bacc5c7710e10e6b834daf75aa1f78f2
+a3e9179adf011865f7f12795e67b8af8
+270083df2cdba6c4a2ca045803f2e9d7
+e652ae7ad7cd8f16537d0d21bfc51c04
+
+3562f1233b8492a7e79c98b410144482
+9626c1574f6dcd1c46da1ce796145222
+c9aa32725e1faaa59508ed8b57820a6b
+77033d51874546684eb214c240434fa3
+ada4e73194049826123c0b8a3ad0e41d
+502b3cb38abb097e2d2b6d90bbfb6bc6
+064c7c27c9e6949a5495fa177f944b0e
+823315838d51bdcda77dc280771390b1
+cbb184dd8e05c9709e5dcaedaa0495cf
+57cf1a392f0affe68ae8a0ca58a781ac
+9d9745793ea808834d7de26d55c88e2e
+7d93fb784eb7ee7d58a5a0666a0cf23b
+df43502379792daf069f1079ecfccb1b
+cbb184dd8e05c9709e5dcaedaa0495cf
+967a46839914f1574f657b7ef7a7d660
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+104e0fc0a3dc29330b32ad0dc218b4e0
+e6329c0752eefd8d09823fb7c66ab2db
+046dd4e88255301d25638a4f7c011c0e
+b92f00bb544ec6d5282aa23365e9f0b2
+d981474263d57511baf0a0a8f72dc872
+
+3562f1233b8492a7e79c98b410144482
+9626c1574f6dcd1c46da1ce796145222
+01684440c3624d281743789b407ea69f
+fc7c24d42afbc6c2bee5cfa0ea041c32
+0a8ef46fcb02218816d43607c50ceaa9
+abb5b83be18604d68947cc167279d428
+c28fdbd5c1bc9dfb24796fe7172f2c68
+c93e525a542b70f8c41320edb6977a2a
+872a4c539c21e57f3e7d561d9bb70270
+bbed8bf65006e39245b9d43d0421e56c
+9d9745793ea808834d7de26d55c88e2e
+bdd4216087c7c2d4b42e0b442908d70e
+cbb184dd8e05c9709e5dcaedaa0495cf
+4832b1eecbf1b5a68639df4d864658c3
+cbb184dd8e05c9709e5dcaedaa0495cf
+57cf1a392f0affe68ae8a0ca58a781ac
+9d9745793ea808834d7de26d55c88e2e
+1c0d8cd7a77738d2c94396b9062ae6db
+3b21995db3fbcbd069e7792ffec71d1e
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5e18d19b287cee1083ddaeb08000e12a
+dceba81a221c52da8417ba60b56da327
+b96818646263352dd6f1c6e2a0c51673
+a7fa006acea3f56c5a75981aaaec9a31
+b5ac3016f79160cdddb8e35acb434d86
+3388290f385665c5ad1faf06b5b922ce
+ec45a2f18b8962f4d59e17c2bdd21b0d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+69013173f8fe38b1a068e494434648c9
+f8383d1a1e8960743dd68005314fda87
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1f4e1cc732541cd4dd940c29e02a176c
+3bb2ca7f8beeb79481bc325b3a3d6504
+ff795300d79a5d81e936417b82a685d8
+158e28fac6f202c0bd5312979133d384
+315fe8962b2a9097376eb6cb950f46a6
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+35fdff3f85d875bf5e6e0727aadaac6c
+
+bb7258b757e6a3ffbdc4544780e61a2e
+9a0acd849585749ffeae33787dc171cf
+c4c9bdd47ee05028cb84873da0ebf2b5
+b11137b0610f854e6a4d1f7322c77064
+a673cae0a5e89658ce9a710fc10f3c74
+44b2d809178985037c1e96d1876c9e26
+dad57bcef3e24b2b07b22c47269ef870
+cbb184dd8e05c9709e5dcaedaa0495cf
+8a6c141756d58ae351cd56242e5f3361
+9d9745793ea808834d7de26d55c88e2e
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+54be0f27f59b0c342e55aec4edf920d6
+f8c534bc058378056afdfff27f858793
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1a7f8773fceca51bd214387203bf110e
+0a34f3437759eb9fef8c6f11b3ab1085
+d0ea03d732f1b533b64bd3015cb79491
+d1fe4dae1118fe43410f233c92f0438e
+9d9745793ea808834d7de26d55c88e2e
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b17f0b9c21ec22c53dc27d79e6f8b2dc
+ec8f40411fe56284bc1aa5f94e023f12
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2f7391a65d89682fabe287a09035f508
+bbceed97cb14ec3f14d1c43e7098c819
+c026ca48125d85720d716931e16c719a
+b163830c0eefcf34c6ec884f4b5bad52
+cbb184dd8e05c9709e5dcaedaa0495cf
+4e996f026ef03148dd1b3efdeb8a2d57
+d3ec737fc78dd4b1381ee347d95d53e4
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e9bbb7384eaad310a5d29421a297c04f
+9042f45eb8e9508a64099155397df6a4
+b11137b0610f854e6a4d1f7322c77064
+cb5a7e318e76066e98cf6d4858dbb511
+dad57bcef3e24b2b07b22c47269ef870
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+ba08bf866b5e8c437226ec3eebb41d97
+25b2c9f5959d074d8373330f86bb3719
+2d04c7008570bad9c47815d67524e0dc
+4e996f026ef03148dd1b3efdeb8a2d57
+a423546d0bd4bffb8da4aece89ac45a0
+cbb184dd8e05c9709e5dcaedaa0495cf
+69d97f5ba8c0c4cd147a51b39c8688e3
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+027a397765576d1d315174329c9e0d62
+59918b95d778b49c1efeab0d98e24b1b
+4e996f026ef03148dd1b3efdeb8a2d57
+4d9600dc0ebcf53f532989df15a1b908
+cbb184dd8e05c9709e5dcaedaa0495cf
+6fe489837891c616f64d968fb5e7c4ca
+cea2a7987d8e60593e754a4036e151fe
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e2dc31ac4599d408711f83be4018a533
+303a2110c57ad7538861856c79d07e1b
+c70dd1b1b02b479c8851d06cdea10683
+12fa0e4dd52df4edb429598465a16787
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1ccfe119d179881c116c6ec1285b2ce3
+7764c8388536dd69bd33d9cc5e6e3070
+489fa92883898777aa973716d037c159
+5f5b2bd29068c338602a8976914784be
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+ec65415fb37bec484a56d1f3259356ad
+7d275eb6df2f327034550f81b4a7621e
+8bfc6006052fea3116e2f00501b1f682
+b113443f71d31d6a8d9b290095a5f6c7
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+5bb07380a0ed08d0524889f38bb2e89b
+8ee2c588bea4bc08770f9e6347de3a1a
+63b8a547769eba84ebff4658f9116a48
+ec3e4953309177691bb14cc71ff123be
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b48497352aae18835d14be13f80b558a
+85ddb791c4916dc00b6691c8ea780bf7
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+dca5c0854d0004f673047a55833115ce
+5a3dc7582c8b2d33f643d83ff89f34a9
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+181e5a4f76ed205f9c4b6e3ee80b2ec3
+20e7672e866656f4047a9e1c9c6961b2
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2701887b02b8f793d4e1a6080e34d454
+72da631a13c0d581e955c88c771fadd7
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+9abc0c8e75577eb1c124b30181559514
+96e4ec441e09d35fe7feae50435b2404
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+fa7febc5a7a47d26dc87253604748574
+3c05f34941c310413f884693c1f97ef1
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+3d39671dfaa6faf0672eedafeb28827e
+2965ecf82d93b9092fe6794130a9494f
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+7b72d75c30054cc6dcff1d2b6e165d5e
+6c8a0b35ddaee9a3ff423c3591e560e5
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+a5d5b0e031e2fb8b3936ffc11b7c9081
+5d501c2130144732dad37d2af53b81e9
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+39157b95d20828d3f883ef221e10aa72
+284b36eecd84617076c07bcfcd6da293
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+7054391f092b79b2b6d4fbf220e39d7c
+76266d9dfc9c3ea527d4b2adb3dcb8cd
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+dac424bd1a47fe5fef792bfb32ec3178
+a6b4589d485b1f6a3195fa649d8cb320
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+6045bddb0fb320ce30f85812e5d2ad9b
+bb7258b757e6a3ffbdc4544780e61a2e
+5a84f8ed4b192908ea879fbb51f3e0b9
+c4c9bdd47ee05028cb84873da0ebf2b5
+70c0f67ef6938eb814ecec77b2fc5cca
+
+bb7258b757e6a3ffbdc4544780e61a2e
+73bd4c26893328882c91a1c3ddc30f15
+c4c9bdd47ee05028cb84873da0ebf2b5
+c0961022dcaa8c43b85fd5ffc973d328
+
+bb7258b757e6a3ffbdc4544780e61a2e
+ae78ec0afe54afb265a2ff73021398eb
+c4c9bdd47ee05028cb84873da0ebf2b5
+fee4a5d92b22b9464ecba3445ed1894f
+
+bb7258b757e6a3ffbdc4544780e61a2e
+afe30ef04edfcea0cf52ad4b292f8074
+e9f01ceb77211bdfd7cceda981f78bf1
+d55f676b1b7d3bd5731db1ece988b7dc
+c4c9bdd47ee05028cb84873da0ebf2b5
+52a1379ef5385d70bd6f378d2bb2c36b
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�8X�8523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+13cfc02d534709a62166493b9ec6eb6e
+b3fd1db598b768bb94a2996acd010fb7
+1bd8fcb2421e515eccfd8006de8b4b9c
+1af0b524dbc8a1689697ac49bc7add26
+193bf67889b339ae01aec85f433db1b9
+740af85a7cf01a113d96982f40915469
+aade9e8159a0047e6f94668114a3da0c
+36978fb1f1fbb0dcd52c7c1e1d6debaa
+d47e91d36d9150984d407752b9e9b4cb
+d7723d59965412e1086c6aa7acab5b68
+
+a06699b08840f779e6b958cc6246d6a1
+f9ae2cd701fc6b49425b54db669062f8
+35af660d1117e581b025326c8a9174d1
+cfcce14c5f9d7bbc672b1124ea6d84df
+37d4e28f45ecef1a9831811ffc064387
+
+391715e38dad3a13b75205d527e82c8a
+
+
+621dca9952646d4db0dc0d17e8ccc34e
+6aca4cea2c4014f46594ee046e2b5266
+8f70f008f08739edfad905d220fce133
+f0887dd19b66c23980a03d51c8576930
+bb7258b757e6a3ffbdc4544780e61a2e
+5c1faddd90c62a062f9922c3c7b2f945
+c4c9bdd47ee05028cb84873da0ebf2b5
+c1ac7bb0be44c2b0f55fb78c9b2071b3
+73855fc71e74e229be18550a44bb1d0f
+ca764d217cb44d3138b10acbe58fb348
+0002e1f317a59995b7445f031a3ab0ee
+f7e01a6f1018a0420ec80f7ee6e4c654
+0441d2ad7312d284a2c57b5db48f2ca6
+4bf67124706055aaab5aec3dc7d816b5
+0cc5f3ed6465fd20389ef8e568d3f782
+2f200ee81b5dfa5210197727af2f7804
+773b1fe92881452602353474da2d88f0
+
+b0de1871a56daaca044d1521fbb45972
+80d5b17efc16ace990c07580fc3e85eb
+568d8929d10e9b5e3a6ed0b615fb77fc
+4165a8d41304580a7718c655d1088126
+c40e0f1b5462a7858ddee5983924bf18
+2d278c209450a531741071f3c81e75d1
+cbb184dd8e05c9709e5dcaedaa0495cf
+120422ca657801e39b85d12cb1a97e82
+664cc347deae4215d249205426b4df5d
+cbb184dd8e05c9709e5dcaedaa0495cf
+1f04b4dd68445639654a3f4f30963c28
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+29ed268f94757b66247dff20f681ca6c
+0dd96d5c199543634e7d86ebcea16f6a
+6a97957ee33722893488ee10e12a0e5d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1fe71f5dcc8853eeb2b80e9b8e6f5830
+af9c8306d13e6641d6ea2cc2e7108867
+53d16da020a21c5beeef16d8f6a805f3
+afa1f8a49c55708c2ca33d78c987bc61
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e934429f677439dbe0556a75078d5561
+8bdb66c6a5cbc1dc1272e73e1e84c4b4
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+010ebebca14ee3bf83604df21a5bd80b
+39dcce172d80b38042f5e749f2394b0e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e56d2ebfff6dc81d8f9a34efabdf72a0
+798391494340b4d7cee43a3962af4354
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+9720279d205640264548a43721292fa4
+843ff58fe1c790b06bdad4b74927319e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+ab2f712f9dd1d73b3005f9a62632e32f
+b06b80a34761ad231aa475d979184cc3
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+d9c6eb9f484c13e049a058a1cdcf70cc
+76db64945b2aa8420bcc5396923f0df8
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+7c30055dab0fd2707e7dc98cfdb0ba90
+6d37744c00e29c338733126b73192a87
+a59f457e1684a41521ab73b6d788542b
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+0b554f3ff835adeb5e7b50260726c7f8
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+d447b71faceb82a8d8ca1ec09f47828a
+8bd8b3a9005a3ed02ac97aa03d81f32c
+e074d0ec77c5c53176e491d9e91cf69f
+c4c9bdd47ee05028cb84873da0ebf2b5
+324703f9405b1f1d8ce0ceb3d5648600
+a2e5215b9b4c79d95c81cb78778a8175
+d0ae3b5020a1cd24d38e1088ceec0da7
+5936c2cb89c2701b2b5a2951c142b735
+a5181b83f7f59bc7a194e6a426aac302
+cbb184dd8e05c9709e5dcaedaa0495cf
+45764fb4b4f0590d1766fe85d2ba88e3
+
+b910e97370788744cf5e5896a67e2b12
+bd323f744dfaf927251b62ee5b772c58
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bf56885b3c5b49a54b85361e5a475923
+86d21fde39d78a824474fc566baf1e20
+
+6a6d4d35fb9b4a803c2dffc07e23a8bd
+
+7ee2f81fb813e1ef4056ee5e9c2399fa
+
+f60ce633776a2a29a359ea045faf13c2
+
+fb0c31b5e699da030ed8acdc7efe6029
+
+82bf274e6a338b33a323774acb125d60
+9a42be263eacf411f991f9b6aaa5f43c
+aa95521b064984cc7b811d74b2785edd
+d85894c3b51aa27715b4d7a4df1b4c76
+60b01ff7fb1dedbc342ca197925ad7f1
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+44c73ec38bb05e783a99f4cd2fec8290
+03555a7ff0c40d71cc6f9209613b38f9
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+f779eb48f5d295f4dcd18a07cbbaa5ea
+5c290a0447c90a2eeb1cc0b35956f05d
+10d4c2a5c2e32de26c46a184f04050b3
+cbb184dd8e05c9709e5dcaedaa0495cf
+484fd686d24a49bc369eb58ec98f998d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+37d2f598e044df5075b0ee8a7e1c7d7d
+5c290a0447c90a2eeb1cc0b35956f05d
+116cd0eca411c08fe7634e2c12a50770
+cbb184dd8e05c9709e5dcaedaa0495cf
+b0c18bdcad2754ecb26b3f1a5a85ce17
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+6eb1a67a5fc7556421c06e3b80e32a77
+8f192aad5a5a37908acd44e1d446d8bf
+53d16da020a21c5beeef16d8f6a805f3
+afa1f8a49c55708c2ca33d78c987bc61
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+38131132373793a7d60137fc6b288093
+7a978aa11e8244faaeda1e24bb452468
+53d16da020a21c5beeef16d8f6a805f3
+afa1f8a49c55708c2ca33d78c987bc61
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+8417d37b3e28c70f0ea8d4ff0ac87dee
+bb7258b757e6a3ffbdc4544780e61a2e
+6f834be9d530e19bdb1e95f480436c91
+c4c9bdd47ee05028cb84873da0ebf2b5
+6d37744c00e29c338733126b73192a87
+a59f457e1684a41521ab73b6d788542b
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b73a4edff6cc7aaf28ec28ce354a88d5
+2c479baeb47f830ba15db6b2ab2870e9
+
+90c563c0e66913e87c759d6c2c852530
+db48db20328498ab64808d771b0fe4f1
+64ae33ec5f05106dfd5669592f062ed7
+3e41b56975fcbc9af590b5c14a6fc04e
+18f40fdeb5e1967e64fe86489d6a8a83
+254a295038d7194ba24581ee443addf3
+80d5b17efc16ace990c07580fc3e85eb
+221208f10bb5bb67d8c099938034e9bf
+4165a8d41304580a7718c655d1088126
+a80626cda90061d2a6f08d3bdf5ee59e
+6c70383ac64deda1b6bb05dae033bbae
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+7ef81984a7bd2ab7e1ce1a68c1cdda4a
+487b3e321ac1f3e31998dfa23812a7c4
+75da87b06571605da0a632efb9080fdc
+b8d5b5be5af879b50a6985bee4d7adf8
+cbb184dd8e05c9709e5dcaedaa0495cf
+6c70383ac64deda1b6bb05dae033bbae
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+fd4c52347981ebdf778affb19c68dbca
+bcd84646d346213774b2d5a075bcbe0f
+cd27d76e8a9f34bdaba6070bbb00261f
+9165f2bfd0f2e68f1c806b332265ab2c
+18f40fdeb5e1967e64fe86489d6a8a83
+e3ed53470febdbc00ff3a87c0bfb04d3
+80d5b17efc16ace990c07580fc3e85eb
+50f0c18efbf4bf74ba2b4bbca42e606a
+4165a8d41304580a7718c655d1088126
+b8157e22a5cbca7202362f97638a7bb5
+5774bcc6ba9632cdc033b35907243e22
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+7ef81984a7bd2ab7e1ce1a68c1cdda4a
+49d18cdad3944ec28f4bbf42b4511b1e
+858a0494aa168eb846e5f8cdc8fd1de5
+b8d5b5be5af879b50a6985bee4d7adf8
+cbb184dd8e05c9709e5dcaedaa0495cf
+5774bcc6ba9632cdc033b35907243e22
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+cb8eeca44002e141d2af0d0acf3e938a
+80d5b17efc16ace990c07580fc3e85eb
+4bbf6289e5bb972e0464c76480d75399
+6c146a8f5e63fe85686f5fcd775c1874
+c8b17dd51f6258727c5199597c45a16a
+395686990ef1be297165a9b3ab075d54
+ada531f628ee97919c579aeb671fb685
+6ca92933d444a830b6c559600c0e6908
+540c13e9e156b687226421b24f2df178
+f4e5b4cbf1511db3332ec976b047d6ab
+6ca92933d444a830b6c559600c0e6908
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�GZ�G523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+dd7df2cf11f1aa2f42c4fae9ac0602ea
+
+
+9e87ab199c2372f7191fd0e9fe896cf3
+9ef7f38bce8cc25f40ccb98f8592ac14
+1af0b524dbc8a1689697ac49bc7add26
+193bf67889b339ae01aec85f433db1b9
+ccce10a067610225143cf3a343f04e0f
+4c03ff8f722942917dde030007cdbe75
+9988777496d1ddd020cdcbcdd4a2c18e
+6b35031568a8e35cc1d554c641be7cea
+36978fb1f1fbb0dcd52c7c1e1d6debaa
+d8ef62f07d0e287d78ee5c31f531211c
+d7723d59965412e1086c6aa7acab5b68
+
+a98d49638098b960f6f1b0449b2931a9
+35af660d1117e581b025326c8a9174d1
+cfcce14c5f9d7bbc672b1124ea6d84df
+f0d3304127cc850ed3bd9de5be29e22b
+
+
+21fe6780c4ae353eac48cee1b370d02e
+fd5f3113f7ec0062b15b991d9c9397d4
+
+cd3d0c64055eb104532a1ed6651887c0
+
+8747af115eda4842bebb61467687b7a2
+
+37a62bce67c8754734a7b8c36a9a89ba
+693aaab6fc9b20781df4ea26e2244ff5
+a5f26df9fbfc68b959ed060e1400689d
+c35d3626da4b4538d617954089957dca
+
+2de49e1369317dac9a6467f06cd2d87e
+a4bce8566b93ce12e881b470527dd406
+
+06718463aba932848f2d988811aa3249
+de55926c90c0eccab08b5b43588937b0
+f0b1d69d3174c1197269b6934035a366
+7f49110304130789bf699abd25079a13
+77d4d4bb65a1bea6edc6ac92cf84bac7
+b0b10654fc1f29059bcf274309811fdc
+a3339a06d3d87fe20a18f438b903929d
+d7bccc87fdc0a4b4679ece1841ab2151
+183e138dc9a0f94212744c5a47e15e59
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+9c517ab3134c31273f6e8aae3597d913
+3230f7da26a3912f640325469e151f11
+c4c9bdd47ee05028cb84873da0ebf2b5
+3de2c93c4ad08f10f5189bd3a31aeb9d
+77a7b239d6613be4103b74ba1db708b9
+ef51e498777d71895fd7c72a17cc6629
+c8910b753fa6ca78ae35ff4683482ada
+46c46213b503ceac2edf70468c1644e1
+d4dcad7b8c239ac1711570d3ec93da0c
+f5d43650f808dc1eea8042d8a7eddc81
+
+0b604fbaeb54d0222be1d60db7d1aa65
+3a31d03ba23383abed647234c485735a
+7e221581fac1e6c3b6180665eada7299
+8be898d3ddc7cb583da2a775b4e452ef
+70dd039e9b4557b88444a25594096b9a
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+914d1eb385a72cda490f5f6f72aafed6
+01e02c186492f834c27d274c7dd6dac4
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+d588278515b25aa7ef968e1e2e579067
+bb812046c4ecd525b381c977e170d387
+67c04018934deff364b5db378b71e342
+58ce01c56094fab5253c740a45ecf3ca
+74be1c47e8c2ed4b7cfdcf8bf2d5e519
+9f07eac59ebc6c74fb0629c10d0668bf
+02eb37155c74ae7efe3d256585159a82
+f88b44b3287fd7a7c2bd5058ec65dd20
+3cf237bc0df66c8741c7ffc4d2775e6f
+c2bef11d43d42a908d638b8e21336173
+e7bf5830df96c6dd968f28aaf4d821ba
+31ed5b7bb98bb6810f88096d1628634b
+c8c5dbf1e32766be4295cd6eebf8e42d
+15725b87ceebe40983db0b889dee7e34
+c2bef11d43d42a908d638b8e21336173
+715481070987e34f57ec5554720ed609
+04c315fe868bc08277b0521cf9a0c23b
+3cf237bc0df66c8741c7ffc4d2775e6f
+c2bef11d43d42a908d638b8e21336173
+c14a3b6bcfac4e9a782d84bc73636a23
+31ed5b7bb98bb6810f88096d1628634b
+e5329f8b55486f90cdef52b9343d186c
+15725b87ceebe40983db0b889dee7e34
+c2bef11d43d42a908d638b8e21336173
+20cbef8f4f738feb2294da45de8d31b7
+ca663bbb58dcfa828c786275d1506f99
+a23d8f1f1c33e697cd2d6232074b806f
+4ccc5d7a6c466d9e9933cde83280dc04
+00d66ad0eb30d520928def685437bc1f
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+9ada6702d9be3a0dafe5e75313849c4c
+5ffe72834c5079fa9f310ad27eacb759
+d4cec79a9abf6400f81e8587cb15e9d8
+e0b084267c4284c063311f3e12bc1eae
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+665cc723d4ff62c13809e6e50b8fa179
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2b48d604f45675a6a33de59dde6a1284
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+80d5b17efc16ace990c07580fc3e85eb
+90aca9762a54b539abbdf47f6ecbb867
+3b4b619ae4040d0f5469d2f07c377189
+1ca7ff5a119fa2d21f9c5447d2fcf999
+908f8a3209ffdc1575b4be12bf4242fb
+8fc331e96c3b8f4ccaeaee4e71c783b1
+cbb184dd8e05c9709e5dcaedaa0495cf
+c2bef11d43d42a908d638b8e21336173
+de735fadc4b1b96d6039f920cc08b891
+78cbef22eae0a4dc4b5dcdb5b90cc5e4
+cbb184dd8e05c9709e5dcaedaa0495cf
+39bf504070cfd0882f5f39ba97778952
+af75cc97542a9cbf9a54240712aadf63
+cbb184dd8e05c9709e5dcaedaa0495cf
+807fb10045ee51c06bdb74744a6714df
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+1001113b3d1191bade0f186c100ed757
+e2cd56567a704be4293d0cf514964e86
+9f4b45ed026700e0a9bdad23b7eb60d0
+9f07eac59ebc6c74fb0629c10d0668bf
+02eb37155c74ae7efe3d256585159a82
+88ffa783e9ddf5faf5d16bb583c83002
+c2bef11d43d42a908d638b8e21336173
+715481070987e34f57ec5554720ed609
+1976638a072e4b0229f7285e148381ae
+4d522a6794a91c714b4eb247acd1e1da
+9d9745793ea808834d7de26d55c88e2e
+bc12837220d2f49c7523079488c99542
+cbb184dd8e05c9709e5dcaedaa0495cf
+698f18ad77065388e8f96c6ea87165d6
+c2bef11d43d42a908d638b8e21336173
+de735fadc4b1b96d6039f920cc08b891
+78cbef22eae0a4dc4b5dcdb5b90cc5e4
+cbb184dd8e05c9709e5dcaedaa0495cf
+30cdff0df522ab6127b643ea7488cc6d
+134367ba7600c4d66cee89e113462f88
+048e8c097ebe44ada18e8bf187f76d16
+61035fafbe9ce931ae52f4f6a0d3c4d3
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+ba4100ce45b71603a977ca1fb66a4dfb
+77f00674332f83131806072283fd54df
+048e8c097ebe44ada18e8bf187f76d16
+d914397ea3d04c93aeada9f5d37a8c87
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+730a6e00b67ac337bcb3a6956c0a668f
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+ff5d346c4abb5a0fdb755edab4ebaea9
+b524e41aa0cf6ad39267f32c8c687778
+74be1c47e8c2ed4b7cfdcf8bf2d5e519
+e2cd56567a704be4293d0cf514964e86
+bc58e4491a5b47e49d8bd54b6cf14e25
+9f07eac59ebc6c74fb0629c10d0668bf
+02eb37155c74ae7efe3d256585159a82
+c05497bc3cf0322aa56d9f1846cb08d6
+e7988f7e2e79fcdd41dff564fcd298ff
+c2bef11d43d42a908d638b8e21336173
+e7bf5830df96c6dd968f28aaf4d821ba
+31ed5b7bb98bb6810f88096d1628634b
+bb7258b757e6a3ffbdc4544780e61a2e
+18e1170985d54e9e04cebcc55f1b1fbf
+90965d4056277a1ecad00eed1a078778
+c4c9bdd47ee05028cb84873da0ebf2b5
+1b72a42e21d18d79825cdd48a3d81b06
+6d37744c00e29c338733126b73192a87
+c2bef11d43d42a908d638b8e21336173
+cbb184dd8e05c9709e5dcaedaa0495cf
+38f0db912cf5a62f5933dc0b9dcf37aa
+db0fb4dc33169a64a12500e17b06840d
+c2bef11d43d42a908d638b8e21336173
+715481070987e34f57ec5554720ed609
+1a48574f7ed172661b0c7abebdd688a4
+1f055a714b270798d7627dc08f0dcb1d
+c2bef11d43d42a908d638b8e21336173
+c14a3b6bcfac4e9a782d84bc73636a23
+31ed5b7bb98bb6810f88096d1628634b
+4bcd12d8211dbc3e0a92104b39b373ba
+6eaf72c0cb086d82910425d164c34807
+1f055a714b270798d7627dc08f0dcb1d
+c2bef11d43d42a908d638b8e21336173
+de735fadc4b1b96d6039f920cc08b891
+78cbef22eae0a4dc4b5dcdb5b90cc5e4
+cbb184dd8e05c9709e5dcaedaa0495cf
+de97d3cdb299817118ba392b06c55ca5
+2f5dc8e3d9fc91f59134c271bc634cad
+1cc8eaa167bf6f2e95c50f4bbd7fce92
+cbb184dd8e05c9709e5dcaedaa0495cf
+845ced2343244afaf6d83bf17419a9d3
+cbb184dd8e05c9709e5dcaedaa0495cf
+30887aa135e96765ba1eeb0f19a56ccf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+f9c56d72bd6754685605c7ea1d97969b
+b524e41aa0cf6ad39267f32c8c687778
+74be1c47e8c2ed4b7cfdcf8bf2d5e519
+e2cd56567a704be4293d0cf514964e86
+b9e601a36db760ca10ce07b17a952b65
+9f07eac59ebc6c74fb0629c10d0668bf
+02eb37155c74ae7efe3d256585159a82
+d582439b0a95283e42b83d12ef600264
+a336813637e205c2ae0828bf4c9d331b
+c2bef11d43d42a908d638b8e21336173
+e7bf5830df96c6dd968f28aaf4d821ba
+31ed5b7bb98bb6810f88096d1628634b
+c2a23a2a9908c08f00de04cb2bf4bc59
+024bd8c3635e576120216c2caadf197c
+f9fc9045063e11b28bfa282d51d63bb1
+c2bef11d43d42a908d638b8e21336173
+715481070987e34f57ec5554720ed609
+27098aa19023f9feedb567d314dd06b4
+3a14bbcc7c95494e180c475329253bc0
+c2bef11d43d42a908d638b8e21336173
+c14a3b6bcfac4e9a782d84bc73636a23
+31ed5b7bb98bb6810f88096d1628634b
+2487598024f6271e7a2192cb276918fb
+f9fc9045063e11b28bfa282d51d63bb1
+3a14bbcc7c95494e180c475329253bc0
+c2bef11d43d42a908d638b8e21336173
+de735fadc4b1b96d6039f920cc08b891
+78cbef22eae0a4dc4b5dcdb5b90cc5e4
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+de97d3cdb299817118ba392b06c55ca5
+9f70de79e068766c7dee176fdf514b44
+1cc8eaa167bf6f2e95c50f4bbd7fce92
+cbb184dd8e05c9709e5dcaedaa0495cf
+845ced2343244afaf6d83bf17419a9d3
+cbb184dd8e05c9709e5dcaedaa0495cf
+30887aa135e96765ba1eeb0f19a56ccf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2ab22ee8a1a03f977993bd5a939e573f
+e58b601cea03e5d44729f61f3f61c7d9
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+f3c67a68856345472b72a55c4c84b27a
+170dbc62328baec2063ba791fde6833a
+83d1c2aae2585fc11605fb4a16c50fee
+b2387baa90600a392144000baf50e9ac
+a7ff16892014690b109707a844c3da4a
+73ca2dd2d8c4da7dfa8d501896c66015
+75361ffb7a4fb0af4e6deb38348c0b6f
+
+576e6f9e25d1526d2ad52711df4bd8db
+679812a38db97534d610bf305d06c482
+cbb184dd8e05c9709e5dcaedaa0495cf
+60af32efe873f8dd7ce5ff9f657a5df3
+1d82740bfb5c7eb3e547911e21f32a85
+cbb184dd8e05c9709e5dcaedaa0495cf
+3f1b37b1c97e4c67e6643c7e5b9fc1c0
+001e25e128ff90be15663f23292f2737
+748ba8b8a2c3d2464bf6fbf45d97da2a
+5b9211d5feac4df5db04640074136180
+cbb184dd8e05c9709e5dcaedaa0495cf
+5ff3543c99b7df8b5feec488f4a8ef83
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+863d2f8a6af2c040cfd43e7410b1f9e5
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+2d4ba5b5c77406378e1e88e481255c31
+36364ec9aa2f0995d283c1c6a92d2e5c
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�[�523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+dd7df2cf11f1aa2f42c4fae9ac0602ea
+
+740af85a7cf01a113d96982f40915469
+9988777496d1ddd020cdcbcdd4a2c18e
+721610847d089b69aa4c3f49153e6c70
+a46e14a3eba5ec1aeb9762683719c52f
+01c2daa824cc3d464fb7cf96d58909d1
+d7723d59965412e1086c6aa7acab5b68
+
+9f14bbcc49f6defa9238d757205a4ef0
+
+885f313497dee43c48276c709792531b
+3bc621f8dd819906b7676e0a98c6a2fb
+3f8cb98ab93e7d4d1eda623ae5d5674f
+
+1bcdd940e508f904f0dda035c9514b1f
+b609a4e206c00bd6c8026777dd78d19f
+7aff3a570e694083d2de5c482800ec57
+e6c5ba034edba758f71cb75321340d73
+e602a4528357cdb376343863a784a28d
+554e653e195b4d821e7cbeff0c8c0ac6
+
+8b3a7e1b5ef09cd7ed00d3a74acd8b10
+5c4a3784205c0b8a97d093f535ef67f5
+018fcbe611fcfad35a4c361a3fb55061
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+ac0711690cdca3740c86f6b6eef0a01c
+740dfd2dc029faaadc2a46e79ecc70f2
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+3382114701b2ac280665e47ecf165e86
+c42045031362cfa7215eaa0d4ba5edac
+fade9579147854eeedb1e15bf92ed269
+13fe210235c5da0bd9f5fbbc1fe98c44
+71aebae2166f9ca1195ad2aea86c3f48
+039e432bbbf4db4b885f8302681925c1
+2003b33b1233fb1fd235507e7860f802
+ff2d973186f894f879ec8f19bfa58e69
+
+a5597b0bb90087a6273f9f6653ba54a5
+80d5b17efc16ace990c07580fc3e85eb
+47bbf540262e6c9069cbb6a2eee04c00
+faba56ccaada3a9c89cf01fb4946c859
+b017984728ac60ad1f0bf8734f33f15c
+650033cf6d7a32d9bce37c57a0819568
+49b74912b477ad4e65659317f05a2eff
+540c13e9e156b687226421b24f2df178
+5a29aee8cfe3a5110dc892ab8adfc17f
+57cf1a392f0affe68ae8a0ca58a781ac
+cbb184dd8e05c9709e5dcaedaa0495cf
+9d9745793ea808834d7de26d55c88e2e
+9cd0d827e8b3f93b60d0771593e682e8
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�<\�;523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+dd7df2cf11f1aa2f42c4fae9ac0602ea
+
+36978fb1f1fbb0dcd52c7c1e1d6debaa
+eed238d818a04af73215fe7be845ad99
+466bdebfde2df6c6e731f107b3f7a53a
+b21f951f59dbeab4037fcd9c044a698e
+6452d2f8a80306789236a93af29f8f83
+3484c4db41bdbe9dac9cf3108f127b6c
+0e0c1eccf94412fadea540af4f40f018
+
+bb7258b757e6a3ffbdc4544780e61a2e
+7d90dc69c7e295e4792a8ca810df5eb4
+79064d3d1c6d88b14a1bc5f229c01593
+7aec2fa9a2a5f4e6cd49159330330280
+65464441d4d500f74d8abb0d661196c9
+c4c9bdd47ee05028cb84873da0ebf2b5
+14a7bd2d5c65a27ea164a3417fde52fe
+dfa7ec35ee34888972dc8c088527b4ff
+8c2bc30250b13e65ff7bba07baebf24e
+a7fb829eb1c10ee526a0b4af8e0c6848
+
+145cfcaf060a94dee4623c4cb324296e
+d1fb68ea784dcb497a26837bd0b5a743
+db4f1d4b492790f0e851f5fcc6c94d74
+b186b05d103d87313608d13e73c10b67
+9290ca2b57b1341541d78b8a5d2c0705
+191e36b777a789fb0e9ae942febdacfb
+
+31ac2704aa8a1678e0ab779c7a91a3e2
+e96a11fa19e8d691d1f8df5f916c2d28
+2ccc153f35841444a71e25eb47f382ab
+
+af85687205fddd35e96445273340c9a1
+70205710234a5ccd6f0c70e6983f0075
+36c5a0f8b7102531ed8ffc4429c2e5c3
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+9f7d8d7ae5a4dfb3c0b20f9df8ac7030
+c4c9bdd47ee05028cb84873da0ebf2b5
+74c1fc1c045f5dbf87305b30ba9b40f4
+
+bb7258b757e6a3ffbdc4544780e61a2e
+1c49587a64369138995a54224c8cdec7
+c4c9bdd47ee05028cb84873da0ebf2b5
+0f3f6415ecbbcf621db7f3a999ab4399
+
+c1c42c4485ec5be6062e7960e5d99818
+bb7258b757e6a3ffbdc4544780e61a2e
+56c3d95fb0bef4e3adacc3339afe707f
+07222b917eb6a68501d53404aa36503a
+c4c9bdd47ee05028cb84873da0ebf2b5
+3c2d71bf930b87feeca9710d884c1bb3
+
+bb7258b757e6a3ffbdc4544780e61a2e
+7f550fbf1fc7b9761dbc9f3d3f633969
+07222b917eb6a68501d53404aa36503a
+c4c9bdd47ee05028cb84873da0ebf2b5
+2076faea6ea093ff8f8befefdc6818b8
+
+bb7258b757e6a3ffbdc4544780e61a2e
+e77e3fc34e3fbbb7c1d5767bddeef16a
+07222b917eb6a68501d53404aa36503a
+c4c9bdd47ee05028cb84873da0ebf2b5
+7dc5842ef5d1d272078996e422ed94a5
+
+bb7258b757e6a3ffbdc4544780e61a2e
+872c9b563edd59d5e56703e626ebd728
+07222b917eb6a68501d53404aa36503a
+c4c9bdd47ee05028cb84873da0ebf2b5
+a89e763f0c5c8558110a070c2ae4a529
+
+
+bb7258b757e6a3ffbdc4544780e61a2e
+169bac9f95b82d3e134d3bc3f9d6971f
+07222b917eb6a68501d53404aa36503a
+c4c9bdd47ee05028cb84873da0ebf2b5
+457bb9ac5ceeae335fd20d4cc8d6ed43
+
+bb7258b757e6a3ffbdc4544780e61a2e
+6a4787a273906ebd9fd0547d80d17633
+b9d9a2f83a2df3a5f44ab9aa9de439a1
+c4c9bdd47ee05028cb84873da0ebf2b5
+461e02376dd761106c9f50f56f21857c
+
+bb7258b757e6a3ffbdc4544780e61a2e
+99a7af527003aedab7350563b13b9992
+07222b917eb6a68501d53404aa36503a
+c4c9bdd47ee05028cb84873da0ebf2b5
+f6e73ba965e6a6e7e1819ec384eac413
+
+bb7258b757e6a3ffbdc4544780e61a2e
+7cd4403310bd8e71d4a1c5b571cb584f
+07222b917eb6a68501d53404aa36503a
+c4c9bdd47ee05028cb84873da0ebf2b5
+62941f6c6b56c5e2c8228575d0427402
+
+bb7258b757e6a3ffbdc4544780e61a2e
+ba4cd72ff116444ac096cddd98c46af7
+07222b917eb6a68501d53404aa36503a
+c4c9bdd47ee05028cb84873da0ebf2b5
+7001010d716a9a93a50d0d5e03460122
+
+bb7258b757e6a3ffbdc4544780e61a2e
+1f1f01f641290949cbc224c880411b5d
+0f19bef790c78a39a1d17f8349e040a4
+9184f933d4428b8106ad201f2e98ad5f
+c4c9bdd47ee05028cb84873da0ebf2b5
+306af2816debbce565188daee269ad5a
+
+bb7258b757e6a3ffbdc4544780e61a2e
+a969a789bffdd237b5679f3ea238a1d3
+07222b917eb6a68501d53404aa36503a
+c4c9bdd47ee05028cb84873da0ebf2b5
+7fdf72018c006a985747658938ca7ade
+
+bb7258b757e6a3ffbdc4544780e61a2e
+baa1d3f473bbc01f95d902b1ba5ae5bd
+9184f933d4428b8106ad201f2e98ad5f
+c4c9bdd47ee05028cb84873da0ebf2b5
+a5ba88997b8c56325dbfed26cdb34d93
+
+bb7258b757e6a3ffbdc4544780e61a2e
+ac9d43cb6feeceea8c5127101a014b3b
+07222b917eb6a68501d53404aa36503a
+c4c9bdd47ee05028cb84873da0ebf2b5
+873c1673e246a1b69f9d413e18cc1f9d
+
+bb7258b757e6a3ffbdc4544780e61a2e
+1a84ac1d1fe48af6f71f63a877e00389
+9184f933d4428b8106ad201f2e98ad5f
+c4c9bdd47ee05028cb84873da0ebf2b5
+af8d3a53cddb699304b6b81a70cfc1ca
+
+bb7258b757e6a3ffbdc4544780e61a2e
+143ae271061d73cef188d3e601e5849d
+9184f933d4428b8106ad201f2e98ad5f
+c4c9bdd47ee05028cb84873da0ebf2b5
+e3d46cfbb8395b178bbee0c0fd5487b2
+
+bb7258b757e6a3ffbdc4544780e61a2e
+ea28d506358e69afb36de7ca13b1cba7
+b9d9a2f83a2df3a5f44ab9aa9de439a1
+c4c9bdd47ee05028cb84873da0ebf2b5
+6bfd91aff8691f5992136ff0f7d1049a
+
+bb7258b757e6a3ffbdc4544780e61a2e
+21adc08b95c286fd2a202e79845d2aed
+07222b917eb6a68501d53404aa36503a
+c4c9bdd47ee05028cb84873da0ebf2b5
+78c35c7287189b05c70572127e612454
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7248885104412c8af4c28440998fe6
+bb7258b757e6a3ffbdc4544780e61a2e
+56c3d95fb0bef4e3adacc3339afe707f
+07222b917eb6a68501d53404aa36503a
+c4c9bdd47ee05028cb84873da0ebf2b5
+3c2d71bf930b87feeca9710d884c1bb3
+
+bb7258b757e6a3ffbdc4544780e61a2e
+c6981018aa1bc1517a2309eb81a3caee
+3d941b85b55dbfc0dd923507fbe46728
+c4c9bdd47ee05028cb84873da0ebf2b5
+0bf878064ee9ebbe5d30188747537d7b
+
+bb7258b757e6a3ffbdc4544780e61a2e
+6979a1ef47b117138d2b0823e9879832
+07222b917eb6a68501d53404aa36503a
+c4c9bdd47ee05028cb84873da0ebf2b5
+4a3b6ea2ed187db8418cfc3128f638df
+
+bb7258b757e6a3ffbdc4544780e61a2e
+e77e3fc34e3fbbb7c1d5767bddeef16a
+07222b917eb6a68501d53404aa36503a
+c4c9bdd47ee05028cb84873da0ebf2b5
+7dc5842ef5d1d272078996e422ed94a5
+
+bb7258b757e6a3ffbdc4544780e61a2e
+872c9b563edd59d5e56703e626ebd728
+07222b917eb6a68501d53404aa36503a
+c4c9bdd47ee05028cb84873da0ebf2b5
+a89e763f0c5c8558110a070c2ae4a529
+
+bb7258b757e6a3ffbdc4544780e61a2e
+8a65b5e6afdd2e4acd549a7a8f88a010
+b9d9a2f83a2df3a5f44ab9aa9de439a1
+c4c9bdd47ee05028cb84873da0ebf2b5
+1a4d6616b041c2e4f6f9e02ada543daa
+
+
+bb7258b757e6a3ffbdc4544780e61a2e
+ec1b82d20b18da122bea721bfaf19547
+15db1136821dd535b02bb59e99d7f422
+9184f933d4428b8106ad201f2e98ad5f
+c4c9bdd47ee05028cb84873da0ebf2b5
+cb69ac0b118f400c258b30132cbfee54
+
+bb7258b757e6a3ffbdc4544780e61a2e
+ec1b82d20b18da122bea721bfaf19547
+15db1136821dd535b02bb59e99d7f422
+9184f933d4428b8106ad201f2e98ad5f
+c4c9bdd47ee05028cb84873da0ebf2b5
+5dc5d322c4e75ceed1299879a29866e0
+
+bb7258b757e6a3ffbdc4544780e61a2e
+ec1b82d20b18da122bea721bfaf19547
+49a2d4b06349cb55c2f80c79f19cd522
+b9d9a2f83a2df3a5f44ab9aa9de439a1
+c4c9bdd47ee05028cb84873da0ebf2b5
+5524dbb724fe50ba3eb2344f3444a3b5
+
+bb7258b757e6a3ffbdc4544780e61a2e
+ec1b82d20b18da122bea721bfaf19547
+49a2d4b06349cb55c2f80c79f19cd522
+b9d9a2f83a2df3a5f44ab9aa9de439a1
+c4c9bdd47ee05028cb84873da0ebf2b5
+6862382310b044e404662a55dfdc53e7
+
+bb7258b757e6a3ffbdc4544780e61a2e
+ec1b82d20b18da122bea721bfaf19547
+49a2d4b06349cb55c2f80c79f19cd522
+b9d9a2f83a2df3a5f44ab9aa9de439a1
+c4c9bdd47ee05028cb84873da0ebf2b5
+9e837b2e63f5a817ad716e8acb70e417
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+ae4befdacc72f78ae41cc4ee8dc58d44
+bb7258b757e6a3ffbdc4544780e61a2e
+c6333f5222d4f7cca115fdbd0164e10e
+a22e6b2533fe9df596229718372f0550
+c4c9bdd47ee05028cb84873da0ebf2b5
+ae6ae39fcf886cc4b3119d3fc4962182
+
+9a9e6a7d27dfc6f40336c705f5a14ec1
+
+16c4555fc92b2a93e434b4eb3a5af898
+
+2d11d40865976c3c97da3d3f58ba9974
+
+6ab3a53403fc6873c8aaacf816127c47
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2cd37f4855ade145662eb216038fbc02
+bb7258b757e6a3ffbdc4544780e61a2e
+6a9a081092314f64d0fd23333472c838
+07222b917eb6a68501d53404aa36503a
+c4c9bdd47ee05028cb84873da0ebf2b5
+acee59698af6236643e6aa734af83f71
+
+bb7258b757e6a3ffbdc4544780e61a2e
+857a93b2dea3a3c2d0222ee23e29a97f
+b9d9a2f83a2df3a5f44ab9aa9de439a1
+c4c9bdd47ee05028cb84873da0ebf2b5
+5936e71d52d7a5e0473259e7d56ee53c
+
+df4ce456f75d68318362ef569bf90aa2
+
+4ab3ad64ce25b2050f1ca55c73a2c9d7
+
+f606216e4cac581be040047e53ed2b56
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�R]�Q523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+dd7df2cf11f1aa2f42c4fae9ac0602ea
+
+193bf67889b339ae01aec85f433db1b9
+740af85a7cf01a113d96982f40915469
+6b35031568a8e35cc1d554c641be7cea
+31c124ed1c43cfb7b53bfb861b7d9f6b
+d7723d59965412e1086c6aa7acab5b68
+
+35af660d1117e581b025326c8a9174d1
+b1006ceb7caafc92cba2b1a3fc3eaf06
+cfcce14c5f9d7bbc672b1124ea6d84df
+
+
+93c9c7c4a956f79512cf16275096f760
+e0813512ce74d3afe0a7697a2adebed9
+
+7ce5999233f9529086ad4b8fe599756c
+
+a20689bb7040f6ba0012a95e2f13f381
+8e25c8bc4e3020bd8ce879c0c3ae8666
+
+319364121428350ee2f4e83744cf0e5c
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+0fc6bb89e262e8508750e0afae5b8f28
+
+b3a81a1b44fc8fe7204732b1f29e7cc1
+
+2ab744dedd21e45341cd6bb3ac9e7196
+b34dfa8c3ebeafab785ffbd229de780e
+f13c38fe2788ecff9e08c9c1c9aac2fc
+31884f86c3072e537ccdeb00ac39e1f9
+bd8dff8566542b8b1e6f0161bd3c7877
+0e4a0bd1ea0102277a7b59783d24a6c9
+41c0f8881f0d9eea265c3096852421ab
+48a138893e9abb60d5e428838e94be41
+40e33d5fb25bd7e7ba278d37769484ff
+3dce8ff3dfc6113c53136fc68df7ea9b
+293c8e7e426d33d04f21617736ca8b79
+837feb01fba224eb791bbbc9a13d890a
+d382a9a0bbe88a2923536a4d2f7d7643
+278c763f8aba1dfc4be9bac0d7b26529
+cc700b7e71aed90009e024c4279173be
+9fe9219d8a74ce330927b8dba0b39c7f
+4732fb05ced0f01a2de3ae40af5748e6
+0e213991796db161b50c583129678ba9
+3ec05bfb57b42a248fd3d516635e4727
+ba52ec23af4ce9bfb70e07427bd3412e
+
+3ccebbbc9c7650d30090d51e8eb09878
+0a8f2cdbe9485738ec6337909727267d
+c363921a7f13a4a5a397d3a8a0fb91bb
+8602f7ef5ae879a5a2edaf541d48e110
+b07ca969a56de00748d07bc27b2f6eb7
+41c0f8881f0d9eea265c3096852421ab
+40e33d5fb25bd7e7ba278d37769484ff
+af89613fd0b5c67809fc2798e6416a69
+be7e6420f9279fad2278c037d76a4054
+53acd0183f936b13fed68fc089a1f4f5
+55edfe0b03a55172a8829753901b9f55
+9b025bcb50e6dc8f933d179acfc81891
+fe1bd5527446633da024a35c35dcfc97
+ba52ec23af4ce9bfb70e07427bd3412e
+
+2abe5509a71a542acbf764f8607d3299
+1ee8af5ae7ec48f0340dd171f15a1dd4
+7b4448d35a12b65c83b5f1746ef9b364
+
+bb7258b757e6a3ffbdc4544780e61a2e
+257be181945c639bd43237629fb46d7d
+c4c9bdd47ee05028cb84873da0ebf2b5
+3e599e01e934b93099abd9e425f46138
+b17343efa31715aab8a92205bf9c2089
+a3931ed83adf8f02c522f30b2470c815
+1df62ee5cbc6f403994e3fd0cbc1d971
+5b9680d3dbad518da66261a564477c38
+9dc0e1eaafc54ff8c208f161773df5da
+2010cc16bd2344f4defbc3ed9ac2f8b2
+5800f0279aec90939ad6a817588bb510
+
+bb7258b757e6a3ffbdc4544780e61a2e
+153530910ece6bb2dec304da7181395b
+c4c9bdd47ee05028cb84873da0ebf2b5
+700f4a7efe6968349daa598de5b939c3
+6d6447ea5ee069cdc3e1f7fca3c648ff
+a3931ed83adf8f02c522f30b2470c815
+1df62ee5cbc6f403994e3fd0cbc1d971
+5b9680d3dbad518da66261a564477c38
+83cb623915ff7d38732f7d9fa7c6a04a
+e1f1b0d059ce7f0a6b98705352a74859
+088c9d4978aff26db283e3ad964a2e06
+5800f0279aec90939ad6a817588bb510
+
+bb7258b757e6a3ffbdc4544780e61a2e
+5aa21e73dc33eb7959ead270bb37454e
+c4c9bdd47ee05028cb84873da0ebf2b5
+ff7d7eda9f2ba7c82b381f02dff4c73e
+ec701948de55a921a194d485e0bbb054
+dc20c3bbc2a752375b31fc6732b06610
+1df62ee5cbc6f403994e3fd0cbc1d971
+5b9680d3dbad518da66261a564477c38
+9dc0e1eaafc54ff8c208f161773df5da
+2010cc16bd2344f4defbc3ed9ac2f8b2
+5800f0279aec90939ad6a817588bb510
+
+bb7258b757e6a3ffbdc4544780e61a2e
+848e1d32bc4b2f7ca130aab1f9408d2b
+c4c9bdd47ee05028cb84873da0ebf2b5
+1aeee7e7035897e9a088883b0d1f0d73
+8a40185564c76d30c2b51fd4b1ff7253
+fb9f4a6403dd85ae20800945b62e4fdf
+1df62ee5cbc6f403994e3fd0cbc1d971
+5b9680d3dbad518da66261a564477c38
+83cb623915ff7d38732f7d9fa7c6a04a
+e1f1b0d059ce7f0a6b98705352a74859
+86e20e6fa2b106b4f9f467e2512d944e
+5800f0279aec90939ad6a817588bb510
+
+bb7258b757e6a3ffbdc4544780e61a2e
+8640f40a42b1907771e32de49560636a
+c4c9bdd47ee05028cb84873da0ebf2b5
+9133d1e0f335d7b36692628da220d287
+702b4838fb49bbe6afa05f1922f2f303
+29b33046d2e0412041618500c50a06ad
+59febbf1f765c66a876bef7165cd2e33
+1df62ee5cbc6f403994e3fd0cbc1d971
+5b9680d3dbad518da66261a564477c38
+3f1c401a9423691bd232dd387d818abe
+9d677d1006381df8e58c5e0cecb81465
+5800f0279aec90939ad6a817588bb510
+
+bb7258b757e6a3ffbdc4544780e61a2e
+f4fa0e6d474e5b9377883068c35d17a1
+c4c9bdd47ee05028cb84873da0ebf2b5
+932105248bf6a133a91a6d3bfc7773db
+8f64ae9aaeaf4677b443de6d33bd3e20
+7f936265446ccb403a64163fc45e40ce
+154b2921ee0c29583ee23b13278c59bc
+1df62ee5cbc6f403994e3fd0cbc1d971
+5b9680d3dbad518da66261a564477c38
+3f1c401a9423691bd232dd387d818abe
+9d677d1006381df8e58c5e0cecb81465
+5800f0279aec90939ad6a817588bb510
+
+bb7258b757e6a3ffbdc4544780e61a2e
+e8a4f3b2bdf63232bd8b7b83cde5dfb3
+c4c9bdd47ee05028cb84873da0ebf2b5
+7bfb12dc311254eedcf8dc7c198757a3
+5597b310593cf2f7e226172c512bfc40
+14425bf7a6cbffabf7f43bd58f8b1e92
+154b2921ee0c29583ee23b13278c59bc
+1df62ee5cbc6f403994e3fd0cbc1d971
+5b9680d3dbad518da66261a564477c38
+caa2f200ca764f474f4d893531f66057
+e0efa6de41a47ea0384c1515bfd2d26f
+5800f0279aec90939ad6a817588bb510
+
+bb7258b757e6a3ffbdc4544780e61a2e
+e17779cd662e5d90d3eec35e3d882887
+c4c9bdd47ee05028cb84873da0ebf2b5
+3326f24d97b40cf3eff8a2589ea0f243
+728570384fb4e1f6704cc0a7dec60cd0
+fb9f4a6403dd85ae20800945b62e4fdf
+1df62ee5cbc6f403994e3fd0cbc1d971
+bfed59f618c307e24700f56998f2a344
+bf3910893ca778dbc104ee2f9cdbaa25
+5800f0279aec90939ad6a817588bb510
+
+bb7258b757e6a3ffbdc4544780e61a2e
+0db2a84f86b11a740ab02a1a7f9c99a0
+c4c9bdd47ee05028cb84873da0ebf2b5
+a605ebe43bfe7bf155a5db0b825d9564
+b183e6ff201e93842fe86d11c9d674c0
+fb9f4a6403dd85ae20800945b62e4fdf
+1df62ee5cbc6f403994e3fd0cbc1d971
+f669324441cd1cee22d83b6dc6a41167
+972472851055ec9695bed56064a3ba12
+5800f0279aec90939ad6a817588bb510
+
+bb7258b757e6a3ffbdc4544780e61a2e
+0bd5d4f70a738739511d2f3bfc746489
+c4c9bdd47ee05028cb84873da0ebf2b5
+21e10b0d30d69278213d9c6bd7f83766
+2364ec8a3a80fe023e5afc32ced50477
+0b39dd06c6b2b5e248521eed9e94d0dc
+05d9d8e39d3554d4df1fb90a81665d8d
+1df62ee5cbc6f403994e3fd0cbc1d971
+5b9680d3dbad518da66261a564477c38
+c889107193758e707a4eefb6dc0e27c9
+972472851055ec9695bed56064a3ba12
+5800f0279aec90939ad6a817588bb510
+
+efe7147b8e81cae9d4169eda0e0c639f
+72ae4aa72297652d6bbb28326b2f25f8
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+20d8b359b55e715a648bb7bab649b919
+7be41a401e4ed4c1542fe14a97b77778
+700fac70bae93519fe11efaebf3122e7
+1120be78fcd71eaea709b823858e8a71
+b7f9e870c15515636dfeb7b892aa647d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bed6274d222df50b133f839dbb479372
+86663cc2303d0d36eb691b59c35869bd
+3be427956d7e32365a289e6f02b4575a
+0671a3d248f16d8b1509a423d9704555
+1a885f49b467025cf5850b6549ceeeea
+1302d84945f3ea73668175a5a34bda54
+fed722a80a25bf9b4e11128ff1245343
+066e3993e33be5f5d843e9abcfb972a5
+
+f72de520ab27f4684c7c5ca4507af437
+fe6e4c6e3f3f15296c070e4e9b7df653
+8486c3d1e34babd6e4bec2efdba860e4
+1abab07a68b69aaa36aeaa83604737d4
+0b1cf7a0ecb63144b106cf6a6eeba577
+094ea136f769cd494aca48eae710ceb2
+8f8969ee0b5831ca653885d447fdcbda
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+644142e7ec6470daab4e90d2119a3189
+ca764d217cb44d3138b10acbe58fb348
+
+bb7258b757e6a3ffbdc4544780e61a2e
+32aca91de9d2ee14854cf3ae1b6d883e
+c4c9bdd47ee05028cb84873da0ebf2b5
+08eb99d6c17663494faee1bb6aece3cd
+ac5205ad1d0b4a644bc79e1f409795be
+cfb3d834b94cd95af3ff7c72c2368467
+
+bb7258b757e6a3ffbdc4544780e61a2e
+615b10b76925f2fede9fc48cb7c32c4d
+c4c9bdd47ee05028cb84873da0ebf2b5
+2213f2bc463861076415566cfe865b22
+a593555835f14dd20007916910817aa5
+ac5205ad1d0b4a644bc79e1f409795be
+cfb3d834b94cd95af3ff7c72c2368467
+
+bb7258b757e6a3ffbdc4544780e61a2e
+f3de96331cf914b9f2ffec59d39b85be
+c4c9bdd47ee05028cb84873da0ebf2b5
+2213f2bc463861076415566cfe865b22
+b3df8a89c7e56e7558af348d94307bbb
+ac5205ad1d0b4a644bc79e1f409795be
+cfb3d834b94cd95af3ff7c72c2368467
+
+bb7258b757e6a3ffbdc4544780e61a2e
+05a62f616bc7592ee494ffb408195257
+c4c9bdd47ee05028cb84873da0ebf2b5
+2213f2bc463861076415566cfe865b22
+8dea188f37eaa0f8c46f617b80f7a1b4
+ac5205ad1d0b4a644bc79e1f409795be
+cfb3d834b94cd95af3ff7c72c2368467
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+767bbbb6ee88d24eea5e8e44f8273217
+523683d90057e2bab094e1144717dd96
+cd4b2061aeb21917db08c9b0baf63a06
+4f5378b2606cd06b9f045a995d186ab6
+a3cd360f1adcd939a25e5742d8f7493f
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+f36856fc4dad5674193b188824d4cf80
+759ca60e5b3c2e96ae47a5d8fdb9f2eb
+a0996dd587bee7e1295c97360d1b77bc
+504872e3422ce2b090fec7b5ed6c85cc
+
+d3f11bc4190327b27a565635a0757145
+61b17917a638e65628a971239a361d5e
+36ebe01826c92bdd6a51df7b48401a6e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+376a47b0a07607d52a036da1ec23d848
+c6866b176be9a0c99bb009466bdb3f90
+34da4a5c6f3ac5aac09356a18e5f8c78
+cbb184dd8e05c9709e5dcaedaa0495cf
+01a4e1572bef98558ed7f4e845c07cfe
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+26a08eefd16a425831ead9e3fbaefa4e
+d95667a0440e3a73811b6c26903b6084
+f779b50fb5b65b91a1bc881c80b18938
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+2c953c12d2eb6ea958b7f3045ecf8e81
+015b8f183b31275c2232ad2c8e8fc996
+7407562aa49f33276fac3c6d9b58d9a7
+0bb12f1cc443ff37973e93469214c299
+
+6410ef47247cac7eba1678e05e19fbab
+406575861a8caf4a96d25a062ac4e864
+10780b181a21a665d30242c2b4aa0442
+86bee4ca95ce813115074f0218c08a3e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+8b613d94288736eaf28b8edeb982682a
+123674392f2855a892936a3aee505718
+df66cc412bdc3e741df1ded573ad28b8
+86bee4ca95ce813115074f0218c08a3e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e0818ea8d364d72a61eab162339fdaa1
+37efe536ffa2ca0f1f2f0eebee00206d
+86bee4ca95ce813115074f0218c08a3e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+fb31dacd2dc079eef3aa4e4e250af911
+700fac70bae93519fe11efaebf3122e7
+cd4b2061aeb21917db08c9b0baf63a06
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+3778357590c42e65122793bce84bd734
+be801080de38ed12efa6848406448187
+51988dfb64118b63166ca3288f3d5fb4
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+354d522dbec0349f6aa5507441dbb0d7
+94d506717b5fef6cdc684718c4727c33
+39086c0936401f54e248d5fa0a248922
+d95667a0440e3a73811b6c26903b6084
+f779b50fb5b65b91a1bc881c80b18938
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+e74f41ed097d6b27e9f0a2dde3dfa607
+9eef8ab3814ba41004aa7fbd729f9050
+6aa332275eae134ad25a73dcc397651d
+64110bbbb19da18d6f88d522096e9f55
+f48de2f1437de530395df182690d00b7
+b3020974b66aa21281a5c4f1a5aaea1a
+471557d03ebd2cf7e90308f03539a559
+4e44bcd0342f70d2f4f26343e752e96d
+d229f7b3090ef04f3367b25834ae6325
+ca764d217cb44d3138b10acbe58fb348
+8dea188f37eaa0f8c46f617b80f7a1b4
+ac5205ad1d0b4a644bc79e1f409795be
+cfb3d834b94cd95af3ff7c72c2368467
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+56b007615ac39e1bbd024e0712cb8249
+4cbde53464d42a782036418677d84bd8
+90f8932b3b38840e8af67b65b946d6b0
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�_�523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+b7da78dfee3f9acbe30782032b36b0cd
+
+e06ab30b1d77a9ecb5d24d97c40ed810
+
+42e028b4328e754c3487b02ba8271320
+
+c0baa19c16a9882e663ffeeb5a55b48e
+
+68f906f5d17027285ba9f4929e21d546
+
+97d3176950c069f6ca4fa8eac813667d
+
+8cf415a2a6139b7b715a12ee6c8cf3e6
+
+8e54521f9ada601e98ccaca69463fd62
+
+7ead5ea958967bf14377228e2ba98c21
+
+fb33b3e9002caf6f50027ce05d1376b9
+
+ca83f07fc625e2c38f4c0cdd0a60a5af
+
+cbbdce6b8ad6f1af185d1a6a83a2d800
+
+512a6b305b616093746edd546d836d3c
+
+ff17a431b251302f399e7c10a6aff984
+
+ea360a072c3edeac33f18f103dc7af6b
+
+da12e3a6e949c10be0e57c16b5de49d8
+
+90d9f9a79e76edbb824efecf3c6a6e03
+
+54b53d95da2a2b1f47052a9707b43df6
+
+10c9162c73a334a9edec4e9c7793d622
+
+3387bc8a4c7f6b5118f56f579b3a2a60
+
+bcbf12c5b0f9f5f2be426c2451c3b25c
+
+1b2f804893df9a47b4988efe8a27c050
+
+fecca0c83dd9d5ba77fe6a1c5e83d09a
+
+6359919a4fd56887a4c06d2fe5b0cea0
+
+dd6f4aa77e8c95af73724491132a1197
+
+5cd8594398a1aef18c66cbd14e057822
+
+7400125a57b2eaa6944f18fac6af8a8c
+
+23fdc46605f105b79b55ef1da66b265e
+
+a373c8ca78ba95019e6315bc61c7ed1c
+
+b1f17e6b884222ef7be8c20bb4dcdffc
+
+5ed9d6ce66c6bc08f73c6c6e64aa313f
+
+540e58c41fd26172b836ba96dd425cd3
+
+111e5b14b9767b49827fc0a02905ee2d
+
+f1105e2e3e8517ef5251d61cfab3edb5
+
+ec424621c4e4b7f405d1d332558d8aad
+
+ffaf74c78211e4da1ac6258e30d84495
+
+07918c716e565acdd8c91e0a270cee46
+
+89b04c2481aa3e278d77160a46a2ed66
+
+f26a3e5121ca826dc4455efc29827d7a
+
+75f57bf9e4730c18cad77f2c280c3891
+
+523df456500618ecb94161936494ac1f
+
+ddda99af71351629695a462e96a899f1
+
+fd544d80cedf766da9800d2c639aaa49
+
+72ae6600a75f386dcb1855a85c393739
+
+3b58085944606e4ba76c149a6140f64e
+
+3d45d32e78039a03541c2591a0a49205
+
+6f1fe2c5a6a63e63cbb65e3b35db6d27
+
+fbb3cdd58fe6bf9c09434aca9bc23d34
+
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�E`�D523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+b7da78dfee3f9acbe30782032b36b0cd
+
+b3fd1db598b768bb94a2996acd010fb7
+1bd8fcb2421e515eccfd8006de8b4b9c
+3187cbfc52c03e9f72a660a0f76512e6
+1af0b524dbc8a1689697ac49bc7add26
+193bf67889b339ae01aec85f433db1b9
+aade9e8159a0047e6f94668114a3da0c
+9988777496d1ddd020cdcbcdd4a2c18e
+d47e91d36d9150984d407752b9e9b4cb
+d7723d59965412e1086c6aa7acab5b68
+
+a06699b08840f779e6b958cc6246d6a1
+f9ae2cd701fc6b49425b54db669062f8
+cfcce14c5f9d7bbc672b1124ea6d84df
+d38c7a60302fe5aaaaf794c171b0829d
+
+391715e38dad3a13b75205d527e82c8a
+f21b6af4795c6b1462d3a87a7da9e52f
+
+
+773d86fcdffc21445fbe9eaf7a6bfa3f
+b23054c0e631184ccfda262e69b1c5cc
+97db205fe2b5036f9e28189726d900aa
+ffc90d2b90ef04d23c8bf1f83c7cc483
+90939a3ac8bfd21b8b906e0d7e6089f1
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+020dfdf650b323cc9192b2671a49613d
+27f5bdd1cc02eb277b8be7d72e323907
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b73a4edff6cc7aaf28ec28ce354a88d5
+65c5181460be212f5c73887302acf237
+304b52b22406197171ac9ed351235dbe
+4d62a652a37eac092673cf43c09f9f63
+5e2bd708bfd9ed026a3eaba9f333b333
+cbb184dd8e05c9709e5dcaedaa0495cf
+af6cf24342a2e63c39d91a9cd9ccc387
+6ee15dd14caa80e20055bb48fe195766
+b8d5b5be5af879b50a6985bee4d7adf8
+cbb184dd8e05c9709e5dcaedaa0495cf
+80d5b17efc16ace990c07580fc3e85eb
+6b87eae1e07ea307cdd1dbac4f3b3dfd
+eccb4c5b3d872eafbc0c2ca7f30ea1ee
+763eef329befcbc5cb3389da1112047a
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+8a6c141756d58ae351cd56242e5f3361
+ada531f628ee97919c579aeb671fb685
+6ca92933d444a830b6c559600c0e6908
+f4e5b4cbf1511db3332ec976b047d6ab
+6ca92933d444a830b6c559600c0e6908
+cbb184dd8e05c9709e5dcaedaa0495cf
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1b59c920ddb9f3ea2d7f45cb7718eef7
+ca764d217cb44d3138b10acbe58fb348
+9019af387d2a22b514b87905e18cc3aa
+4b97f6e4deb19f6eabd97715c5049f37
+0cc5f3ed6465fd20389ef8e568d3f782
+cf23efa11dcbe6e34f10f69a5a84d19d
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+0602f610f9c16265de59186867374f94
+c45cd43dad2c44a897df2f0521a3dcbe
+ffc90d2b90ef04d23c8bf1f83c7cc483
+90939a3ac8bfd21b8b906e0d7e6089f1
+8a6c141756d58ae351cd56242e5f3361
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+b73a4edff6cc7aaf28ec28ce354a88d5
+65c5181460be212f5c73887302acf237
+af6cf24342a2e63c39d91a9cd9ccc387
+05498855d5f6adebdf23ad86156ec7d6
+04817a23b11ed9b31e1743fc78e975ca
+fe45d8685432aa77aaed765848908138
+b8d5b5be5af879b50a6985bee4d7adf8
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+80d5b17efc16ace990c07580fc3e85eb
+6b87eae1e07ea307cdd1dbac4f3b3dfd
+eccb4c5b3d872eafbc0c2ca7f30ea1ee
+763eef329befcbc5cb3389da1112047a
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+8a6c141756d58ae351cd56242e5f3361
+ada531f628ee97919c579aeb671fb685
+6ca92933d444a830b6c559600c0e6908
+f4e5b4cbf1511db3332ec976b047d6ab
+6ca92933d444a830b6c559600c0e6908
+cbb184dd8e05c9709e5dcaedaa0495cf
+d1fe4dae1118fe43410f233c92f0438e
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+bda943e01f8d40c4d91d3f36084a6591
+c4c9bdd47ee05028cb84873da0ebf2b5
+dce1d989f9e82c4d67bde5d3e0dd2f38
+54aac5e202c4f8b3578e21a2d81026ee
+61376c6af2f7be2b4cf1700e3d12c3b1
+709f3805b56930dd6e4e46f32f5e447e
+f539078791e1a3bd11d1016bb54b4c08
+ff2d973186f894f879ec8f19bfa58e69
+
+b524e41aa0cf6ad39267f32c8c687778
+3562f1233b8492a7e79c98b410144482
+9626c1574f6dcd1c46da1ce796145222
+80d5b17efc16ace990c07580fc3e85eb
+f3f4101d5ef94dfd52b13befa2b3562e
+650033cf6d7a32d9bce37c57a0819568
+7246127760bc8d9342c7c79f09159dda
+5a29aee8cfe3a5110dc892ab8adfc17f
+57cf1a392f0affe68ae8a0ca58a781ac
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+30887aa135e96765ba1eeb0f19a56ccf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+376854749b3d510855b5c2bd4d3abd62
+bced58c8e4ea30975b3f0190bbfe7528
+84aee758bb392c96ba61947d6fb3f4e4
+84c118f09e96b88f0d06822b54f656c1
+5e6e40b290660d18f73e3e9ea327f651
+ff2d973186f894f879ec8f19bfa58e69
+
+118233747fa30601a0dcdedb0b5e538c
+3562f1233b8492a7e79c98b410144482
+6c75d7b0b7e59ae9b559c59d9abdf0c2
+7ac7d996e0184f8cb5b4709db416fd8e
+cbb184dd8e05c9709e5dcaedaa0495cf
+57cf1a392f0affe68ae8a0ca58a781ac
+cbb184dd8e05c9709e5dcaedaa0495cf
+deabcbf65b042e6a4d6ba5a7484cbfda
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+4faad923c8bb34b586c707030233658b
+bced58c8e4ea30975b3f0190bbfe7528
+c784c1378daad66ede8a90b3f9a1a0f6
+
+118233747fa30601a0dcdedb0b5e538c
+3562f1233b8492a7e79c98b410144482
+6c75d7b0b7e59ae9b559c59d9abdf0c2
+7ac7d996e0184f8cb5b4709db416fd8e
+cbb184dd8e05c9709e5dcaedaa0495cf
+57cf1a392f0affe68ae8a0ca58a781ac
+cbb184dd8e05c9709e5dcaedaa0495cf
+deabcbf65b042e6a4d6ba5a7484cbfda
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+88ed0a8da8f3e3036bb386e120700753
+06d4d50ef47220b8a40254d760bf00b6
+c784c1378daad66ede8a90b3f9a1a0f6
+
+118233747fa30601a0dcdedb0b5e538c
+3562f1233b8492a7e79c98b410144482
+6c75d7b0b7e59ae9b559c59d9abdf0c2
+7ac7d996e0184f8cb5b4709db416fd8e
+cbb184dd8e05c9709e5dcaedaa0495cf
+57cf1a392f0affe68ae8a0ca58a781ac
+cbb184dd8e05c9709e5dcaedaa0495cf
+deabcbf65b042e6a4d6ba5a7484cbfda
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+814c11a565fc29172884cba12038a9e3
+dbf1e8cdeb035cfefe80ec7067560014
+25ec1eb84ff779391f4fa928abf24ceb
+b697f8cd4f3b7ad63930cfc9f0738cea
+a1100791aecd49c76ddb1f8a58b28e66
+605ba37c0f7761e2a547e1b3d3165935
+118233747fa30601a0dcdedb0b5e538c
+3562f1233b8492a7e79c98b410144482
+6c75d7b0b7e59ae9b559c59d9abdf0c2
+7ac7d996e0184f8cb5b4709db416fd8e
+cbb184dd8e05c9709e5dcaedaa0495cf
+57cf1a392f0affe68ae8a0ca58a781ac
+cbb184dd8e05c9709e5dcaedaa0495cf
+deabcbf65b042e6a4d6ba5a7484cbfda
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+9cdc85515db3b7a8b029cc0ffb1ece6f
+5c078792c8b807913fefb63c76107025
+7b1e96a17a999da625fd4dd998b3a32d
+96e8e9ccabf6d2baf5c9b6c2ac131861
+21dd96d926e9c57d5146042f3d14fd33
+ff2d973186f894f879ec8f19bfa58e69
+
+85e435e7972e8124a384bdb6f4a40d17
+39bf504070cfd0882f5f39ba97778952
+0dbd24b09bd064de529629aa3aae289d
+58ea5e6baaf11ed2710350344bf0c99e
+01684440c3624d281743789b407ea69f
+80d5b17efc16ace990c07580fc3e85eb
+7d16660e58d70066071c25fb3f588895
+125d6a6e353c8f54695b45aaf6bb0714
+1e063cd556465f03fc6fbb75b85a55f7
+dd823a5cc447b06908f818d3c3e4ce3e
+650033cf6d7a32d9bce37c57a0819568
+818e14eaf6a70ae26cd9f0f93f1606ab
+cbb184dd8e05c9709e5dcaedaa0495cf
+58cdcd8ba9f33ccf2a567d33925f60c2
+cbb184dd8e05c9709e5dcaedaa0495cf
+fc0186588dc763256201ab7a56b104e4
+cbb184dd8e05c9709e5dcaedaa0495cf
+d2d4612e029977363a9bbebd4f0339c0
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+6f4ce78774678322cb7b689f4cfc0c0f
+944171e9be718b7ec512b844c793b04d
+e668e0f41ae7e88f4fedaf8ac165e62b
+c7ca318aa89160397e516d4019778a3d
+f55d16a9a5163b805947d3b32889f988
+ff2d973186f894f879ec8f19bfa58e69
+
+a5597b0bb90087a6273f9f6653ba54a5
+80d5b17efc16ace990c07580fc3e85eb
+63d103f68274d99f736ca9f8c4dfed35
+650033cf6d7a32d9bce37c57a0819568
+92080fa443b04f8cf07359def5c13803
+5a29aee8cfe3a5110dc892ab8adfc17f
+57cf1a392f0affe68ae8a0ca58a781ac
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+9cb9b6c9951bf8e98e1abaf5e2cadcad
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+59ff3bd65662e59842bb55060f5ed491
+944171e9be718b7ec512b844c793b04d
+90a1ffe9dc04ccf5f980a03a1e7ba92c
+9e88086881f75b28e5530f6870cb64bd
+30e9ce4b0d68529f3798ee8b21452284
+414f0cebcd94451e9309300f48e9eee9
+ff2d973186f894f879ec8f19bfa58e69
+
+3562f1233b8492a7e79c98b410144482
+9626c1574f6dcd1c46da1ce796145222
+80d5b17efc16ace990c07580fc3e85eb
+aeb046c14d97efc985f998f2af98cc94
+650033cf6d7a32d9bce37c57a0819568
+30e88ef5eb4dea9398a4736e7dbdb73a
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+57cf1a392f0affe68ae8a0ca58a781ac
+cbb184dd8e05c9709e5dcaedaa0495cf
+bb30ba0b277e7e114796d8bd84617021
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+1faa3e39c660f810b2ab4fb9571482dc
+54aac5e202c4f8b3578e21a2d81026ee
+df1d8866173d9ee0f10193b77844f5a3
+dfa93de07a86579e41aef9ccf6fa6c48
+3846944336e8a9959a4e17f7b2fc403e
+ff2d973186f894f879ec8f19bfa58e69
+
+3562f1233b8492a7e79c98b410144482
+02171b82446634d74cc68bbe85dbbebb
+9626c1574f6dcd1c46da1ce796145222
+9314c1d869579475b5549372f5f03d7e
+cbb184dd8e05c9709e5dcaedaa0495cf
+57cf1a392f0affe68ae8a0ca58a781ac
+d1c3871bdf6d003f0e9a4d935a34ac52
+cbb184dd8e05c9709e5dcaedaa0495cf
+4f0766e597f85ea2a86a91ef5ba2b41b
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+56b2305ecd027a23e5d3de04b7a525ef
+51acbb223232c88f4ff1df19bc1a6daa
+61ef93fc62eed10f69a3084e44ca7be8
+7699df34205af78aa194a098c15c193e
+37e2caf2a9d306900084222f3d750ffb
+3b5f22d2bede0f5a696c04044facaa99
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+d1c3871bdf6d003f0e9a4d935a34ac52
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�'a�'523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+b7da78dfee3f9acbe30782032b36b0cd
+
+740af85a7cf01a113d96982f40915469
+b82639497a455122d6a0dcf7a457f37d
+
+a98d49638098b960f6f1b0449b2931a9
+f3a29cae694a85cbdf864dc394c6e6db
+
+65ce8a9ae78810faa6d808796d6a4ff1
+
+591fe982cea1c5f2e1d0f168c576ac64
+064e0afabd8482b9ac6b4bd7e2686f24
+4586879ead2ee30e2c77a76b2207e794
+c187f93f23a61c589893e263be4893fc
+f43861be5603b6998a5463e9ceda58fe
+
+7164ca38b456989993808e8b70fbc57f
+
+093e58e71f69fa9f3f552846a0a1726f
+6b47b558275909fe56f0d48e8873b683
+61c105e3666c1970722af90dd19438de
+d7d18b5bed02ee306cc1ea1a0f1bbca1
+
+bc1bae64142d530f69b8d6fb91339b4f
+
+3225beb1c6cea267aa4e87efa2224b94
+1dd0dfb6c96474baf2a1914bd4d5f65f
+292d813f11c98176016caa2a11a9c82f
+7e35f1db8f742a79567f015bb45600c5
+03a7d7d8b96c1f83299cbded7d1e575b
+3f2f4d1b9c3c9ebd2a3ea166b39b7da0
+c1fae0d110894801e40d759060880b1a
+2145c1b6992c0d519ad223f91671329b
+
+cc770dbd0adce32e49160edf266d2ce6
+b8e019d5b50bcfefc161ff6542870aec
+118ad422f8f60067ee19064315d3ed6c
+22d1c246cee4bc54bbe90b45c4e2c538
+103dc8aebeac7eb5963e31aa6c0e5941
+cb3f2d89526019ffea6e307597ba06b3
+2145c1b6992c0d519ad223f91671329b
+
+170f422dd0023f555d28a0f3b31b46db
+ed96a3eb5ac02133a738984452d49636
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+77d1f9e8edf38c4734c5816322e94c76
+1863ba578b74870ece465a1b172210f3
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+10f4ea925fa1da2a51c8194ddefb6fc0
+c3e1a1040e16d6674b31dd535b936ade
+4010b2c71606cc35b2b9fa3566de89a2
+d7484b4d50c47836db71a2559190ce06
+9d9745793ea808834d7de26d55c88e2e
+9dd31d783be5c7dd4ef8f66d72c87588
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+4eef02096002d2aea3cc7ff604a3827c
+dca8d9d69dcaeb27c262545ba654999a
+16b56d6ac2bbdfa94d4a14d0daf10927
+1f445702b42eeb80e81ee65a1cbd4c11
+8708f97516d8a77fe17ef6772a6efb64
+0fbcb9f357503f2a2702342cf562ba5e
+aea3879f37acb3d2012ed1e4b44ea6f4
+2145c1b6992c0d519ad223f91671329b
+
+42db6ccae5d0bac34a05c138f47bd8a0
+f0bf66874572a735cab25105befa8d4b
+9f2740993a3b968cefcebb174477ea1f
+25297c2045e7de5b6937189ec86745c1
+17ccd90402c63b88e8ae400c6d229e1a
+cb752e9aa17ebbdbcb3eda13896c1afe
+2145c1b6992c0d519ad223f91671329b
+
+67e6d0e2c2d9f09594d96daf167933a4
+f5f9c3487b914dd2eba44b7ea9e9ef61
+48b8d3ad1439e1de23e37b93bc0c061d
+816333946995f1c3e93c3de06b0a5e54
+e2c671afc143596e18a9800b8a68f7af
+e5c2ccca02fb7f2bcf5e3353e7557588
+2145c1b6992c0d519ad223f91671329b
+
+4f829f3157ddad60fd97b49481fc7a9f
+50fe6aff43b807768631697f94502262
+2ad93b175569abac3d247a33d80ae276
+b999a9fc7be49b9eb7b1b1d37bd4b99e
+a963e1bcf23823ad8adb204779c77c9f
+4862b167c50a48df925b3ef6887635a5
+2145c1b6992c0d519ad223f91671329b
+
+a125f876fe910df7081d091769c1fb0f
+005d362e58ae7f64191eeda38404da1b
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+08609aaf3a507c639b017eedbe343da6
+554df9e3548ebb66675277c9c4854c5b
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+f9e292aa6bf24122744ae41e3b301451
+f424898a302f7886a3fd7869ed93dd33
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+6fd7634d36a69956827b37c8e79ad608
+0f2b7dafb9104a3a253903312162283f
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+688b13e3e4b656ba5002a8b9d19223d0
+ee4b1e84c4b246e85074e3b878d7e866
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+9cb22b6a88459f9b8eb9c89ca722ca81
+145d8b04e7de0abfe77419c171affc49
+0f4369d11b31d4a426c92cf95bb08cad
+0728c87f94806b13c874c4535f16e8e5
+a75ecbb4a7c07ebe4f252c58e6f27567
+3496b286e2b0ac84cc1d47c9e31845f0
+35a30b5b2e76d01065462e765a43592b
+2145c1b6992c0d519ad223f91671329b
+
+855e69bb7cd2753184e51bee26836d6e
+41790ee0625ab772debaabfcf83ce09c
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+d26d3d1cbaef6b1820d7201e7daa2109
+c50f5aabe4ffba9e70e605f5b3707794
+fa555e72010e46ce191c7a9dd35dc3a2
+a1669f301906a08272b306c6b678fa78
+a0df7dae2372da11336a084455aceb9e
+0442a2803a593997581fbe9bb36b8318
+2145c1b6992c0d519ad223f91671329b
+
+bbdf4c51e5058a9bd69745e95f9df72c
+44a2a77affa60823c58d20b5ad9696b6
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+59c9cf4056122b6869b542e0508dba73
+9bb7519d6a05f3bc0668dfb401198683
+364939de70fd92ac76d111a3529e4f49
+f58d572615acf9f1cbe2402f59c412d7
+70bf27b2cf8f8624f73eb016347f4eac
+fb5d5f6589174227bdd5248c2f2f596d
+2145c1b6992c0d519ad223f91671329b
+
+90d8b7cb3a755705abc5b31c148fe65e
+bb7258b757e6a3ffbdc4544780e61a2e
+76f3869927f0651cb80c442209c54c26
+94d33595ba2f077138d80eaf69642cb2
+b49f657c149c016935239b2485769272
+c4c9bdd47ee05028cb84873da0ebf2b5
+c98e8f716ef09e733ae6e723fe68d84c
+9a3c072d1fc9fb9ae421a4553ec27e65
+cbb184dd8e05c9709e5dcaedaa0495cf
+2af0d6053da8df915ad4769f8f7333cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+98e1ed51d30d040e142fabc6aae0fb11
+22cdc1ce5829121c1163b6684d8b9b02
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU�Mb�M523048e7f5ca9550505f2d8ea6d587e7
+e75749076e78456d9008c33b5d616f83
+3389dae361af79b04c9c8e7057f60cc6
+a40f9960a15b34b7cda674e33008cbc5
+ec0ae6c3120b8c2b882b313b746abefc
+58140907566c442e67965c12cf329804
+3389dae361af79b04c9c8e7057f60cc6
+0727fd4e4fd1d7cc73a146028bc51767
+3389dae361af79b04c9c8e7057f60cc6
+3eb900c8a69ae762d92abce9010dd068
+343399fd3f744c34c7471652402cb3e3
+dc2eb86d301e7f4b1c0797354cccd446
+c631668b249243af10c5e5be8dba997b
+702bdf212272d99dd6b42331c239344d
+c4c9bdd47ee05028cb84873da0ebf2b5
+
+b7da78dfee3f9acbe30782032b36b0cd
+
+740af85a7cf01a113d96982f40915469
+9988777496d1ddd020cdcbcdd4a2c18e
+d43113330e39b7d2b8f863a12c24cf6f
+d8ef62f07d0e287d78ee5c31f531211c
+08af5be2679df8ebc75eb912557f1c09
+d7723d59965412e1086c6aa7acab5b68
+
+a98d49638098b960f6f1b0449b2931a9
+a06699b08840f779e6b958cc6246d6a1
+35af660d1117e581b025326c8a9174d1
+b1006ceb7caafc92cba2b1a3fc3eaf06
+cfcce14c5f9d7bbc672b1124ea6d84df
+
+943d54ba3e8812437c4d26ef8aa263f8
+5cb6e4d8f3e7b56a26deff4676cba0ab
+8f984e97d8d06b8fd8760cfdee403599
+6fa05171389dfbeda44181c98e580d18
+0f2f76b4a4b0f0b82ae044cf68b2bad1
+
+
+1d35ee907d1263fb61b2f73dd9f795a6
+c36e5a225293b5dd90eb4bf0237d9b4e
+98b354df776939ba520b444276197d1e
+aaf220c22f90fdacd402e244a53d0ec1
+
+4a5b6a9a4d80f538b236727c1e58aa9b
+63ed08213e8e7f04b9f400cc08ebc8e6
+faba8600e0e731f5ec900d0be319fbda
+cbb184dd8e05c9709e5dcaedaa0495cf
+e2e51b66b13c8f3a9fc4e9351c690614
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+84aaa6e1b5987005c32317cd76779c63
+10549057c0bbd6210a9a0cf3d94c501a
+c4c9bdd47ee05028cb84873da0ebf2b5
+79656545788592286c843d734c007f41
+09afa01d56cb9926918fec7b60c35433
+38ea066e8c2eacbc7c042d4096cdc4e0
+6bc0329eddfed6b18f82560e314627fe
+c8929414b9f38d51d847fa31d49088b5
+6c7dbf08298a9c8bf41dd71c7b651301
+ad9ecb7ceb699e600f89f8df0523a481
+bb840fda303a43330471c19852af4b9e
+786f5f2095c08be1189a4778a9e4e51f
+72a1d03f2e33b46707a30fd092a71bf0
+
+3510df4e27ea8a23af2ed51dce0e3701
+
+125a6c022ae926db853287a2101ddbc6
+537a88bf7fd9b3a7243c8207c58d7c78
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+081840d0d0fbd399408c74ba9fe02570
+a73995da9f929bd996fe0935c7a2138b
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+9dee7436480a2bc03348f928e67ca886
+a87a1cb6a910deb0d19b5e387b436281
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+3a587705ebee9595a3a94b21b35d577a
+d4e2309efb6e1a3680376b73455d07f8
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+4a2adac2781dc022b989a41dbaa8047f
+3548aa3bf67fb847f5b39a09ebb543c5
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+485792bd451b68a9094187fcb9f596df
+fd39a20914067dd5510bd05613fcaca4
+ccdc9abedd559a444b66fc2cd934b512
+362f9aed5f5cd698f4946f5bfeee9590
+87617264ae03f583e1228ae36e133782
+f419c3984fa28775c89a3e266ccb5fe2
+2145c1b6992c0d519ad223f91671329b
+
+c9543d9acc096fbf31d6143ac70ab3e9
+
+25587f13c8e632edf8baf86ca1489976
+
+65611a34178261d4142d92cfd60f95d2
+
+d7f2749e9cb5eedbbfc5c68a646553a6
+6ed200213ac9b1846fb29a810fee046b
+8e54e7d80a219577f95786016c18e5a9
+e7bcbfd37d8ea94d0e9b2df11a5bb325
+c1da4b5cd5d4a9870af5c1b9113c1ca5
+44e7dac87faa32d0e409607f2cb02dfe
+168fd67bd5c6a496172f18576072d805
+2145c1b6992c0d519ad223f91671329b
+
+cab2f7cfe1457c2da08d927c8033bb74
+
+73b4381284390905985ce83437b9056d
+
+c0a9e426e5b09a08505c8efd003ca25a
+
+97a87ad7c11b885b0a56622d1ba0befe
+
+a6d01cb63c67a49a402b744a89977918
+eda1e34de1d0dc7b00ee196e5b8424a3
+6871c66fae87d32c6b0f7dd69f6c1457
+6ced34d8accd4bb42d3696a0021ee050
+
+c458e619396054f78bc926fb81b4386d
+aaa2a753f4cc89aa48a7f98fef3601a3
+a6a51ef096aedfd7b46fcd460c2610bb
+
+916ec9309a892e22ed9bb19d9e651095
+75361f11a6067bf0df5ee323597c50a1
+75df9d476e2298272f14383ae1ee3a00
+e28376b80af8d94ac86452aed3206a8f
+0bebfd4a4e759237327b1e180e24fdff
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+7e969e2936555f8f8c8451cc9c93cffc
+18f8b32a3181ab0baf45b89b08f15396
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+08346e84fdd1ab2f410fa076aeb4cc1c
+c4c9bdd47ee05028cb84873da0ebf2b5
+ad38bdd2fd1c7e9e4b0032edaeaa72ac
+61f2e685fe083f3ee1b8098a80996899
+d13cb5cf4d4d3807e3b5c956079b3c3d
+515d23784532937058b602955ce815c5
+4cab1d86291117d135a1af1e50a77f68
+d981474263d57511baf0a0a8f72dc872
+
+976d05ffa73cad267c6d389702f4e743
+2870ac55daa1775b0228d4bcb22390a7
+01684440c3624d281743789b407ea69f
+2e7c6cab9b778790fe40d39f7194a130
+11bad08a06b4a1f9c9b21f6d1318256b
+b4bb6176ea96799ab172019d6dd521ca
+3f512ea4c56c9cf1cc4918ed4cb30b6c
+8434a73a9233559576de4a821c408beb
+6b8c0a753adb4eb6433da5bd103444ee
+682c48941c82e73e8296f63b271ac24c
+9d6d2a61d01e5920ac686217bbf99f17
+cbb184dd8e05c9709e5dcaedaa0495cf
+26476c48bb3bfc2c847fe82f29e69efa
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+4b3a110a57340051a2f85eb5180240e0
+c4c9bdd47ee05028cb84873da0ebf2b5
+e065d8e4f299b2323f48f32c045f9cee
+75b84123426ae1bb93a1810f5fc882e6
+2f74197b972f565626286811716fc386
+e5cb75eb0f90ffbeff18297b25a3384c
+d981474263d57511baf0a0a8f72dc872
+
+c6b9de85c5866acb1e80d29096a5cb66
+23ba95a67f86cb34457aa21761f2416e
+01684440c3624d281743789b407ea69f
+ad2f68ee8515e69c2bef04c3ae0cb19a
+6f99b2ed670d9c35db4e470c1ff1563f
+638387a5396b3bbf0efc51851c613146
+b0d8a3c6a8ced0e569779435c37e2487
+2546dab8821623951915a22356e51c01
+bc1b43bc2531a5e957d377f8faeaa41c
+
+897d2f34bc51a85a4aa0e33ae27af684
+044a79cc439fb814bc0237bb6067e168
+eccf23c66aae8e37e17b1661b097115b
+cbb184dd8e05c9709e5dcaedaa0495cf
+e98c80dd321033b9597b21b7bcbaabdf
+91a03294550ab05ced13b2bb5bab6b9e
+734dd57be9058d3c786f2c2c877f4ffb
+118bb5c3ffc720558e721ad6e6ba9c27
+3db6825e653d9a65093632c92d8585fd
+99200b373350215b75651af1a7b4fef3
+044a79cc439fb814bc0237bb6067e168
+2f310edab7e4fe31a32a58330f11633c
+cbb184dd8e05c9709e5dcaedaa0495cf
+9bba59d2586cbcc4e1875bff3d906306
+c58cb453efc12e4a40f3b5b79e783913
+862f5ac4ffe6a494226282ce6cd53fec
+044a79cc439fb814bc0237bb6067e168
+e0687ba1279da2fd49692b26107e075d
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+48e0cbfe6da769085720497ff33cfdb8
+cbb184dd8e05c9709e5dcaedaa0495cf
+868a8f507e412b65a269b4d07975f23a
+cbb184dd8e05c9709e5dcaedaa0495cf
+4b6ada32b3b66089219e2747536fd529
+80d5b17efc16ace990c07580fc3e85eb
+8dc9ada12353ceb56d198152e7e3974d
+9058ff534c2751c9d0495ef5c139ad74
+c0c97e22db5055def551d1cef15fb251
+6b2decb38be3882440910fd75ec508cd
+818e14eaf6a70ae26cd9f0f93f1606ab
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+941f42be3c50c0ac6e4fe304c964ff84
+c4c9bdd47ee05028cb84873da0ebf2b5
+9dee7436480a2bc03348f928e67ca886
+af982b6e546038896b9d3bb269ec4a49
+7e090b8ffee23f096d262f55467ca847
+9e271608d8c33c869d4de211f04bea06
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+8f05a839cc27bca8ac419eba47b2879e
+3f655be13b0b3693b2e1a0b955748c45
+773c8d196ffa51f3e177dc5789062f59
+b0a76883a4e5ca16a1b5aa5add5ae62c
+cbb184dd8e05c9709e5dcaedaa0495cf
+c26205f92523bebacd5fdf9e799f2037
+80a9ecce2ebccca22520fb056026cae6
+d35f2a3625f8ad374d4a82597f143585
+26c898159e728c11d737f92adee25053
+8aa639001c1c23e8e1b526c30d0b12a7
+cf3efab6bbf6e036c4690718c4822efd
+5367b51091a42af73510c791ac805840
+
+515e20071111388e90edb30b32e726ae
+41b7d7c6acc1bbaaa928ca5856bacb62
+01684440c3624d281743789b407ea69f
+3542d2bd5d8c90ed6d01e9ada0a006cb
+0247c2a9cdc365181eba80cbc07a41e5
+2addad22167dce93dfa6fa586919957a
+9df9e6cd3ff81b8eac3d2433f3650751
+9d9745793ea808834d7de26d55c88e2e
+5357c0b20f6774f3c7f0ee41560d4cf6
+cbb184dd8e05c9709e5dcaedaa0495cf
+967208100d2ac7ee5113fdad439bebb8
+e12c090b07b7f87edf7fd85dc69efcc5
+cbb184dd8e05c9709e5dcaedaa0495cf
+a95dba5b85bdc1948525376ce2172ec4
+38c515c396f7c0015df9eeb192593169
+0f042c26306bdfd2a8563a4e5ffe661f
+cbb184dd8e05c9709e5dcaedaa0495cf
+ec1b760116f7ffcc87279001ede8cb1b
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+4bebab7a42645e6d973b765c0124eece
+72c14b057d63035c6bcfebc16b992ae0
+d35f2a3625f8ad374d4a82597f143585
+26c898159e728c11d737f92adee25053
+4aa31244f2b9d502d1b5a0bcf6aef6c5
+8aa8a90fdc02e57f1e3aab12b634da87
+
+ad78f4b3bf2e541178016bd8aa3a4b10
+0b0cd464119b824f0d9dc784ab773657
+01684440c3624d281743789b407ea69f
+11bad08a06b4a1f9c9b21f6d1318256b
+b4bb6176ea96799ab172019d6dd521ca
+6973d22f0f570674d48dc6ceca225bd5
+8434a73a9233559576de4a821c408beb
+2a5ed95b201cf31a7bf41822c0ee69a7
+682c48941c82e73e8296f63b271ac24c
+fecc671705a48b7c77cb691f3ef4a5e7
+cbb184dd8e05c9709e5dcaedaa0495cf
+903f787bb3b45064a67fdaddcf70b761
+cbb184dd8e05c9709e5dcaedaa0495cf
+60220d6164c9d235b73d313cf46841a7
+
+4f3ca1452fac941765faec0c4e51a234
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+57d83cd68461da5a839e34ca1b02a2cf
+c4c9bdd47ee05028cb84873da0ebf2b5
+1c7be629e5ef28c234d897366eb8fdce
+5dd83095bdd4988dd1579f637811d150
+8b17306b9e75a8af63d16fcd243c3a4e
+6529a5d8cfb6b902588ad25609d03493
+27fc3abd5d78bae8599e5f4fe821dfee
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+8449b686a4a03688fddab7118a3c87cb
+32ba04a4f57423ae5558da7aae32aad9
+1bde4ac500c226c2fb6b2b9c11fc6e0e
+80d5b17efc16ace990c07580fc3e85eb
+1a01ab2613215d13180d3433d41b1314
+8391fd7b663124601a3b2ed52457ea0e
+ac10b3096fced05eb9a8dc272f523882
+2dc1665d31b37f9aa7408939a0365027
+540c13e9e156b687226421b24f2df178
+2d65576f0431ac2fa4beccf4305d28b0
+2dc1665d31b37f9aa7408939a0365027
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+30f799ac1198f872c20b4a3faf2434e3
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+bb7258b757e6a3ffbdc4544780e61a2e
+fe9901131c6b9a16af4e99536eb9c9a9
+c4c9bdd47ee05028cb84873da0ebf2b5
+018e7232371f503e4d01491c3844dd4a
+450fcdaba8342b7e53be3cdfa7a88f14
+0b5ac916d27b12d5317eabada4b39681
+5129fba32edc0b3c2568da7e07c2ef19
+1a7c8bd21b0f497d056d614dbfe1cd41
+500aed7739625552595919f7ec4ce736
+1b00e4fe886a0932ed13c6ef0ad7e9e1
+6bf4f8b1379524853f599463e3dbd09f
+7e8bffdc399a3ba3c15cd99164de353a
+dabbb3dab74a6f49a91a249312506a79
+
+80d5b17efc16ace990c07580fc3e85eb
+481c158bfc941de9f185175a6632f091
+71735cee2171dee61258e8c536f31f47
+cbb184dd8e05c9709e5dcaedaa0495cf
+3442a46f18ec319be263f64aa0626bcc
+89c1d7a24babe7f4b4b1fec14bf32744
+cbb184dd8e05c9709e5dcaedaa0495cf
+adcb75793fa1dabacc5debffae466050
+49ec8d3a44791d63f6a0bbd27b89b7df
+2dc1665d31b37f9aa7408939a0365027
+6b2decb38be3882440910fd75ec508cd
+2dc1665d31b37f9aa7408939a0365027
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+540c13e9e156b687226421b24f2df178
+cbb184dd8e05c9709e5dcaedaa0495cf
+cbb184dd8e05c9709e5dcaedaa0495cf
+
+
+AYctaK4aibojJVNiyQeU�!f�!9c01c303c77851bb36f0a499a6d66d41
+c11bb7eec8b60626961f63cda07648ac
+cb8d53a06473ce0a71c6e5141395da4c
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+5c11e0e9cf6e535201945c2c40cb0ea8
+440910263106f029d4408f14bdd6ae09
+a335c7e80e876d0d5e3bfc16277b0f51
+f035578527d72cff1778422a3126630a
+
+5f684074aafe1c67d326cf0bf596a3db
+ee5fa112c531ec5fe85a89d699109f86
+5e66119ee56004c537410aea3179b26a
+
+aabd06106ee98f9b55478c270f348d6c
+c8b7cb3d9344faa7ee12d0d7005fd666
+58a32ce0f450e1a40f631bcab5f5309a
+fd01b28cfa346e96035388a9a6b64872
+327489b53fa7aded75bf8458946fa31e
+f11fa1e29d3a1ec6f6631683c41c870f
+709691474519c1879a1d3b5881860638
+bde317acc83b4f8ef4e73e9194b82bfb
+46d200d48453e26635abb61f997d02ad
+
+bf5ce6b0dd076e77b0f0bba7a3afe2e3
+00a3fc358f7f6d4d024b3e3fcac156c8
+72b7990cb87fe04d7c142f7ad538c7a1
+0ac7e34e8284ef60997f48e9ab4fad0b
+d7385a8d836d6b52e3fdc4084e9e85aa
+26cbef77dd955f6cdd98776309d5b611
+de43ffb595310d0d35a4a7f0becc09b3
+eb5de9de71e9cb4b5c85ec90ed442ae4
+0ac7e34e8284ef60997f48e9ab4fad0b
+8be6713a30265285808f06ffbdff65bb
+5823c996dd1d05786f12487427d33fee
+7de84c373e774b14471ee0579861d4a5
+0a1d69be5a11ee5a77f9482ca7af6b8d
+b2398442092328b6a0e7290251fb19ed
+383871fca753e6390a9fc2e525732537
+
+eb02621a41fd50a5048310784f6e32af
+bb31c109331044abc153cbafc491b1d0
+c0539c4a0fc777e5ea1019c9deacde2f
+26cbef77dd955f6cdd98776309d5b611
+2330ee2f6fa552c34c9a251546e679cd
+eb5de9de71e9cb4b5c85ec90ed442ae4
+8be6713a30265285808f06ffbdff65bb
+0dc20b01c2f9ea686668291df34031dd
+b2398442092328b6a0e7290251fb19ed
+e949a5c29bf268d3c942361c7d5078c6
+
+319b18cd638e3f606811372b6d8b4762
+
+c4a6490121f88a9e9fa765a1d0af2415
+4d0491bc5b377b062d980d6f40957cbc
+bb31c109331044abc153cbafc491b1d0
+b2398442092328b6a0e7290251fb19ed
+5699484e8fc1eab7e26fbfd677362cd2
+
+319b18cd638e3f606811372b6d8b4762
+
+c4a6490121f88a9e9fa765a1d0af2415
+4d0491bc5b377b062d980d6f40957cbc
+bb31c109331044abc153cbafc491b1d0
+b2398442092328b6a0e7290251fb19ed
+76df3659e7404e83296c1f784625ac80
+
+319b18cd638e3f606811372b6d8b4762
+bb31c109331044abc153cbafc491b1d0
+
+282d54a2e0237397f3f5a86188f0cb49
+06fd802e06d03c6030b4edb3da54f7fe
+2df22c68130d84f4f378950d941e915e
+c0539c4a0fc777e5ea1019c9deacde2f
+
+f1f26badce3c3dc02d89ba89c41cc587
+e680d9f6ba107d88beb2af667ff94952
+e13b7b4dba26b39f4fc6558abfe14286
+3d9e59b71ad4a9269b01881f6085426d
+
+c8232cdd7ad6caeef5ef51b04907ee56
+362fac9e6c26aaf444b4cbb7b9e804c8
+8b6c94b8a05ab45dff1baa906b145e63
+b2398442092328b6a0e7290251fb19ed
+32a089422fe7b795966f6bbb7b457b51
+a71f6c8b05635731a3bbec598ca1d310
+4721181f6a6b60a79b0f368734c8cccc
+bb31c109331044abc153cbafc491b1d0
+
+282d54a2e0237397f3f5a86188f0cb49
+57d990a0104418f1cbf179c8020a3483
+ca6fb4a23a8b9f0bd5547ec90c971221
+7b6511f056f622c4f54a132e77dcf8cc
+c8232cdd7ad6caeef5ef51b04907ee56
+f8aa88265b7fa512309cffe2484391e4
+c1c0206615f38a789682ec15d7f0e847
+b2398442092328b6a0e7290251fb19ed
+32a089422fe7b795966f6bbb7b457b51
+a71f6c8b05635731a3bbec598ca1d310
+4721181f6a6b60a79b0f368734c8cccc
+bb31c109331044abc153cbafc491b1d0
+
+282d54a2e0237397f3f5a86188f0cb49
+57d990a0104418f1cbf179c8020a3483
+547680aa08c375d9880a85a118f4d9ce
+7b6511f056f622c4f54a132e77dcf8cc
+fa8bc6d5db2c5442b7fa43bb4a882281
+b2398442092328b6a0e7290251fb19ed
+4967bb11d745c46c928f390bc54778c5
+bb31c109331044abc153cbafc491b1d0
+7b6511f056f622c4f54a132e77dcf8cc
+c8232cdd7ad6caeef5ef51b04907ee56
+0192658d9b51f8772a72afcff58e48a0
+7a2da6e86f8f55b9b28c967f0b6b04f9
+7b6511f056f622c4f54a132e77dcf8cc
+
+26cbef77dd955f6cdd98776309d5b611
+19369671cb0c142604975713ab18571b
+0ac7e34e8284ef60997f48e9ab4fad0b
+ed429c79b495be0fb37cd226c75902ed
+a88cdabf6c2e98a7f5d334aed72b76e3
+c0539c4a0fc777e5ea1019c9deacde2f
+26cbef77dd955f6cdd98776309d5b611
+945816a40d6195eee4c153305eb73135
+9ee7314576d848a92692625d7478f88d
+8be6713a30265285808f06ffbdff65bb
+e0fdda01c6245e3f25d79f83b39ce464
+c0539c4a0fc777e5ea1019c9deacde2f
+
+d88fc523e00bee4a3f0cdfc57a3a910c
+b3d45825e7ae454c5441c3c095d0f27c
+acbda263723780ac1132b0c7cbafa376
+c8ddb93b923ccfa58404cdda08011fab
+
+282d54a2e0237397f3f5a86188f0cb49
+adcc84b782d47a5eb30e3252bf3f2d98
+ffaf051e6a448f77913435284d9716e3
+d42c2af44fd44aaa18334588260f2626
+
+85a6d3d0163ebf5eac15b851b5e1368eAYctaK4aibojJVNiyQeU�i�9c01c303c77851bb36f0a499a6d66d41
+17e3eea55d0f3955f3467c47ee4af8c2
+c732602cd7f03cb669a5585e6ba8d81b
+d556e5b4cc8fd31a0bcf0e6aba4aae70
+d556e5b4cc8fd31a0bcf0e6aba4aae70
+d556e5b4cc8fd31a0bcf0e6aba4aae70
+ef18917405623e78d8df1c8479719e80
+520a1966e542b6ea2920055992ffa550
+14e48f98fe990d69e7bd318bdb1f7d21
+2c8ace73deb663b5d3ea114c2db7c7af
+c7c20253c5c9602803030dc0332bc225
+
+0527bdea3f23e182c40dee14bd1e2a7b
+bc6371aa055ea4a5e77e2f397d24197a
+16aaa38ea77abf152052a48c8aecbf53
+8b76a721fcc6e7695264719ad509fd1c
+2f7ccc7c5beb0604009e6c1e3532ee52
+4dbd8969eb10f10f5d81407ebfb3baed
+8b76a721fcc6e7695264719ad509fd1c
+e2b01d81e4d000e379bce5334dbf8e0a
+a44b1c753e9e9fc150a5f54018f6e5b8
+8b76a721fcc6e7695264719ad509fd1c
+4ef9080ca30dea5e71ed9b5b0b8925ad
+95acbaeea7598e70d094e3e880bf00fa
+8b76a721fcc6e7695264719ad509fd1c
+5155b927d8e5ef563a1f0ffa3f32a833
+95acbaeea7598e70d094e3e880bf00fa
+0be78e89e99b84a898ec68665e7ce002
+d1e1a869ef28d3dc481af040ac3574a5
+faf58f106223263096bfec1dc3340d92
+f32dd46510d1cc70cb80d734c208b443
+364aacf61fda4aa5ebf80bc69e1719e3
+95acbaeea7598e70d094e3e880bf00fa
+7caa0ea101785e300b344e00c30875f6
+920a4c5075a1dc91b9f6e9b13027601d
+95acbaeea7598e70d094e3e880bf00fa
+0be78e89e99b84a898ec68665e7ce002
+126d54818eebd0353c6d732204da0423
+faf58f106223263096bfec1dc3340d92
+f32dd46510d1cc70cb80d734c208b443
+82e8c19112b3fd7b38e58205f3f3578f
+e1d936ff69405e996e31f43e8fa86d24
+e38b3ed0d97148d7aa9e284138cbd663
+5c985c7351892073d443f71bf9a4a52c
+93f70ced8c5753dc49451c54dd287cb7
+5d8365cadca71ecda8e03e9bba4880ce
+e4b2ceb4674c8a310680e192f2f6c53f
+128713b47dbdc5ecfc9e54d12b01c82c
+d2ae206ec953df56146dbed61f030a46
+9456c3a23c902185923ea8ec5071452d
+d2073d68bae61b590127590e4e8ebdfe
+e4b2ceb4674c8a310680e192f2f6c53f
+415e552ee4aa48ddee464b82c7704611
+76fb3440d046ece82e1ece9d47546817
+76afc8b787bb255f6a41bd171341cdfa
+3c6f1ab05c5133f8297682a9c3664c33AYctaK4aibojJVNiyQeU�l�9c01c303c77851bb36f0a499a6d66d41
+fedcccc96a3d7d6d46452f306e1859e9
+efe01d54dc6dd01ebb96bd7e22d76b3c
+89331e19a04d1d66dff3374a4e6b66cf
+a679447dd051d08d11b05e4fc88c36b0
+7abe717b3f094d8ac1597412b0d2f80e
+c4b53b0abb929d3c58d479377a520fb3
+11d4a9a7773943d4c6eb365e249330ad
+ed0688fdce283c828c55cc5039d72c94
+97a5930740f5e5af59967f646ed4e21b
+f3c3d2ea4dc612e06c4485dd9b217808
+0628bef5c9b4a0e3f63e3fcb25077590
+07341264441c40d809b24da6c1630d2b
+25272805795085d7630b5e403d6b0178
+9839542e9a8736cfd56b757ea6e09a13
+14da9a5106803bbf45d974b69d8e199f
+bb6282b52dc99d4805480a7eea280f4a
+45313d039ae52f1bb7c3d932aa56aee8
+782b1a545595be37e91953f52cac74fc
+55c20dd92d90dda1ffd3818547f2d9be
+d63c7db3c55fefd0f265d6674b60fce0
+42ddcd441c35408bfe976112acdb0f53
+2f768404f9d77c3491f82798a5d674cd
+fe9c45d08ee745055118b811210effb3
+b722c963a90b450cf9f9bfcdae31820a
+757a8dbaa468f0abe4f603b0fe2b0153
+0c6f5460b3dbd292962a7db2f3510b41
+22197b542e5d39ed062ef6e77aa1ee37
+76fa406d806e9350d88333018a474529
+58bd88d12b94cba2760593831da0b4e3
+eb2bf2ea5cb3e27b62b1d72714a1b024
+890f030569860ea5321bd31d2f93d9a7
+984856f464ab62ca6a920fdfae9205d1
+af30909ad41d05155174d2ec6681ba56
+10201d0b0daadf68ad8cb306a9da3c4e
+48673c070031a3925c1607360d22a369
+490937a7bcd49ebd89520e431f302039
+865001592241e07fc70efd362693acd1
+61af3c701789eaafd244ecb74f120867
+de91b04e6c57dacda176bb2d1313046f
+ffe8a0bd6048010b4bde3a79ac359862
+6c03ee6bc38cc6c313e3f7810f509830
+227dfd9277c1bee6f30f60f0576072a4
+6f943d47a1b2d63974faad0c3a097f8a
+e158bce990737898e8ba153a4d767bc7
+de74be8e0ad8f2198ba04b282ae4a254
+3785346cd99ab3065b322fb1305e4923
+50b44dc128b8f8c95a90f7519a23bf27
+69d9ab8dfdcc9d3ee134e9b32c699458
+f1070bd8089232310fda702cc2d50146
+69c6fe0f261d14a33a0a8e457e9dc53c
+513d5aa0064ee87ac86be422af466a22
+f429191b2bd7e242a976a53abe4be6e3
+7f07f933ea80d4143aa3da95deb17fba
+021c067b698f766154590b9f5c4e8856
+7ab6f9852b2eb0deae4d9e3af7c9ba48
+916ff0e2bd867fbc98e379d39f964fed
+e4d5b8e98e13731fcec8fb06624d814d
+95f4362a417753e4d0a6306e7d49f930
+19dfc5177691839de86ba5d512a04443
+89321dfa4a02065277366866cc964350
+5e3a21a7e962027309ef050e72d375f7
+2b05aa49a8346c0b5fdeb02a5107ba33
+ff3b1c5cb69de0f127f891a6a28d51d7
+ecf0c3f52e7d5c3a02742674e0990af4
+9e6ac378533742698431e492270aac3e
+0e90724787a71dc383124956ef17c252
+5261dc79c7958df250410ecbc895060b
+e6c495accacc928ef2fc312e13d9c27d
+08ee484931baf6609275b3c59852b8f2
+58a3886181897bfe247f40d39b4812b9
+b89c4fc3da7656685488af63a33fab36
+fc394c9570ed6b8f24b4074c5e1a10a2
+5d47bd610025d114413384d384826dcf
+3ab843420d9cf3867277085193271390
+803ff1913a2dea698bdd01fb92c2e1b2
+71cd10c8021c3cd950592529c5ff1c31
+ae77f66b8069bfa39b4f8be622b66b38
+79aefd04f944ec09b03018c40f2338d5
+e27a6e537c9a96169d66c6a2b8efaf91
+fadbc14d711a98cfaa4ccd0b06debcef
+a893b2c19e295819f0e31719975de5d8
+45d5e0280e2512eb8877791dcd74548c
+e9d279ee3a2db35d9098003fb3648cd6
+530a983e08039d41770247b2f8052fa2
+ba800c40c5f79f1161fd064baa7a7281
+6e007145ba5e0fbdd0072471cfff870a
+4ae3d414383bbe8ca32faa1af0743376
+aae584f46f7150be1c1244ff56d572ca
+2d8a5be4bd38dc5fea7eccdc2775fca9
+19e9da351c417403cf0dd4b97ce13795
+caa8946e815b29dec014c94589231ff8
+ed5e94acfecfdb601eb9b07b39eae5d6
+f7af6841bf0aaa883ac799b1ce3140ed
+2a20ffa2072fd419fde34925b54721c2
+8e1a61dc831186dbdc389b5199c6f7b4
+8fec9cdf7ade21eba8238a3543ed164a
+d3ee313923bd312503ab494569819ce2
+43590824ac86a645a4d72b2cc4865931
+5540ce89cee4650f525b6f5d9556637e
+1341ea6bc82517fb13ec15b35898ef67
+d966759abf31201189a9131b9ae7ec2e
+d9a80b995b00170dabd5e3d02650036d
+1620aaee77d205b965bab6c68e97906c
+8f8de9d4f3860380b69bcb74232af259
+5f72494bd243ee6bfbb0874d3263b907
+83e6d444fddc93985bf9e76ed827c9c0
+01202676c1884b2fccbcca12b0465b28AYctaK4aibojJVNiyQeU�n�9c01c303c77851bb36f0a499a6d66d41
+fedcccc96a3d7d6d46452f306e1859e9
+efe01d54dc6dd01ebb96bd7e22d76b3c
+89331e19a04d1d66dff3374a4e6b66cf
+57200acc40acc7da5ef9430d6dce55ad
+7abe717b3f094d8ac1597412b0d2f80e
+c4b53b0abb929d3c58d479377a520fb3
+02f829807877dd400d92e57844840789
+ed0688fdce283c828c55cc5039d72c94
+bb3390a2bbcef558c0d2c657cf9d0640
+3574f8d55ebb5beb4cd70014ef8eb2ae
+00fd2b77d5d697b993e11ae476e08853
+c65f98c4e4d85dc5dcd5fe47c8df527f
+bd379477df10d7286c3f8e65c299c420
+2eaa40439a13e7dee6251adc28571275
+c7ea720dab34e9a871b73a030c8799f4
+970c60053502cf10e9405f230dde25c6
+5b95340ac9fb94e5dd714566dfc23838
+782b1a545595be37e91953f52cac74fc
+cd1445741cc926c78d097169ddeb3ceb
+9c00008bfede72820dac05a1e9ed2667
+d12bd9edce2b5f5c5666fbc66c7d0854
+4d0e997cb0550a017cb04bce996c5245
+b03350c5f740a398df8ecc9d57392699
+d9fe3927331d6f97c985659f3d472ff1
+2906dd09c119e3a6a4bd17f461f4893d
+0c6f5460b3dbd292962a7db2f3510b41
+9c04c93adc599eb39aa987517905847e
+ac558c885229a4c5de49d16cdaf7737f
+9894cc44693f08d5d59976d17b9da2dd
+10ad18d9cfe42104703a17b1ad572041
+890f030569860ea5321bd31d2f93d9a7
+984856f464ab62ca6a920fdfae9205d1
+7f6c223ab61f1a58fc4630d517e8158e
+c1bc204a23f227de30a7b130220b0b75
+3d37a11f41836ac261f78e44d06371c6
+490937a7bcd49ebd89520e431f302039
+865001592241e07fc70efd362693acd1
+d4a7920f6af6f340d508d0ce4d9b4847
+cdc52e060b410f09234f716a28dffbf1
+58a7836eaee95f0c1d8ee76ffdcbd396
+559230e0b9ba1ced34dd00511a8d35f9
+c75bdd34228591705edab3d629d8bcf5
+b4e5a42bb9807fd31435e591f3d10327
+95a1984c5972cc11c3fae7eb352288fe
+de74be8e0ad8f2198ba04b282ae4a254
+3785346cd99ab3065b322fb1305e4923
+50b44dc128b8f8c95a90f7519a23bf27
+69d9ab8dfdcc9d3ee134e9b32c699458
+f1070bd8089232310fda702cc2d50146
+c6606eb6141d18b704a6b8d5371d98e1
+5cc0108f986982254dbbabe390702e66
+0da61a527bdb6a5ba149e984f40e2324
+147a23427d05e26b29f02ee30c8bb30a
+8d397507ed6fa08aaa54d16cb17177c6
+78c5b4ded2c8a88689481e23a9288d05
+b387f628c36e24d71ed367226ac97a49
+907f254278f9921b1a96d5bd75bcb9fc
+b35f2144fbd76899ff3c1ad9f7d6db6b
+6634758233496d7624375854353cdfee
+d98bca633e8a8e21be2c06f8dae67484
+5e3a21a7e962027309ef050e72d375f7
+2b05aa49a8346c0b5fdeb02a5107ba33
+ff3b1c5cb69de0f127f891a6a28d51d7
+f7bf7bf8ee63347675a7fc3cd5a35af6
+2137c270f514f0fdcab0eaeddd9525c5
+f51d5a17d1683f200b51538a9c6d4c7f
+21cd74af72dfd63473c81decdf561cfb
+57497223ac176e7efd593b2f99447107
+6409dc39b81c3bfdf9d8c226201afcea
+58a3886181897bfe247f40d39b4812b9
+b89c4fc3da7656685488af63a33fab36
+7221f543e411af5db29f210f8d5b10dd
+5d47bd610025d114413384d384826dcf
+05e441379ddbcaf08738111f8cf02951
+b9082439ab47a0bab06e3fd644f6ff7a
+12b2d287f1a82ce91b1b54d6b39d4f1b
+cda67e44df35ddfd96fd8d4c1e822620
+79aefd04f944ec09b03018c40f2338d5
+e27a6e537c9a96169d66c6a2b8efaf91
+a5334aef6fe6893ad70d1a28f351bec2
+4cf9f9e1ee948d8a67cab454234f6180
+44c7ef7dd2bf997686ad03005e8d36ee
+81ffc370aec065f1b4e77232c1daa767
+530a983e08039d41770247b2f8052fa2
+ba800c40c5f79f1161fd064baa7a7281
+01c7b0ccb7171fce88171d8ad1178f39
+6e171aa272c758f010430f9656d88799
+999934dd75b4723e009f2b6100089596
+0c83a44b1b3ad36d445b45d9dde70609
+1ae2eabcdbfaf850fcf3f1a1a4088bb0
+9b602c9c245c300f27a62471412ac03d
+a912c3feabbbf0b0aec5bae894b4a2f5
+970d94e94980a33159c20a07416676bc
+58caacc4cfced80694f471cc27c9ea8a
+67de25ea21b0bd2d8be68fab1828a207
+d68a2fb756b3b23b75837797085657f0
+be9e772fc535212af2edff0f4e65e6b9
+1ce56727556b88bc52e6218f7228e404
+7c7350c7221317ec569d613e3c45a741
+5c43ec4d8a18754dbad5a1f31831dd3f
+d966759abf31201189a9131b9ae7ec2e
+93e3f2cad9fc81210d67139bc4c5da41
+1620aaee77d205b965bab6c68e97906c
+c42f9ff8eb11bfd6a241e8f687b9fbd5
+c27eeaa816c88d17524c4f8085625a24
+cc49e2087a01ebf18d3fdbeb2d733ce6
+01202676c1884b2fccbcca12b0465b28AYctaK4aibojJVNiyQeU�+p�+9c01c303c77851bb36f0a499a6d66d41
+fedcccc96a3d7d6d46452f306e1859e9
+2257b5d15f2faa262ab158d1d24c11dc
+c732602cd7f03cb669a5585e6ba8d81b
+d556e5b4cc8fd31a0bcf0e6aba4aae70
+d556e5b4cc8fd31a0bcf0e6aba4aae70
+d556e5b4cc8fd31a0bcf0e6aba4aae70
+7abe717b3f094d8ac1597412b0d2f80e
+efe01d54dc6dd01ebb96bd7e22d76b3c
+520a1966e542b6ea2920055992ffa550
+14e48f98fe990d69e7bd318bdb1f7d21
+7abe717b3f094d8ac1597412b0d2f80e
+998051bb8d0d2e5393515520707825a3
+caef664890f1804438e83a8351562e7b
+5ee7cb6151bab33a1d4c842f46d4b194
+881680fe0bd3010b5dd39de44cdab965
+8031c0b09c909af733afeeaa5f6b5a7d
+f8276fc31cf8650847ee6abda4f24a2d
+c4b53b0abb929d3c58d479377a520fb3
+c7c20253c5c9602803030dc0332bc225
+
+0527bdea3f23e182c40dee14bd1e2a7b
+ed0688fdce283c828c55cc5039d72c94
+bd06ecc5b9665c2d03223db39df2db46
+7ae454191f07a3b100e44efc41f0b936
+e97769d37ecb3fcfc5cc884fb857fb73
+c4b3475e22ee3c62dc43802481fc3ea2
+e745660a1131ab8b42290d82580f501c
+c7ea73b9654f076fec966aef0ce51c08
+6864be6407edb68466071666d3b7e690
+39c6d73cd0ac2a605be7d52a379cfc23
+2661be82395bba768376f31077588d2b
+853d1567b67320b6cc162fb7569c7e4e
+a9e2cae1fb64a048089699305cc5b95f
+63f5afa5f729381036e62369c1119696
+bcca66941d01706abe804a7d98127a43
+7aa43d754c5a274415dddb62d1f5f5d3
+5fbd680de4db29a17488c8c7f40915b6
+5ceb924d3085f5920f1739542f726108
+59e248b4832b55fc4a8e26b8b637fa63
+2dde0bb03c26b4ce92a848f9db8e8099
+e40a3c0f70136777ca12aae8fa9e5907
+7dcf7b722cc1dfce0620174f9ac5c7d7
+27894c3404c729e7dd94a63d2d9df3cd
+ffce5f75418377da3321bc0b56b22fa3
+7bc5ffec05d5848ccfb92560d58be603
+40bff38abfc85ed7224352f59a15c228
+890f030569860ea5321bd31d2f93d9a7
+5d70b36a6e2130f0de47c2c4da7b7256
+6fff002b388e70486a6b34af193e0638
+9a75f64977fe0d0dc864a0557deaeee3
+a3dd842ec3c41d039f8dfc6a638ca46b
+e2581cbdc50552195cca2a862421513b
+88e4f8bb9fe59bb1380029069a6caac4
+a5710c60df1607e8372aa14609e0fee1
+8ed9560fe3ec12285ec91290f3a97d05
+ed75c784b66b12383b4767c40909532c
+2b066edce8890c2ce14693a39377a3a6
+dca6133ccea4ce4187e72fbf26f544ac
+bbc9dc029ad84f4c7ce5d8dbe0a84f7b
+86850d470c3e9a76eaa359f5887c83d8
+ed2993e601b3ba448753550684648a4c
+c00730eecccdba86bf714f5568c15af6
+4130873f450efcd54cf6bf2bdc424102
+a12d9d52028bf87a8822cbe2be8a0336
+619a13a6493ccb8d8973b8361151abad
+56eeb02dc4bee2df4762c71acd09040e
+0f15c5b931b6318b4d6d61f0655ee94a
+4c010e92a65f4ffa80b8492bdaee787c
+266db73b35327ac8efd8e66e19c785c2
+8ba3c8436f01d4730702f1b7bc661d6a
+c7de6e28b86f5702173eff0d578de5da
+530390a3ef76df7088379c396dbd8997
+a0eeb06b7e14c1a09d000fdeaaab763b
+8f01f1231bdab0bdac54d32015a85249
+a49b0aa556a397502ea832c159b4bee5
+2ce6ea924cca3c516a497facca3a0af0
+14c9d03ca6bdaf87c0404294364d50ff
+2c9dc51e52f98651803eef479ecfb93e
+7d670bec4a84b35c98c403fbf3054674
+7cda5b6eb455c315c265b3eba246fff3
+857d8ff95ed14277ade3df86d650918d
+b9473c75c7b51ed93ae104db31245c0d
+040cd71bd0c7ad70ef766c4dc588b49e
+03b360098ddb0780d71a92e91ae975a2
+bf4fb55c6e5edcc53bdc3488dde910cf
+69463c46161b5277068d674c874a5f8a
+9f13417031c8f99d004847749dbeb13c
+dedc68181f313f8f502481645222f6a4
+106fe80e45802733ef9db4284df0cd16
+5d47bd610025d114413384d384826dcf
+a3456aff6d8a6f9b08ec2cf224bb177a
+91dcc93b4da06b5180d66efc3a9883ba
+ac6c95d1b47e7b737fa98c985e33399b
+6e4ca5defce1f5b70d9f18c756a1c5fc
+bd30e9e3c99c96b9f52166ec06cd9325
+7a7c03ca5528aa7c7d2e76a28658eece
+5a9ae147c1d5b1dfe02a9e1db3484be0
+e50e471a1ef095cbe736d555fa215509
+3fa7be8004c8006df64426e6a19548f2
+78d9e7e36ec6d2e6dd5f90949f9cfc6e
+35690024ae66131ecb816d79f6cf3b54
+21636bdac24a6fe0dc2bfc93f92df3a8
+548abcc87dd811429497660080950f73
+584d13b34d51f2dca28552126f61336e
+9b813c5cbc2cc8f42ae12813a6e81b7b
+b2ee21b4fbac39d90f46dbc006aa6aa0
+7d89917798c068e60feca73a1ac3546b
+352136b365886f356edc05565785d8d6
+70e71731cc2a709b2970e2def4f3a492
+78d4043eb42647d3571a2c3bea5556fa
+9de3555a08eac562915626ba9e774d43
+de0e4d186bded3b52649bbacb64bfd64
+0befeaba3ed1177d803d74367e1ea3c9
+0d0fa41c39c774fd19a8fe67633569ab
+d5cc89b01a620730b55356f036ce15d2
+ededf64dfeffc5adf157f7a962b908e0
+903671a744be8f3888c27b42b8c4e5f3
+75f539da1c7d960cb46668c830f8bcdf
+6c2e382ddc0deb120a3c7eaabb80c312
+82b5836e58cc66bef300f575407cadf8
+d1010d4b14d7fe5d63ed634f150f8532
+f03cdbb85e81e017c36283c5e0cfeb23
+ff37a2e97683b55609d23b6edd97bc4a
+409e9de9f42f86d9e114dced421e18ad
+f075e22b0c4e11bdcb12abbd2f614b4e
+95acbaeea7598e70d094e3e880bf00fa
+0be78e89e99b84a898ec68665e7ce002
+1ef0bca0c8fe511a919ad12472e6c67f
+7cb49ce5e5fa888b9e98d2c66442fc67
+faf58f106223263096bfec1dc3340d92
+f32dd46510d1cc70cb80d734c208b443
+1ef0bca0c8fe511a919ad12472e6c67f
+9387cd844c699c6644b997b6ec225f0f
+5c985c7351892073d443f71bf9a4a52c
+93f70ced8c5753dc49451c54dd287cb7
+1ef0bca0c8fe511a919ad12472e6c67f
+389b047b794e9de6beec768bbc767a33
+e1d936ff69405e996e31f43e8fa86d24
+1ef0bca0c8fe511a919ad12472e6c67f
+4ece823e35e7bcc4797ca744555a6a0c
+4dbd8969eb10f10f5d81407ebfb3baed
+8b76a721fcc6e7695264719ad509fd1c
+1ef0bca0c8fe511a919ad12472e6c67f
+de4142de23a7d423f6969d1cd616dcb0
+a44b1c753e9e9fc150a5f54018f6e5b8
+8b76a721fcc6e7695264719ad509fd1c
+1ef0bca0c8fe511a919ad12472e6c67f
+e5389f2766ce81d2b672b3bf63f511fa
+95acbaeea7598e70d094e3e880bf00fa
+8b76a721fcc6e7695264719ad509fd1c
+1ef0bca0c8fe511a919ad12472e6c67f
+1efe0e7d2527399c91bfc1b3cdb56e1d
+95acbaeea7598e70d094e3e880bf00fa
+0be78e89e99b84a898ec68665e7ce002
+1ef0bca0c8fe511a919ad12472e6c67f
+e696352b525bee393b3adb8fd31d27a2
+faf58f106223263096bfec1dc3340d92
+f32dd46510d1cc70cb80d734c208b443
+1ef0bca0c8fe511a919ad12472e6c67f
+0f53fac5ac2b8daab067ce70b611d5b4
+16aaa38ea77abf152052a48c8aecbf53
+8b76a721fcc6e7695264719ad509fd1c
+1ef0bca0c8fe511a919ad12472e6c67f
+8edb50423f5c2e13a04b0f7368efcad7
+95acbaeea7598e70d094e3e880bf00fa
+7caa0ea101785e300b344e00c30875f6
+1ef0bca0c8fe511a919ad12472e6c67f
+01202676c1884b2fccbcca12b0465b28AYctaK4aibojJVNiyQeU[rA9c01c303c77851bb36f0a499a6d66d41
+2a38e96a91d6a3a1ee7ba525043f2a81AYctaK4aibojJVNiyQeU[tA9c01c303c77851bb36f0a499a6d66d41
+c86a211bb308113a3916aba7bb8d3accAYctaK4aibojJVNiyQeU[vA9c01c303c77851bb36f0a499a6d66d41
+9eb76c83aaaf664cc96b2c88537a71f8AYctaK4aibojJVNiyQeU�!x�!9c01c303c77851bb36f0a499a6d66d41
+c11bb7eec8b60626961f63cda07648ac
+cb8d53a06473ce0a71c6e5141395da4c
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+5c11e0e9cf6e535201945c2c40cb0ea8
+440910263106f029d4408f14bdd6ae09
+a335c7e80e876d0d5e3bfc16277b0f51
+f035578527d72cff1778422a3126630a
+
+5f684074aafe1c67d326cf0bf596a3db
+ee5fa112c531ec5fe85a89d699109f86
+5e66119ee56004c537410aea3179b26a
+
+aabd06106ee98f9b55478c270f348d6c
+c8b7cb3d9344faa7ee12d0d7005fd666
+58a32ce0f450e1a40f631bcab5f5309a
+fd01b28cfa346e96035388a9a6b64872
+327489b53fa7aded75bf8458946fa31e
+f11fa1e29d3a1ec6f6631683c41c870f
+709691474519c1879a1d3b5881860638
+bde317acc83b4f8ef4e73e9194b82bfb
+46d200d48453e26635abb61f997d02ad
+
+bf5ce6b0dd076e77b0f0bba7a3afe2e3
+00a3fc358f7f6d4d024b3e3fcac156c8
+72b7990cb87fe04d7c142f7ad538c7a1
+0ac7e34e8284ef60997f48e9ab4fad0b
+d7385a8d836d6b52e3fdc4084e9e85aa
+26cbef77dd955f6cdd98776309d5b611
+de43ffb595310d0d35a4a7f0becc09b3
+eb5de9de71e9cb4b5c85ec90ed442ae4
+0ac7e34e8284ef60997f48e9ab4fad0b
+8be6713a30265285808f06ffbdff65bb
+5823c996dd1d05786f12487427d33fee
+7de84c373e774b14471ee0579861d4a5
+0a1d69be5a11ee5a77f9482ca7af6b8d
+b2398442092328b6a0e7290251fb19ed
+383871fca753e6390a9fc2e525732537
+
+eb02621a41fd50a5048310784f6e32af
+bb31c109331044abc153cbafc491b1d0
+c0539c4a0fc777e5ea1019c9deacde2f
+26cbef77dd955f6cdd98776309d5b611
+2330ee2f6fa552c34c9a251546e679cd
+eb5de9de71e9cb4b5c85ec90ed442ae4
+8be6713a30265285808f06ffbdff65bb
+0dc20b01c2f9ea686668291df34031dd
+b2398442092328b6a0e7290251fb19ed
+e949a5c29bf268d3c942361c7d5078c6
+
+319b18cd638e3f606811372b6d8b4762
+
+c4a6490121f88a9e9fa765a1d0af2415
+4d0491bc5b377b062d980d6f40957cbc
+bb31c109331044abc153cbafc491b1d0
+b2398442092328b6a0e7290251fb19ed
+5699484e8fc1eab7e26fbfd677362cd2
+
+319b18cd638e3f606811372b6d8b4762
+
+c4a6490121f88a9e9fa765a1d0af2415
+4d0491bc5b377b062d980d6f40957cbc
+bb31c109331044abc153cbafc491b1d0
+b2398442092328b6a0e7290251fb19ed
+76df3659e7404e83296c1f784625ac80
+
+319b18cd638e3f606811372b6d8b4762
+bb31c109331044abc153cbafc491b1d0
+
+282d54a2e0237397f3f5a86188f0cb49
+06fd802e06d03c6030b4edb3da54f7fe
+2df22c68130d84f4f378950d941e915e
+c0539c4a0fc777e5ea1019c9deacde2f
+
+f1f26badce3c3dc02d89ba89c41cc587
+e680d9f6ba107d88beb2af667ff94952
+e13b7b4dba26b39f4fc6558abfe14286
+3d9e59b71ad4a9269b01881f6085426d
+
+c8232cdd7ad6caeef5ef51b04907ee56
+362fac9e6c26aaf444b4cbb7b9e804c8
+8b6c94b8a05ab45dff1baa906b145e63
+b2398442092328b6a0e7290251fb19ed
+32a089422fe7b795966f6bbb7b457b51
+a71f6c8b05635731a3bbec598ca1d310
+4721181f6a6b60a79b0f368734c8cccc
+bb31c109331044abc153cbafc491b1d0
+
+282d54a2e0237397f3f5a86188f0cb49
+57d990a0104418f1cbf179c8020a3483
+ca6fb4a23a8b9f0bd5547ec90c971221
+7b6511f056f622c4f54a132e77dcf8cc
+c8232cdd7ad6caeef5ef51b04907ee56
+f8aa88265b7fa512309cffe2484391e4
+c1c0206615f38a789682ec15d7f0e847
+b2398442092328b6a0e7290251fb19ed
+32a089422fe7b795966f6bbb7b457b51
+a71f6c8b05635731a3bbec598ca1d310
+4721181f6a6b60a79b0f368734c8cccc
+bb31c109331044abc153cbafc491b1d0
+
+282d54a2e0237397f3f5a86188f0cb49
+57d990a0104418f1cbf179c8020a3483
+547680aa08c375d9880a85a118f4d9ce
+7b6511f056f622c4f54a132e77dcf8cc
+fa8bc6d5db2c5442b7fa43bb4a882281
+b2398442092328b6a0e7290251fb19ed
+4967bb11d745c46c928f390bc54778c5
+bb31c109331044abc153cbafc491b1d0
+7b6511f056f622c4f54a132e77dcf8cc
+c8232cdd7ad6caeef5ef51b04907ee56
+0192658d9b51f8772a72afcff58e48a0
+7a2da6e86f8f55b9b28c967f0b6b04f9
+7b6511f056f622c4f54a132e77dcf8cc
+
+26cbef77dd955f6cdd98776309d5b611
+19369671cb0c142604975713ab18571b
+0ac7e34e8284ef60997f48e9ab4fad0b
+ed429c79b495be0fb37cd226c75902ed
+a88cdabf6c2e98a7f5d334aed72b76e3
+c0539c4a0fc777e5ea1019c9deacde2f
+26cbef77dd955f6cdd98776309d5b611
+945816a40d6195eee4c153305eb73135
+9ee7314576d848a92692625d7478f88d
+8be6713a30265285808f06ffbdff65bb
+e0fdda01c6245e3f25d79f83b39ce464
+c0539c4a0fc777e5ea1019c9deacde2f
+
+d88fc523e00bee4a3f0cdfc57a3a910c
+b3d45825e7ae454c5441c3c095d0f27c
+acbda263723780ac1132b0c7cbafa376
+c8ddb93b923ccfa58404cdda08011fab
+
+282d54a2e0237397f3f5a86188f0cb49
+adcc84b782d47a5eb30e3252bf3f2d98
+ffaf051e6a448f77913435284d9716e3
+d42c2af44fd44aaa18334588260f2626
+
+85a6d3d0163ebf5eac15b851b5e1368eAYctaK4aibojJVNiyQeU�!z�!9c01c303c77851bb36f0a499a6d66d41
+c11bb7eec8b60626961f63cda07648ac
+cb8d53a06473ce0a71c6e5141395da4c
+
+12023232ef3d7fabef429731a62f02c3
+506192a7bdcff9e5ee3605edd08ca5ad
+c4a5312a6a05615f6cffd6551235fcc0
+
+9438d0445963896ef37f597915d9e396
+
+8a26266e98983ce48736c2faba1a9d35
+cfef63ad92ea845d98b5241f220c9b6d
+4d4f7d8d1a5c09b48ca080d899d5f7d2
+49b611cae1d9bfa5a27d4c7fd9480bdc
+359f737b2e14832be326796c38f6ffe7
+9a73e5b6a42e4b29fb65c2c7fe12ff01
+5c11e0e9cf6e535201945c2c40cb0ea8
+440910263106f029d4408f14bdd6ae09
+a335c7e80e876d0d5e3bfc16277b0f51
+f035578527d72cff1778422a3126630a
+
+5f684074aafe1c67d326cf0bf596a3db
+ee5fa112c531ec5fe85a89d699109f86
+5e66119ee56004c537410aea3179b26a
+
+aabd06106ee98f9b55478c270f348d6c
+c8b7cb3d9344faa7ee12d0d7005fd666
+58a32ce0f450e1a40f631bcab5f5309a
+fd01b28cfa346e96035388a9a6b64872
+327489b53fa7aded75bf8458946fa31e
+f11fa1e29d3a1ec6f6631683c41c870f
+709691474519c1879a1d3b5881860638
+bde317acc83b4f8ef4e73e9194b82bfb
+46d200d48453e26635abb61f997d02ad
+
+bf5ce6b0dd076e77b0f0bba7a3afe2e3
+00a3fc358f7f6d4d024b3e3fcac156c8
+72b7990cb87fe04d7c142f7ad538c7a1
+0ac7e34e8284ef60997f48e9ab4fad0b
+d7385a8d836d6b52e3fdc4084e9e85aa
+26cbef77dd955f6cdd98776309d5b611
+de43ffb595310d0d35a4a7f0becc09b3
+eb5de9de71e9cb4b5c85ec90ed442ae4
+0ac7e34e8284ef60997f48e9ab4fad0b
+8be6713a30265285808f06ffbdff65bb
+5823c996dd1d05786f12487427d33fee
+7de84c373e774b14471ee0579861d4a5
+0a1d69be5a11ee5a77f9482ca7af6b8d
+b2398442092328b6a0e7290251fb19ed
+383871fca753e6390a9fc2e525732537
+
+eb02621a41fd50a5048310784f6e32af
+bb31c109331044abc153cbafc491b1d0
+c0539c4a0fc777e5ea1019c9deacde2f
+26cbef77dd955f6cdd98776309d5b611
+2330ee2f6fa552c34c9a251546e679cd
+eb5de9de71e9cb4b5c85ec90ed442ae4
+8be6713a30265285808f06ffbdff65bb
+0dc20b01c2f9ea686668291df34031dd
+b2398442092328b6a0e7290251fb19ed
+e949a5c29bf268d3c942361c7d5078c6
+
+319b18cd638e3f606811372b6d8b4762
+
+c4a6490121f88a9e9fa765a1d0af2415
+4d0491bc5b377b062d980d6f40957cbc
+bb31c109331044abc153cbafc491b1d0
+b2398442092328b6a0e7290251fb19ed
+5699484e8fc1eab7e26fbfd677362cd2
+
+319b18cd638e3f606811372b6d8b4762
+
+c4a6490121f88a9e9fa765a1d0af2415
+4d0491bc5b377b062d980d6f40957cbc
+bb31c109331044abc153cbafc491b1d0
+b2398442092328b6a0e7290251fb19ed
+76df3659e7404e83296c1f784625ac80
+
+319b18cd638e3f606811372b6d8b4762
+bb31c109331044abc153cbafc491b1d0
+
+282d54a2e0237397f3f5a86188f0cb49
+06fd802e06d03c6030b4edb3da54f7fe
+2df22c68130d84f4f378950d941e915e
+c0539c4a0fc777e5ea1019c9deacde2f
+
+f1f26badce3c3dc02d89ba89c41cc587
+e680d9f6ba107d88beb2af667ff94952
+e13b7b4dba26b39f4fc6558abfe14286
+3d9e59b71ad4a9269b01881f6085426d
+
+c8232cdd7ad6caeef5ef51b04907ee56
+362fac9e6c26aaf444b4cbb7b9e804c8
+8b6c94b8a05ab45dff1baa906b145e63
+b2398442092328b6a0e7290251fb19ed
+32a089422fe7b795966f6bbb7b457b51
+a71f6c8b05635731a3bbec598ca1d310
+4721181f6a6b60a79b0f368734c8cccc
+bb31c109331044abc153cbafc491b1d0
+
+282d54a2e0237397f3f5a86188f0cb49
+57d990a0104418f1cbf179c8020a3483
+ca6fb4a23a8b9f0bd5547ec90c971221
+7b6511f056f622c4f54a132e77dcf8cc
+c8232cdd7ad6caeef5ef51b04907ee56
+f8aa88265b7fa512309cffe2484391e4
+c1c0206615f38a789682ec15d7f0e847
+b2398442092328b6a0e7290251fb19ed
+32a089422fe7b795966f6bbb7b457b51
+a71f6c8b05635731a3bbec598ca1d310
+4721181f6a6b60a79b0f368734c8cccc
+bb31c109331044abc153cbafc491b1d0
+
+282d54a2e0237397f3f5a86188f0cb49
+57d990a0104418f1cbf179c8020a3483
+547680aa08c375d9880a85a118f4d9ce
+7b6511f056f622c4f54a132e77dcf8cc
+fa8bc6d5db2c5442b7fa43bb4a882281
+b2398442092328b6a0e7290251fb19ed
+4967bb11d745c46c928f390bc54778c5
+bb31c109331044abc153cbafc491b1d0
+7b6511f056f622c4f54a132e77dcf8cc
+c8232cdd7ad6caeef5ef51b04907ee56
+0192658d9b51f8772a72afcff58e48a0
+7a2da6e86f8f55b9b28c967f0b6b04f9
+7b6511f056f622c4f54a132e77dcf8cc
+
+26cbef77dd955f6cdd98776309d5b611
+19369671cb0c142604975713ab18571b
+0ac7e34e8284ef60997f48e9ab4fad0b
+ed429c79b495be0fb37cd226c75902ed
+a88cdabf6c2e98a7f5d334aed72b76e3
+c0539c4a0fc777e5ea1019c9deacde2f
+26cbef77dd955f6cdd98776309d5b611
+945816a40d6195eee4c153305eb73135
+9ee7314576d848a92692625d7478f88d
+8be6713a30265285808f06ffbdff65bb
+e0fdda01c6245e3f25d79f83b39ce464
+c0539c4a0fc777e5ea1019c9deacde2f
+
+d88fc523e00bee4a3f0cdfc57a3a910c
+b3d45825e7ae454c5441c3c095d0f27c
+acbda263723780ac1132b0c7cbafa376
+c8ddb93b923ccfa58404cdda08011fab
+
+282d54a2e0237397f3f5a86188f0cb49
+adcc84b782d47a5eb30e3252bf3f2d98
+ffaf051e6a448f77913435284d9716e3
+d42c2af44fd44aaa18334588260f2626
+
+85a6d3d0163ebf5eac15b851b5e1368eAYctaK4aibojJVNiyQeU�|�bb7258b757e6a3ffbdc4544780e61a2e
+98b7b762e6c3bb575744fc2ae1a36831
+c4c9bdd47ee05028cb84873da0ebf2b5
+7a6677f8f67dc40364d676c26ca9a8a9
+
+77aae40f1675c6219777d52f2315fe7f
+4f3871ee9d342e2f9936f2177a3d9f63
+f1e6c8090843f87ed1709852e00798db
+8a3a2dc83796afd4253f24afffcd56b0
+48a50b1830f713806e562cfeaf5d1a3c
+c38a78f79aa246a7236a9e13f55e072d
+cbb184dd8e05c9709e5dcaedaa0495cf
+AYctaK4aibojJVNiyQeU
\ No newline at end of file
diff --git a/doc/02_陈家儒_质量分析报告/gruop/links.pb b/doc/02_陈家儒_质量分析报告/gruop/links.pb
new file mode 100644
index 0000000..e69de29
diff --git a/doc/02_陈家儒_质量分析报告/gruop/live_measures.pb b/doc/02_陈家儒_质量分析报告/gruop/live_measures.pb
new file mode 100644
index 0000000..ab85ac6
Binary files /dev/null and b/doc/02_陈家儒_质量分析报告/gruop/live_measures.pb differ
diff --git a/doc/02_陈家儒_质量分析报告/gruop/measures.pb b/doc/02_陈家儒_质量分析报告/gruop/measures.pb
new file mode 100644
index 0000000..6d85ba8
Binary files /dev/null and b/doc/02_陈家儒_质量分析报告/gruop/measures.pb differ
diff --git a/doc/02_陈家儒_质量分析报告/gruop/metadata.pb b/doc/02_陈家儒_质量分析报告/gruop/metadata.pb
new file mode 100644
index 0000000..ca27aee
--- /dev/null
+++ b/doc/02_陈家儒_质量分析报告/gruop/metadata.pb
@@ -0,0 +1,2 @@
+
+gruopAYctaK4aibojJVNiyQeU9.9.0.65466 �����0
\ No newline at end of file
diff --git a/doc/02_陈家儒_质量分析报告/gruop/metrics.pb b/doc/02_陈家儒_质量分析报告/gruop/metrics.pb
new file mode 100644
index 0000000..355a448
--- /dev/null
+++ b/doc/02_陈家儒_质量分析报告/gruop/metrics.pb
@@ -0,0 +1,8 @@
+linesLinesncloc
Lines of Code;ncloc_language_distributionLines of Code Per LanguageclassesClasses2filesFiles	functions	Functions
+statements
+Statements 
comment_lines
Comment Lines'comment_lines_densityComments (%)%+
+complexityCyclomatic Complexity&(file_complexityComplexity / File.cognitive_complexityCognitive ComplexitycoverageCoverage"lines_to_coverLines to Cover$uncovered_linesUncovered Lines
line_coverage
Line Coverage&'duplicated_linesDuplicated Lines(duplicated_blocksDuplicated Blocks&duplicated_filesDuplicated Files2!duplicated_lines_densityDuplicated Lines (%)*8duplications_dataDuplication Details
+violationsIssues&%blocker_violationsBlocker Issues(critical_violationsCritical Issues"major_violationsMajor Issues" minor_violationsMinor Issues info_violationsInfo Issues0false_positive_issuesFalse Positive Issues%"wont_fix_issuesWon't Fix Issues.open_issuesOpen Issues$1reopened_issuesReopened Issues&&confirmed_issuesConfirmed Issuescode_smellsCode SmellsbugsBugs$	vulnerabilitiesVulnerabilities(security_hotspotsSecurity Hotspots
sqale_indexTechnical Debt(sqale_ratingMaintainability Rating&development_costDevelopment Cost**sqale_debt_ratioTechnical Debt RatioV(effort_to_reach_maintainability_rating_a(Effort to Reach Maintainability Rating ABreliability_remediation_effortReliability Remediation Effort*reliability_ratingReliability Rating</security_remediation_effortSecurity Remediation Effort$,security_ratingSecurity Rating2$security_review_ratingSecurity Review RatingB5new_security_review_rating"Security Review Rating on New Code:#security_hotspots_reviewedSecurity Hotspots ReviewedF3!security_hotspots_reviewed_statusSecurity Review Reviewed StatusH4"security_hotspots_to_review_status Security Review To Review Status6
+ncloc_data
+ncloc_data07executable_lines_dataexecutable_lines_data%)alert_statusQuality Gate Status.0quality_gate_detailsQuality Gate Details-quality_profilesProfiles)last_commit_dateDate of Last Commit<
+analysis_from_sonarqube_9_4Analysis From SonarQube 9.4
\ No newline at end of file
diff --git a/doc/02_陈家儒_质量分析报告/gruop/new_code_periods.pb b/doc/02_陈家儒_质量分析报告/gruop/new_code_periods.pb
new file mode 100644
index 0000000..e69de29
diff --git a/doc/02_陈家儒_质量分析报告/gruop/plugins.pb b/doc/02_陈家儒_质量分析报告/gruop/plugins.pb
new file mode 100644
index 0000000..a082006
--- /dev/null
+++ b/doc/02_陈家儒_质量分析报告/gruop/plugins.pb
@@ -0,0 +1,24 @@
+7
+vbnet VB.NET Code Quality and Security8.51.0.590601
+textText Code Quality and Security	2.0.1.611O
+
+javascript3JavaScript/TypeScript/CSS Code Quality and Security9.13.0.20537/
+goGo Code Quality and Security1.11.0.39057
+kotlin Kotlin Code Quality and Security2.12.0.1956
+jacocoJaCoCo
+1.3.0.1538:
+
+sonarscalaScala Code Quality and Security1.11.0.39051
+webHTML Code Quality and Security
+3.7.1.3306J
+config5Configuration detection fot Code Quality and Security	1.2.0.2678
+python Python Code Quality and Security3.24.0.107844
+csharpC# Code Quality and Security8.51.0.590600
+xmlXML Code Quality and Security
+2.7.0.38201
+phpPHP Code Quality and Security3.27.1.93523
+rubyRuby Code Quality and Security1.11.0.39051
+iacIaC Code Quality and Security1.11.0.28474
+javaJava Code Quality and Security7.16.0.309012
+flexFlex Code Quality and Security
+2.8.0.3166
\ No newline at end of file
diff --git a/doc/02_陈家儒_质量分析报告/gruop/rules.pb b/doc/02_陈家儒_质量分析报告/gruop/rules.pb
new file mode 100644
index 0000000..ed9e65c
--- /dev/null
+++ b/doc/02_陈家儒_质量分析报告/gruop/rules.pb
@@ -0,0 +1 @@
+#S2140java"AYasa1ymRX81SdRisMBi"S108java"AYasa1twRX81SdRisLv3#S1168java"AYasa1yhRX81SdRisL91#S1172java"AYasa1ymRX81SdRisMBf#S1192java"AYasa1toRX81SdRisLtk#S1301java"AYasa1xgRX81SdRisL76#S3626java"AYasa1wGRX81SdRisL2S#S1481java"AYasa1zeRX81SdRisMCq#S2245java"AYasa1yhRX81SdRisL-9"S5604xml"AYasa19jRX81SdRisMqr#S1126java"AYasa1zlRX81SdRisMEQ#S1104java"AYasa1wQRX81SdRisL43#S2696java"AYasa1zkRX81SdRisMDs#S1124java"AYasa1zkRX81SdRisMDm#S2259java"AYasa1yhRX81SdRisL-B#S1854java"AYasa1u2RX81SdRisLzz"S5322xml"AYasa19kRX81SdRisMrG"S116java"AYasa1toRX81SdRisLvB"S899java"AYasa1sRRX81SdRisLo-#S1604java"AYasa1u2RX81SdRisLyc#S1214java"AYasa1xbRX81SdRisL6X#S3008java"AYasa1ymRX81SdRisL_2#S2130java"AYasa1xkRX81SdRisL8t"S100java"AYasa1sgRX81SdRisLsZ"S5594xml"AYasa19lRX81SdRisMrh#S3923java"AYasa1u2RX81SdRisLzY#S3398java"AYasa1u2RX81SdRisLxm#S2864java"AYasa1xjRX81SdRisL8V#S1153java"AYasa1yhRX81SdRisL-f#S5411java"AYasa1ymRX81SdRisMB0#S1135java"AYasa10oRX81SdRisMJF#S1155java"AYasa1yhRX81SdRisL-r#S5993java"AYasa1yhRX81SdRisL-l#S2093java"AYasa1sRRX81SdRisLo7"S6358xml"AYasa19jRX81SdRisMq0#S1125java"AYasa1zkRX81SdRisMD1#S3516java"AYasa1wTRX81SdRisL5S"S101java"AYasa1sgRX81SdRisLsu#S2095java"AYasa1sWRX81SdRisLpQ#S1905java"AYasa1vARX81SdRisL1B"S5332xml"AYasa19mRX81SdRisMsd#S2184java"AYasa1twRX81SdRisLwt#S1450java"AYasa1wTRX81SdRisL5h#S1066java"AYasa1ymRX81SdRisMAp#S2147java"AYasa1zeRX81SdRisMCM#S4507java"AYasa1znRX81SdRisMEo#S1319java"AYasa1wGRX81SdRisL3R"S4507xml"AYasa19lRX81SdRisMr2#S1116java"AYasa1zmRX81SdRisMEW#S1118java"AYasa1zoRX81SdRisMFA#S4144java"AYasa1sbRX81SdRisLq_#S2386java"AYasa1zeRX81SdRisMCJ#S2293java"AYasa1seRX81SdRisLr7"S125java"AYasa1u2RX81SdRisLy9#S3776java"AYasa10fRX81SdRisMGR#S1659java"AYasa1xiRX81SdRisL8D#S2589java"AYasa10oRX81SdRisMJR
\ No newline at end of file
diff --git a/doc/02_陈家儒_质量分析报告/gruop/settings.pb b/doc/02_陈家儒_质量分析报告/gruop/settings.pb
new file mode 100644
index 0000000..e69de29
diff --git a/doc/02_陈家儒_质量分析报告/sonar qube/屏幕截图 2023-03-31 114222.png b/doc/02_陈家儒_质量分析报告/sonar qube/屏幕截图 2023-03-31 114222.png
new file mode 100644
index 0000000..b2e09b0
Binary files /dev/null and b/doc/02_陈家儒_质量分析报告/sonar qube/屏幕截图 2023-03-31 114222.png differ
diff --git a/doc/02_陈家儒_质量分析报告/sonar qube/屏幕截图 2023-03-31 114301.png b/doc/02_陈家儒_质量分析报告/sonar qube/屏幕截图 2023-03-31 114301.png
new file mode 100644
index 0000000..7578cec
Binary files /dev/null and b/doc/02_陈家儒_质量分析报告/sonar qube/屏幕截图 2023-03-31 114301.png differ
diff --git a/doc/02_陈家儒_质量分析报告/sonar qube/屏幕截图 2023-03-31 114524.png b/doc/02_陈家儒_质量分析报告/sonar qube/屏幕截图 2023-03-31 114524.png
new file mode 100644
index 0000000..83fdae5
Binary files /dev/null and b/doc/02_陈家儒_质量分析报告/sonar qube/屏幕截图 2023-03-31 114524.png differ
diff --git a/doc/02_陈家儒_质量分析报告/sonar qube/网页捕获_31-3-2023_114030_127.0.0.1.jpeg b/doc/02_陈家儒_质量分析报告/sonar qube/网页捕获_31-3-2023_114030_127.0.0.1.jpeg
new file mode 100644
index 0000000..2de3fe8
Binary files /dev/null and b/doc/02_陈家儒_质量分析报告/sonar qube/网页捕获_31-3-2023_114030_127.0.0.1.jpeg differ
diff --git a/doc/02_陈家儒_质量分析报告/sonar qube/网页捕获_31-3-2023_114413_127.0.0.1.jpeg b/doc/02_陈家儒_质量分析报告/sonar qube/网页捕获_31-3-2023_114413_127.0.0.1.jpeg
new file mode 100644
index 0000000..0f151ae
Binary files /dev/null and b/doc/02_陈家儒_质量分析报告/sonar qube/网页捕获_31-3-2023_114413_127.0.0.1.jpeg differ
diff --git a/doc/插入图片用例描述文档.txt b/doc/03_陈家儒_维护需求与设计文案/插入图片用例描述文档.txt
similarity index 100%
rename from doc/插入图片用例描述文档.txt
rename to doc/03_陈家儒_维护需求与设计文案/插入图片用例描述文档.txt
diff --git a/doc/登录功能用例描述文档.txt b/doc/03_陈家儒_维护需求与设计文案/登录功能用例描述文档.txt
similarity index 100%
rename from doc/登录功能用例描述文档.txt
rename to doc/03_陈家儒_维护需求与设计文案/登录功能用例描述文档.txt
diff --git a/doc/CJR_codereading/data/Contact.java b/doc/CJR_codereading/data/Contact.java
deleted file mode 100644
index d97ac5d..0000000
--- a/doc/CJR_codereading/data/Contact.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.data;
-
-import android.content.Context;
-import android.database.Cursor;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.provider.ContactsContract.Data;
-import android.telephony.PhoneNumberUtils;
-import android.util.Log;
-
-import java.util.HashMap;
-
-public class Contact {
-    private static HashMap<String, String> sContactCache;
-    private static final String TAG = "Contact";
-
-    private static final String CALLER_ID_SELECTION = "PHONE_NUMBERS_EQUAL(" + Phone.NUMBER
-    + ",?) AND " + Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "'"
-    + " AND " + Data.RAW_CONTACT_ID + " IN "
-            + "(SELECT raw_contact_id "
-            + " FROM phone_lookup"
-            + " WHERE min_match = '+')";
-
-    public static String getContact(Context context, String phoneNumber) {
-        if(sContactCache == null) {
-            sContactCache = new HashMap<String, String>();
-        }
-
-        if(sContactCache.containsKey(phoneNumber)) {
-            return sContactCache.get(phoneNumber);
-        }
-
-        String selection = CALLER_ID_SELECTION.replace("+",
-                PhoneNumberUtils.toCallerIDMinMatch(phoneNumber));
-        Cursor cursor = context.getContentResolver().query(
-                Data.CONTENT_URI,
-                new String [] { Phone.DISPLAY_NAME },
-                selection,
-                new String[] { phoneNumber },
-                null);
-
-        if (cursor != null && cursor.moveToFirst()) {
-            try {
-                String name = cursor.getString(0);
-                sContactCache.put(phoneNumber, name);
-                return name;
-            } catch (IndexOutOfBoundsException e) {
-                Log.e(TAG, " Cursor get string error " + e.toString());
-                return null;
-            } finally {
-                cursor.close();
-            }
-        } else {
-            Log.d(TAG, "No contact matched with number:" + phoneNumber);
-            return null;
-        }
-    }
-}
diff --git a/doc/CJR_codereading/data/Notes.java b/doc/CJR_codereading/data/Notes.java
deleted file mode 100644
index f240604..0000000
--- a/doc/CJR_codereading/data/Notes.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.data;
-
-import android.net.Uri;
-public class Notes {
-    public static final String AUTHORITY = "micode_notes";
-    public static final String TAG = "Notes";
-    public static final int TYPE_NOTE     = 0;
-    public static final int TYPE_FOLDER   = 1;
-    public static final int TYPE_SYSTEM   = 2;
-
-    /**
-     * Following IDs are system folders' identifiers
-     * {@link Notes#ID_ROOT_FOLDER } is default folder
-     * {@link Notes#ID_TEMPARAY_FOLDER } is for notes belonging no folder
-     * {@link Notes#ID_CALL_RECORD_FOLDER} is to store call records
-     */
-    public static final int ID_ROOT_FOLDER = 0;
-    public static final int ID_TEMPARAY_FOLDER = -1;
-    public static final int ID_CALL_RECORD_FOLDER = -2;
-    public static final int ID_TRASH_FOLER = -3;
-
-    public static final String INTENT_EXTRA_ALERT_DATE = "net.micode.notes.alert_date";
-    public static final String INTENT_EXTRA_BACKGROUND_ID = "net.micode.notes.background_color_id";
-    public static final String INTENT_EXTRA_WIDGET_ID = "net.micode.notes.widget_id";
-    public static final String INTENT_EXTRA_WIDGET_TYPE = "net.micode.notes.widget_type";
-    public static final String INTENT_EXTRA_FOLDER_ID = "net.micode.notes.folder_id";
-    public static final String INTENT_EXTRA_CALL_DATE = "net.micode.notes.call_date";
-
-    public static final int TYPE_WIDGET_INVALIDE      = -1;
-    public static final int TYPE_WIDGET_2X            = 0;
-    public static final int TYPE_WIDGET_4X            = 1;
-
-    public static class DataConstants {
-        public static final String NOTE = TextNote.CONTENT_ITEM_TYPE;
-        public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE;
-    }
-
-    /**
-     * Uri to query all notes and folders
-     */
-    public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + AUTHORITY + "/note");
-
-    /**
-     * Uri to query data
-     */
-    public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + AUTHORITY + "/data");
-
-    public interface NoteColumns {
-        /**
-         * The unique ID for a row
-         * <P> Type: INTEGER (long) </P>
-         */
-        public static final String ID = "_id";
-
-        /**
-         * The parent's id for note or folder
-         * <P> Type: INTEGER (long) </P>
-         */
-        public static final String PARENT_ID = "parent_id";
-
-        /**
-         * Created data for note or folder
-         * <P> Type: INTEGER (long) </P>
-         */
-        public static final String CREATED_DATE = "created_date";
-
-        /**
-         * Latest modified date
-         * <P> Type: INTEGER (long) </P>
-         */
-        public static final String MODIFIED_DATE = "modified_date";
-
-
-        /**
-         * Alert date
-         * <P> Type: INTEGER (long) </P>
-         */
-        public static final String ALERTED_DATE = "alert_date";
-
-        /**
-         * Folder's name or text content of note
-         * <P> Type: TEXT </P>
-         */
-        public static final String SNIPPET = "snippet";
-
-        /**
-         * Note's widget id
-         * <P> Type: INTEGER (long) </P>
-         */
-        public static final String WIDGET_ID = "widget_id";
-
-        /**
-         * Note's widget type
-         * <P> Type: INTEGER (long) </P>
-         */
-        public static final String WIDGET_TYPE = "widget_type";
-
-        /**
-         * Note's background color's id
-         * <P> Type: INTEGER (long) </P>
-         */
-        public static final String BG_COLOR_ID = "bg_color_id";
-
-        /**
-         * For text note, it doesn't has attachment, for multi-media
-         * note, it has at least one attachment
-         * <P> Type: INTEGER </P>
-         */
-        public static final String HAS_ATTACHMENT = "has_attachment";
-
-        /**
-         * Folder's count of notes
-         * <P> Type: INTEGER (long) </P>
-         */
-        public static final String NOTES_COUNT = "notes_count";
-
-        /**
-         * The file type: folder or note
-         * <P> Type: INTEGER </P>
-         */
-        public static final String TYPE = "type";
-
-        /**
-         * The last sync id
-         * <P> Type: INTEGER (long) </P>
-         */
-        public static final String SYNC_ID = "sync_id";
-
-        /**
-         * Sign to indicate local modified or not
-         * <P> Type: INTEGER </P>
-         */
-        public static final String LOCAL_MODIFIED = "local_modified";
-
-        /**
-         * Original parent id before moving into temporary folder
-         * <P> Type : INTEGER </P>
-         */
-        public static final String ORIGIN_PARENT_ID = "origin_parent_id";
-
-        /**
-         * The gtask id
-         * <P> Type : TEXT </P>
-         */
-        public static final String GTASK_ID = "gtask_id";
-
-        /**
-         * The version code
-         * <P> Type : INTEGER (long) </P>
-         */
-        public static final String VERSION = "version";
-    }
-
-    public interface DataColumns {
-        /**
-         * The unique ID for a row
-         * <P> Type: INTEGER (long) </P>
-         */
-        public static final String ID = "_id";
-
-        /**
-         * The MIME type of the item represented by this row.
-         * <P> Type: Text </P>
-         */
-        public static final String MIME_TYPE = "mime_type";
-
-        /**
-         * The reference id to note that this data belongs to
-         * <P> Type: INTEGER (long) </P>
-         */
-        public static final String NOTE_ID = "note_id";
-
-        /**
-         * Created data for note or folder
-         * <P> Type: INTEGER (long) </P>
-         */
-        public static final String CREATED_DATE = "created_date";
-
-        /**
-         * Latest modified date
-         * <P> Type: INTEGER (long) </P>
-         */
-        public static final String MODIFIED_DATE = "modified_date";
-
-        /**
-         * Data's content
-         * <P> Type: TEXT </P>
-         */
-        public static final String CONTENT = "content";
-
-
-        /**
-         * Generic data column, the meaning is {@link #MIMETYPE} specific, used for
-         * integer data type
-         * <P> Type: INTEGER </P>
-         */
-        public static final String DATA1 = "data1";
-
-        /**
-         * Generic data column, the meaning is {@link #MIMETYPE} specific, used for
-         * integer data type
-         * <P> Type: INTEGER </P>
-         */
-        public static final String DATA2 = "data2";
-
-        /**
-         * Generic data column, the meaning is {@link #MIMETYPE} specific, used for
-         * TEXT data type
-         * <P> Type: TEXT </P>
-         */
-        public static final String DATA3 = "data3";
-
-        /**
-         * Generic data column, the meaning is {@link #MIMETYPE} specific, used for
-         * TEXT data type
-         * <P> Type: TEXT </P>
-         */
-        public static final String DATA4 = "data4";
-
-        /**
-         * Generic data column, the meaning is {@link #MIMETYPE} specific, used for
-         * TEXT data type
-         * <P> Type: TEXT </P>
-         */
-        public static final String DATA5 = "data5";
-    }
-
-    public static final class TextNote implements DataColumns {
-        /**
-         * Mode to indicate the text in check list mode or not
-         * <P> Type: Integer 1:check list mode 0: normal mode </P>
-         */
-        public static final String MODE = DATA1;
-
-        public static final int MODE_CHECK_LIST = 1;
-
-        public static final String CONTENT_TYPE = "vnd.android.cursor.dir/text_note";
-
-        public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/text_note";
-
-        public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note");
-    }
-
-    public static final class CallNote implements DataColumns {
-        /**
-         * Call date for this record
-         * <P> Type: INTEGER (long) </P>
-         */
-        public static final String CALL_DATE = DATA1;
-
-        /**
-         * Phone number for this record
-         * <P> Type: TEXT </P>
-         */
-        public static final String PHONE_NUMBER = DATA3;
-
-        public static final String CONTENT_TYPE = "vnd.android.cursor.dir/call_note";
-
-        public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/call_note";
-
-        public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/call_note");
-    }
-}
diff --git a/doc/CJR_codereading/data/NotesDatabaseHelper.java b/doc/CJR_codereading/data/NotesDatabaseHelper.java
deleted file mode 100644
index ffe5d57..0000000
--- a/doc/CJR_codereading/data/NotesDatabaseHelper.java
+++ /dev/null
@@ -1,362 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.data;
-
-import android.content.ContentValues;
-import android.content.Context;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteOpenHelper;
-import android.util.Log;
-
-import net.micode.notes.data.Notes.DataColumns;
-import net.micode.notes.data.Notes.DataConstants;
-import net.micode.notes.data.Notes.NoteColumns;
-
-
-public class NotesDatabaseHelper extends SQLiteOpenHelper {
-    private static final String DB_NAME = "note.db";
-
-    private static final int DB_VERSION = 4;
-
-    public interface TABLE {
-        public static final String NOTE = "note";
-
-        public static final String DATA = "data";
-    }
-
-    private static final String TAG = "NotesDatabaseHelper";
-
-    private static NotesDatabaseHelper mInstance;
-
-    private static final String CREATE_NOTE_TABLE_SQL =
-        "CREATE TABLE " + TABLE.NOTE + "(" +
-            NoteColumns.ID + " INTEGER PRIMARY KEY," +
-            NoteColumns.PARENT_ID + " INTEGER NOT NULL DEFAULT 0," +
-            NoteColumns.ALERTED_DATE + " INTEGER NOT NULL DEFAULT 0," +
-            NoteColumns.BG_COLOR_ID + " INTEGER NOT NULL DEFAULT 0," +
-            NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," +
-            NoteColumns.HAS_ATTACHMENT + " INTEGER NOT NULL DEFAULT 0," +
-            NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," +
-            NoteColumns.NOTES_COUNT + " INTEGER NOT NULL DEFAULT 0," +
-            NoteColumns.SNIPPET + " TEXT NOT NULL DEFAULT ''," +
-            NoteColumns.TYPE + " INTEGER NOT NULL DEFAULT 0," +
-            NoteColumns.WIDGET_ID + " INTEGER NOT NULL DEFAULT 0," +
-            NoteColumns.WIDGET_TYPE + " INTEGER NOT NULL DEFAULT -1," +
-            NoteColumns.SYNC_ID + " INTEGER NOT NULL DEFAULT 0," +
-            NoteColumns.LOCAL_MODIFIED + " INTEGER NOT NULL DEFAULT 0," +
-            NoteColumns.ORIGIN_PARENT_ID + " INTEGER NOT NULL DEFAULT 0," +
-            NoteColumns.GTASK_ID + " TEXT NOT NULL DEFAULT ''," +
-            NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0" +
-        ")";
-
-    private static final String CREATE_DATA_TABLE_SQL =
-        "CREATE TABLE " + TABLE.DATA + "(" +
-            DataColumns.ID + " INTEGER PRIMARY KEY," +
-            DataColumns.MIME_TYPE + " TEXT NOT NULL," +
-            DataColumns.NOTE_ID + " INTEGER NOT NULL DEFAULT 0," +
-            NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," +
-            NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," +
-            DataColumns.CONTENT + " TEXT NOT NULL DEFAULT ''," +
-            DataColumns.DATA1 + " INTEGER," +
-            DataColumns.DATA2 + " INTEGER," +
-            DataColumns.DATA3 + " TEXT NOT NULL DEFAULT ''," +
-            DataColumns.DATA4 + " TEXT NOT NULL DEFAULT ''," +
-            DataColumns.DATA5 + " TEXT NOT NULL DEFAULT ''" +
-        ")";
-
-    private static final String CREATE_DATA_NOTE_ID_INDEX_SQL =
-        "CREATE INDEX IF NOT EXISTS note_id_index ON " +
-        TABLE.DATA + "(" + DataColumns.NOTE_ID + ");";
-
-    /**
-     * Increase folder's note count when move note to the folder
-     */
-    private static final String NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER =
-        "CREATE TRIGGER increase_folder_count_on_update "+
-        " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE +
-        " BEGIN " +
-        "  UPDATE " + TABLE.NOTE +
-        "   SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" +
-        "  WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" +
-        " END";
-
-    /**
-     * Decrease folder's note count when move note from folder
-     */
-    private static final String NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER =
-        "CREATE TRIGGER decrease_folder_count_on_update " +
-        " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE +
-        " BEGIN " +
-        "  UPDATE " + TABLE.NOTE +
-        "   SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" +
-        "  WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID +
-        "  AND " + NoteColumns.NOTES_COUNT + ">0" + ";" +
-        " END";
-
-    /**
-     * Increase folder's note count when insert new note to the folder
-     */
-    private static final String NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER =
-        "CREATE TRIGGER increase_folder_count_on_insert " +
-        " AFTER INSERT ON " + TABLE.NOTE +
-        " BEGIN " +
-        "  UPDATE " + TABLE.NOTE +
-        "   SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" +
-        "  WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" +
-        " END";
-
-    /**
-     * Decrease folder's note count when delete note from the folder
-     */
-    private static final String NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER =
-        "CREATE TRIGGER decrease_folder_count_on_delete " +
-        " AFTER DELETE ON " + TABLE.NOTE +
-        " BEGIN " +
-        "  UPDATE " + TABLE.NOTE +
-        "   SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" +
-        "  WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID +
-        "  AND " + NoteColumns.NOTES_COUNT + ">0;" +
-        " END";
-
-    /**
-     * Update note's content when insert data with type {@link DataConstants#NOTE}
-     */
-    private static final String DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER =
-        "CREATE TRIGGER update_note_content_on_insert " +
-        " AFTER INSERT ON " + TABLE.DATA +
-        " WHEN new." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" +
-        " BEGIN" +
-        "  UPDATE " + TABLE.NOTE +
-        "   SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT +
-        "  WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" +
-        " END";
-
-    /**
-     * Update note's content when data with {@link DataConstants#NOTE} type has changed
-     */
-    private static final String DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER =
-        "CREATE TRIGGER update_note_content_on_update " +
-        " AFTER UPDATE ON " + TABLE.DATA +
-        " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" +
-        " BEGIN" +
-        "  UPDATE " + TABLE.NOTE +
-        "   SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT +
-        "  WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" +
-        " END";
-
-    /**
-     * Update note's content when data with {@link DataConstants#NOTE} type has deleted
-     */
-    private static final String DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER =
-        "CREATE TRIGGER update_note_content_on_delete " +
-        " AFTER delete ON " + TABLE.DATA +
-        " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" +
-        " BEGIN" +
-        "  UPDATE " + TABLE.NOTE +
-        "   SET " + NoteColumns.SNIPPET + "=''" +
-        "  WHERE " + NoteColumns.ID + "=old." + DataColumns.NOTE_ID + ";" +
-        " END";
-
-    /**
-     * Delete datas belong to note which has been deleted
-     */
-    private static final String NOTE_DELETE_DATA_ON_DELETE_TRIGGER =
-        "CREATE TRIGGER delete_data_on_delete " +
-        " AFTER DELETE ON " + TABLE.NOTE +
-        " BEGIN" +
-        "  DELETE FROM " + TABLE.DATA +
-        "   WHERE " + DataColumns.NOTE_ID + "=old." + NoteColumns.ID + ";" +
-        " END";
-
-    /**
-     * Delete notes belong to folder which has been deleted
-     */
-    private static final String FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER =
-        "CREATE TRIGGER folder_delete_notes_on_delete " +
-        " AFTER DELETE ON " + TABLE.NOTE +
-        " BEGIN" +
-        "  DELETE FROM " + TABLE.NOTE +
-        "   WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" +
-        " END";
-
-    /**
-     * Move notes belong to folder which has been moved to trash folder
-     */
-    private static final String FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER =
-        "CREATE TRIGGER folder_move_notes_on_trash " +
-        " AFTER UPDATE ON " + TABLE.NOTE +
-        " WHEN new." + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER +
-        " BEGIN" +
-        "  UPDATE " + TABLE.NOTE +
-        "   SET " + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER +
-        "  WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" +
-        " END";
-
-    public NotesDatabaseHelper(Context context) {
-        super(context, DB_NAME, null, DB_VERSION);
-    }
-
-    public void createNoteTable(SQLiteDatabase db) {
-        db.execSQL(CREATE_NOTE_TABLE_SQL);
-        reCreateNoteTableTriggers(db);
-        createSystemFolder(db);
-        Log.d(TAG, "note table has been created");
-    }
-
-    private void reCreateNoteTableTriggers(SQLiteDatabase db) {
-        db.execSQL("DROP TRIGGER IF EXISTS increase_folder_count_on_update");
-        db.execSQL("DROP TRIGGER IF EXISTS decrease_folder_count_on_update");
-        db.execSQL("DROP TRIGGER IF EXISTS decrease_folder_count_on_delete");
-        db.execSQL("DROP TRIGGER IF EXISTS delete_data_on_delete");
-        db.execSQL("DROP TRIGGER IF EXISTS increase_folder_count_on_insert");
-        db.execSQL("DROP TRIGGER IF EXISTS folder_delete_notes_on_delete");
-        db.execSQL("DROP TRIGGER IF EXISTS folder_move_notes_on_trash");
-
-        db.execSQL(NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER);
-        db.execSQL(NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER);
-        db.execSQL(NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER);
-        db.execSQL(NOTE_DELETE_DATA_ON_DELETE_TRIGGER);
-        db.execSQL(NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER);
-        db.execSQL(FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER);
-        db.execSQL(FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER);
-    }
-
-    private void createSystemFolder(SQLiteDatabase db) {
-        ContentValues values = new ContentValues();
-
-        /**
-         * call record foler for call notes
-         */
-        values.put(NoteColumns.ID, Notes.ID_CALL_RECORD_FOLDER);
-        values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
-        db.insert(TABLE.NOTE, null, values);
-
-        /**
-         * root folder which is default folder
-         */
-        values.clear();
-        values.put(NoteColumns.ID, Notes.ID_ROOT_FOLDER);
-        values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
-        db.insert(TABLE.NOTE, null, values);
-
-        /**
-         * temporary folder which is used for moving note
-         */
-        values.clear();
-        values.put(NoteColumns.ID, Notes.ID_TEMPARAY_FOLDER);
-        values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
-        db.insert(TABLE.NOTE, null, values);
-
-        /**
-         * create trash folder
-         */
-        values.clear();
-        values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER);
-        values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
-        db.insert(TABLE.NOTE, null, values);
-    }
-
-    public void createDataTable(SQLiteDatabase db) {
-        db.execSQL(CREATE_DATA_TABLE_SQL);
-        reCreateDataTableTriggers(db);
-        db.execSQL(CREATE_DATA_NOTE_ID_INDEX_SQL);
-        Log.d(TAG, "data table has been created");
-    }
-
-    private void reCreateDataTableTriggers(SQLiteDatabase db) {
-        db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_insert");
-        db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_update");
-        db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_delete");
-
-        db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER);
-        db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER);
-        db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER);
-    }
-
-    static synchronized NotesDatabaseHelper getInstance(Context context) {
-        if (mInstance == null) {
-            mInstance = new NotesDatabaseHelper(context);
-        }
-        return mInstance;
-    }
-
-    @Override
-    public void onCreate(SQLiteDatabase db) {
-        createNoteTable(db);
-        createDataTable(db);
-    }
-
-    @Override
-    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
-        boolean reCreateTriggers = false;
-        boolean skipV2 = false;
-
-        if (oldVersion == 1) {
-            upgradeToV2(db);
-            skipV2 = true; // this upgrade including the upgrade from v2 to v3
-            oldVersion++;
-        }
-
-        if (oldVersion == 2 && !skipV2) {
-            upgradeToV3(db);
-            reCreateTriggers = true;
-            oldVersion++;
-        }
-
-        if (oldVersion == 3) {
-            upgradeToV4(db);
-            oldVersion++;
-        }
-
-        if (reCreateTriggers) {
-            reCreateNoteTableTriggers(db);
-            reCreateDataTableTriggers(db);
-        }
-
-        if (oldVersion != newVersion) {
-            throw new IllegalStateException("Upgrade notes database to version " + newVersion
-                    + "fails");
-        }
-    }
-
-    private void upgradeToV2(SQLiteDatabase db) {
-        db.execSQL("DROP TABLE IF EXISTS " + TABLE.NOTE);
-        db.execSQL("DROP TABLE IF EXISTS " + TABLE.DATA);
-        createNoteTable(db);
-        createDataTable(db);
-    }
-
-    private void upgradeToV3(SQLiteDatabase db) {
-        // drop unused triggers
-        db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_insert");
-        db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_delete");
-        db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_update");
-        // add a column for gtask id
-        db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.GTASK_ID
-                + " TEXT NOT NULL DEFAULT ''");
-        // add a trash system folder
-        ContentValues values = new ContentValues();
-        values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER);
-        values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
-        db.insert(TABLE.NOTE, null, values);
-    }
-
-    private void upgradeToV4(SQLiteDatabase db) {
-        db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.VERSION
-                + " INTEGER NOT NULL DEFAULT 0");
-    }
-}
diff --git a/doc/CJR_codereading/data/NotesProvider.java b/doc/CJR_codereading/data/NotesProvider.java
deleted file mode 100644
index edb0a60..0000000
--- a/doc/CJR_codereading/data/NotesProvider.java
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.data;
-
-
-import android.app.SearchManager;
-import android.content.ContentProvider;
-import android.content.ContentUris;
-import android.content.ContentValues;
-import android.content.Intent;
-import android.content.UriMatcher;
-import android.database.Cursor;
-import android.database.sqlite.SQLiteDatabase;
-import android.net.Uri;
-import android.text.TextUtils;
-import android.util.Log;
-
-import net.micode.notes.R;
-import net.micode.notes.data.Notes.DataColumns;
-import net.micode.notes.data.Notes.NoteColumns;
-import net.micode.notes.data.NotesDatabaseHelper.TABLE;
-
-
-public class NotesProvider extends ContentProvider {
-    private static final UriMatcher mMatcher;
-
-    private NotesDatabaseHelper mHelper;
-
-    private static final String TAG = "NotesProvider";
-
-    private static final int URI_NOTE            = 1;
-    private static final int URI_NOTE_ITEM       = 2;
-    private static final int URI_DATA            = 3;
-    private static final int URI_DATA_ITEM       = 4;
-
-    private static final int URI_SEARCH          = 5;
-    private static final int URI_SEARCH_SUGGEST  = 6;
-
-    static {
-        mMatcher = new UriMatcher(UriMatcher.NO_MATCH);
-        mMatcher.addURI(Notes.AUTHORITY, "note", URI_NOTE);
-        mMatcher.addURI(Notes.AUTHORITY, "note/#", URI_NOTE_ITEM);
-        mMatcher.addURI(Notes.AUTHORITY, "data", URI_DATA);
-        mMatcher.addURI(Notes.AUTHORITY, "data/#", URI_DATA_ITEM);
-        mMatcher.addURI(Notes.AUTHORITY, "search", URI_SEARCH);
-        mMatcher.addURI(Notes.AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY, URI_SEARCH_SUGGEST);
-        mMatcher.addURI(Notes.AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY + "/*", URI_SEARCH_SUGGEST);
-    }
-
-    /**
-     * x'0A' represents the '\n' character in sqlite. For title and content in the search result,
-     * we will trim '\n' and white space in order to show more information.
-     */
-    private static final String NOTES_SEARCH_PROJECTION = NoteColumns.ID + ","
-        + NoteColumns.ID + " AS " + SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA + ","
-        + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_1 + ","
-        + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_2 + ","
-        + R.drawable.search_result + " AS " + SearchManager.SUGGEST_COLUMN_ICON_1 + ","
-        + "'" + Intent.ACTION_VIEW + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_ACTION + ","
-        + "'" + Notes.TextNote.CONTENT_TYPE + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_DATA;
-
-    private static String NOTES_SNIPPET_SEARCH_QUERY = "SELECT " + NOTES_SEARCH_PROJECTION
-        + " FROM " + TABLE.NOTE
-        + " WHERE " + NoteColumns.SNIPPET + " LIKE ?"
-        + " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER
-        + " AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE;
-
-    @Override
-    public boolean onCreate() {
-        mHelper = NotesDatabaseHelper.getInstance(getContext());
-        return true;
-    }
-
-    @Override
-    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
-            String sortOrder) {
-        Cursor c = null;
-        SQLiteDatabase db = mHelper.getReadableDatabase();
-        String id = null;
-        switch (mMatcher.match(uri)) {
-            case URI_NOTE:
-                c = db.query(TABLE.NOTE, projection, selection, selectionArgs, null, null,
-                        sortOrder);
-                break;
-            case URI_NOTE_ITEM:
-                id = uri.getPathSegments().get(1);
-                c = db.query(TABLE.NOTE, projection, NoteColumns.ID + "=" + id
-                        + parseSelection(selection), selectionArgs, null, null, sortOrder);
-                break;
-            case URI_DATA:
-                c = db.query(TABLE.DATA, projection, selection, selectionArgs, null, null,
-                        sortOrder);
-                break;
-            case URI_DATA_ITEM:
-                id = uri.getPathSegments().get(1);
-                c = db.query(TABLE.DATA, projection, DataColumns.ID + "=" + id
-                        + parseSelection(selection), selectionArgs, null, null, sortOrder);
-                break;
-            case URI_SEARCH:
-            case URI_SEARCH_SUGGEST:
-                if (sortOrder != null || projection != null) {
-                    throw new IllegalArgumentException(
-                            "do not specify sortOrder, selection, selectionArgs, or projection" + "with this query");
-                }
-
-                String searchString = null;
-                if (mMatcher.match(uri) == URI_SEARCH_SUGGEST) {
-                    if (uri.getPathSegments().size() > 1) {
-                        searchString = uri.getPathSegments().get(1);
-                    }
-                } else {
-                    searchString = uri.getQueryParameter("pattern");
-                }
-
-                if (TextUtils.isEmpty(searchString)) {
-                    return null;
-                }
-
-                try {
-                    searchString = String.format("%%%s%%", searchString);
-                    c = db.rawQuery(NOTES_SNIPPET_SEARCH_QUERY,
-                            new String[] { searchString });
-                } catch (IllegalStateException ex) {
-                    Log.e(TAG, "got exception: " + ex.toString());
-                }
-                break;
-            default:
-                throw new IllegalArgumentException("Unknown URI " + uri);
-        }
-        if (c != null) {
-            c.setNotificationUri(getContext().getContentResolver(), uri);
-        }
-        return c;
-    }
-
-    @Override
-    public Uri insert(Uri uri, ContentValues values) {
-        SQLiteDatabase db = mHelper.getWritableDatabase();
-        long dataId = 0, noteId = 0, insertedId = 0;
-        switch (mMatcher.match(uri)) {
-            case URI_NOTE:
-                insertedId = noteId = db.insert(TABLE.NOTE, null, values);
-                break;
-            case URI_DATA:
-                if (values.containsKey(DataColumns.NOTE_ID)) {
-                    noteId = values.getAsLong(DataColumns.NOTE_ID);
-                } else {
-                    Log.d(TAG, "Wrong data format without note id:" + values.toString());
-                }
-                insertedId = dataId = db.insert(TABLE.DATA, null, values);
-                break;
-            default:
-                throw new IllegalArgumentException("Unknown URI " + uri);
-        }
-        // Notify the note uri
-        if (noteId > 0) {
-            getContext().getContentResolver().notifyChange(
-                    ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), null);
-        }
-
-        // Notify the data uri
-        if (dataId > 0) {
-            getContext().getContentResolver().notifyChange(
-                    ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId), null);
-        }
-
-        return ContentUris.withAppendedId(uri, insertedId);
-    }
-
-    @Override
-    public int delete(Uri uri, String selection, String[] selectionArgs) {
-        int count = 0;
-        String id = null;
-        SQLiteDatabase db = mHelper.getWritableDatabase();
-        boolean deleteData = false;
-        switch (mMatcher.match(uri)) {
-            case URI_NOTE:
-                selection = "(" + selection + ") AND " + NoteColumns.ID + ">0 ";
-                count = db.delete(TABLE.NOTE, selection, selectionArgs);
-                break;
-            case URI_NOTE_ITEM:
-                id = uri.getPathSegments().get(1);
-                /**
-                 * ID that smaller than 0 is system folder which is not allowed to
-                 * trash
-                 */
-                long noteId = Long.valueOf(id);
-                if (noteId <= 0) {
-                    break;
-                }
-                count = db.delete(TABLE.NOTE,
-                        NoteColumns.ID + "=" + id + parseSelection(selection), selectionArgs);
-                break;
-            case URI_DATA:
-                count = db.delete(TABLE.DATA, selection, selectionArgs);
-                deleteData = true;
-                break;
-            case URI_DATA_ITEM:
-                id = uri.getPathSegments().get(1);
-                count = db.delete(TABLE.DATA,
-                        DataColumns.ID + "=" + id + parseSelection(selection), selectionArgs);
-                deleteData = true;
-                break;
-            default:
-                throw new IllegalArgumentException("Unknown URI " + uri);
-        }
-        if (count > 0) {
-            if (deleteData) {
-                getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null);
-            }
-            getContext().getContentResolver().notifyChange(uri, null);
-        }
-        return count;
-    }
-
-    @Override
-    public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
-        int count = 0;
-        String id = null;
-        SQLiteDatabase db = mHelper.getWritableDatabase();
-        boolean updateData = false;
-        switch (mMatcher.match(uri)) {
-            case URI_NOTE:
-                increaseNoteVersion(-1, selection, selectionArgs);
-                count = db.update(TABLE.NOTE, values, selection, selectionArgs);
-                break;
-            case URI_NOTE_ITEM:
-                id = uri.getPathSegments().get(1);
-                increaseNoteVersion(Long.valueOf(id), selection, selectionArgs);
-                count = db.update(TABLE.NOTE, values, NoteColumns.ID + "=" + id
-                        + parseSelection(selection), selectionArgs);
-                break;
-            case URI_DATA:
-                count = db.update(TABLE.DATA, values, selection, selectionArgs);
-                updateData = true;
-                break;
-            case URI_DATA_ITEM:
-                id = uri.getPathSegments().get(1);
-                count = db.update(TABLE.DATA, values, DataColumns.ID + "=" + id
-                        + parseSelection(selection), selectionArgs);
-                updateData = true;
-                break;
-            default:
-                throw new IllegalArgumentException("Unknown URI " + uri);
-        }
-
-        if (count > 0) {
-            if (updateData) {
-                getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null);
-            }
-            getContext().getContentResolver().notifyChange(uri, null);
-        }
-        return count;
-    }
-
-    private String parseSelection(String selection) {
-        return (!TextUtils.isEmpty(selection) ? " AND (" + selection + ')' : "");
-    }
-
-    private void increaseNoteVersion(long id, String selection, String[] selectionArgs) {
-        StringBuilder sql = new StringBuilder(120);
-        sql.append("UPDATE ");
-        sql.append(TABLE.NOTE);
-        sql.append(" SET ");
-        sql.append(NoteColumns.VERSION);
-        sql.append("=" + NoteColumns.VERSION + "+1 ");
-
-        if (id > 0 || !TextUtils.isEmpty(selection)) {
-            sql.append(" WHERE ");
-        }
-        if (id > 0) {
-            sql.append(NoteColumns.ID + "=" + String.valueOf(id));
-        }
-        if (!TextUtils.isEmpty(selection)) {
-            String selectString = id > 0 ? parseSelection(selection) : selection;
-            for (String args : selectionArgs) {
-                selectString = selectString.replaceFirst("\\?", args);
-            }
-            sql.append(selectString);
-        }
-
-        mHelper.getWritableDatabase().execSQL(sql.toString());
-    }
-
-    @Override
-    public String getType(Uri uri) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-}
diff --git a/doc/CJR_codereading/model/Note.java b/doc/CJR_codereading/model/Note.java
deleted file mode 100644
index 6706cf6..0000000
--- a/doc/CJR_codereading/model/Note.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.model;
-import android.content.ContentProviderOperation;
-import android.content.ContentProviderResult;
-import android.content.ContentUris;
-import android.content.ContentValues;
-import android.content.Context;
-import android.content.OperationApplicationException;
-import android.net.Uri;
-import android.os.RemoteException;
-import android.util.Log;
-
-import net.micode.notes.data.Notes;
-import net.micode.notes.data.Notes.CallNote;
-import net.micode.notes.data.Notes.DataColumns;
-import net.micode.notes.data.Notes.NoteColumns;
-import net.micode.notes.data.Notes.TextNote;
-
-import java.util.ArrayList;
-
-
-public class Note {
-    private ContentValues mNoteDiffValues;
-    private NoteData mNoteData;
-    private static final String TAG = "Note";
-    /**
-     * Create a new note id for adding a new note to databases
-     */
-    public static synchronized long getNewNoteId(Context context, long folderId) {
-        // Create a new note in the database
-        ContentValues values = new ContentValues();
-        long createdTime = System.currentTimeMillis();
-        values.put(NoteColumns.CREATED_DATE, createdTime);
-        values.put(NoteColumns.MODIFIED_DATE, createdTime);
-        values.put(NoteColumns.TYPE, Notes.TYPE_NOTE);
-        values.put(NoteColumns.LOCAL_MODIFIED, 1);
-        values.put(NoteColumns.PARENT_ID, folderId);
-        Uri uri = context.getContentResolver().insert(Notes.CONTENT_NOTE_URI, values);
-
-        long noteId = 0;
-        try {
-            noteId = Long.valueOf(uri.getPathSegments().get(1));
-        } catch (NumberFormatException e) {
-            Log.e(TAG, "Get note id error :" + e.toString());
-            noteId = 0;
-        }
-        if (noteId == -1) {
-            throw new IllegalStateException("Wrong note id:" + noteId);
-        }
-        return noteId;
-    }
-
-    public Note() {
-        mNoteDiffValues = new ContentValues();
-        mNoteData = new NoteData();
-    }
-
-    public void setNoteValue(String key, String value) {
-        mNoteDiffValues.put(key, value);
-        mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1);
-        mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis());
-    }
-
-    public void setTextData(String key, String value) {
-        mNoteData.setTextData(key, value);
-    }
-
-    public void setTextDataId(long id) {
-        mNoteData.setTextDataId(id);
-    }
-
-    public long getTextDataId() {
-        return mNoteData.mTextDataId;
-    }
-
-    public void setCallDataId(long id) {
-        mNoteData.setCallDataId(id);
-    }
-
-    public void setCallData(String key, String value) {
-        mNoteData.setCallData(key, value);
-    }
-
-    public boolean isLocalModified() {
-        return mNoteDiffValues.size() > 0 || mNoteData.isLocalModified();
-    }
-
-    public boolean syncNote(Context context, long noteId) {
-        if (noteId <= 0) {
-            throw new IllegalArgumentException("Wrong note id:" + noteId);
-        }
-
-        if (!isLocalModified()) {
-            return true;
-        }
-
-        /**
-         * In theory, once data changed, the note should be updated on {@link NoteColumns#LOCAL_MODIFIED} and
-         * {@link NoteColumns#MODIFIED_DATE}. For data safety, though update note fails, we also update the
-         * note data info
-         */
-        if (context.getContentResolver().update(
-                ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), mNoteDiffValues, null,
-                null) == 0) {
-            Log.e(TAG, "Update note error, should not happen");
-            // Do not return, fall through
-        }
-        mNoteDiffValues.clear();
-
-        if (mNoteData.isLocalModified()
-                && (mNoteData.pushIntoContentResolver(context, noteId) == null)) {
-            return false;
-        }
-
-        return true;
-    }
-
-    private class NoteData {
-        private long mTextDataId;
-
-        private ContentValues mTextDataValues;
-
-        private long mCallDataId;
-
-        private ContentValues mCallDataValues;
-
-        private static final String TAG = "NoteData";
-
-        public NoteData() {
-            mTextDataValues = new ContentValues();
-            mCallDataValues = new ContentValues();
-            mTextDataId = 0;
-            mCallDataId = 0;
-        }
-
-        boolean isLocalModified() {
-            return mTextDataValues.size() > 0 || mCallDataValues.size() > 0;
-        }
-
-        void setTextDataId(long id) {
-            if(id <= 0) {
-                throw new IllegalArgumentException("Text data id should larger than 0");
-            }
-            mTextDataId = id;
-        }
-
-        void setCallDataId(long id) {
-            if (id <= 0) {
-                throw new IllegalArgumentException("Call data id should larger than 0");
-            }
-            mCallDataId = id;
-        }
-
-        void setCallData(String key, String value) {
-            mCallDataValues.put(key, value);
-            mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1);
-            mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis());
-        }
-
-        void setTextData(String key, String value) {
-            mTextDataValues.put(key, value);
-            mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1);
-            mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis());
-        }
-
-        Uri pushIntoContentResolver(Context context, long noteId) {
-            /**
-             * Check for safety
-             */
-            if (noteId <= 0) {
-                throw new IllegalArgumentException("Wrong note id:" + noteId);
-            }
-
-            ArrayList<ContentProviderOperation> operationList = new ArrayList<ContentProviderOperation>();
-            ContentProviderOperation.Builder builder = null;
-
-            if(mTextDataValues.size() > 0) {
-                mTextDataValues.put(DataColumns.NOTE_ID, noteId);
-                if (mTextDataId == 0) {
-                    mTextDataValues.put(DataColumns.MIME_TYPE, TextNote.CONTENT_ITEM_TYPE);
-                    Uri uri = context.getContentResolver().insert(Notes.CONTENT_DATA_URI,
-                            mTextDataValues);
-                    try {
-                        setTextDataId(Long.valueOf(uri.getPathSegments().get(1)));
-                    } catch (NumberFormatException e) {
-                        Log.e(TAG, "Insert new text data fail with noteId" + noteId);
-                        mTextDataValues.clear();
-                        return null;
-                    }
-                } else {
-                    builder = ContentProviderOperation.newUpdate(ContentUris.withAppendedId(
-                            Notes.CONTENT_DATA_URI, mTextDataId));
-                    builder.withValues(mTextDataValues);
-                    operationList.add(builder.build());
-                }
-                mTextDataValues.clear();
-            }
-
-            if(mCallDataValues.size() > 0) {
-                mCallDataValues.put(DataColumns.NOTE_ID, noteId);
-                if (mCallDataId == 0) {
-                    mCallDataValues.put(DataColumns.MIME_TYPE, CallNote.CONTENT_ITEM_TYPE);
-                    Uri uri = context.getContentResolver().insert(Notes.CONTENT_DATA_URI,
-                            mCallDataValues);
-                    try {
-                        setCallDataId(Long.valueOf(uri.getPathSegments().get(1)));
-                    } catch (NumberFormatException e) {
-                        Log.e(TAG, "Insert new call data fail with noteId" + noteId);
-                        mCallDataValues.clear();
-                        return null;
-                    }
-                } else {
-                    builder = ContentProviderOperation.newUpdate(ContentUris.withAppendedId(
-                            Notes.CONTENT_DATA_URI, mCallDataId));
-                    builder.withValues(mCallDataValues);
-                    operationList.add(builder.build());
-                }
-                mCallDataValues.clear();
-            }
-
-            if (operationList.size() > 0) {
-                try {
-                    ContentProviderResult[] results = context.getContentResolver().applyBatch(
-                            Notes.AUTHORITY, operationList);
-                    return (results == null || results.length == 0 || results[0] == null) ? null
-                            : ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId);
-                } catch (RemoteException e) {
-                    Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage()));
-                    return null;
-                } catch (OperationApplicationException e) {
-                    Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage()));
-                    return null;
-                }
-            }
-            return null;
-        }
-    }
-}
diff --git a/doc/CJR_codereading/model/WorkingNote.java b/doc/CJR_codereading/model/WorkingNote.java
deleted file mode 100644
index be081e4..0000000
--- a/doc/CJR_codereading/model/WorkingNote.java
+++ /dev/null
@@ -1,368 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.model;
-
-import android.appwidget.AppWidgetManager;
-import android.content.ContentUris;
-import android.content.Context;
-import android.database.Cursor;
-import android.text.TextUtils;
-import android.util.Log;
-
-import net.micode.notes.data.Notes;
-import net.micode.notes.data.Notes.CallNote;
-import net.micode.notes.data.Notes.DataColumns;
-import net.micode.notes.data.Notes.DataConstants;
-import net.micode.notes.data.Notes.NoteColumns;
-import net.micode.notes.data.Notes.TextNote;
-import net.micode.notes.tool.ResourceParser.NoteBgResources;
-
-
-public class WorkingNote {
-    // Note for the working note
-    private Note mNote;
-    // Note Id
-    private long mNoteId;
-    // Note content
-    private String mContent;
-    // Note mode
-    private int mMode;
-
-    private long mAlertDate;
-
-    private long mModifiedDate;
-
-    private int mBgColorId;
-
-    private int mWidgetId;
-
-    private int mWidgetType;
-
-    private long mFolderId;
-
-    private Context mContext;
-
-    private static final String TAG = "WorkingNote";
-
-    private boolean mIsDeleted;
-
-    private NoteSettingChangedListener mNoteSettingStatusListener;
-
-    public static final String[] DATA_PROJECTION = new String[] {
-            DataColumns.ID,
-            DataColumns.CONTENT,
-            DataColumns.MIME_TYPE,
-            DataColumns.DATA1,
-            DataColumns.DATA2,
-            DataColumns.DATA3,
-            DataColumns.DATA4,
-    };
-
-    public static final String[] NOTE_PROJECTION = new String[] {
-            NoteColumns.PARENT_ID,
-            NoteColumns.ALERTED_DATE,
-            NoteColumns.BG_COLOR_ID,
-            NoteColumns.WIDGET_ID,
-            NoteColumns.WIDGET_TYPE,
-            NoteColumns.MODIFIED_DATE
-    };
-
-    private static final int DATA_ID_COLUMN = 0;
-
-    private static final int DATA_CONTENT_COLUMN = 1;
-
-    private static final int DATA_MIME_TYPE_COLUMN = 2;
-
-    private static final int DATA_MODE_COLUMN = 3;
-
-    private static final int NOTE_PARENT_ID_COLUMN = 0;
-
-    private static final int NOTE_ALERTED_DATE_COLUMN = 1;
-
-    private static final int NOTE_BG_COLOR_ID_COLUMN = 2;
-
-    private static final int NOTE_WIDGET_ID_COLUMN = 3;
-
-    private static final int NOTE_WIDGET_TYPE_COLUMN = 4;
-
-    private static final int NOTE_MODIFIED_DATE_COLUMN = 5;
-
-    // New note construct
-    private WorkingNote(Context context, long folderId) {
-        mContext = context;
-        mAlertDate = 0;
-        mModifiedDate = System.currentTimeMillis();
-        mFolderId = folderId;
-        mNote = new Note();
-        mNoteId = 0;
-        mIsDeleted = false;
-        mMode = 0;
-        mWidgetType = Notes.TYPE_WIDGET_INVALIDE;
-    }
-
-    // Existing note construct
-    private WorkingNote(Context context, long noteId, long folderId) {
-        mContext = context;
-        mNoteId = noteId;
-        mFolderId = folderId;
-        mIsDeleted = false;
-        mNote = new Note();
-        loadNote();
-    }
-
-    private void loadNote() {
-        Cursor cursor = mContext.getContentResolver().query(
-                ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mNoteId), NOTE_PROJECTION, null,
-                null, null);
-
-        if (cursor != null) {
-            if (cursor.moveToFirst()) {
-                mFolderId = cursor.getLong(NOTE_PARENT_ID_COLUMN);
-                mBgColorId = cursor.getInt(NOTE_BG_COLOR_ID_COLUMN);
-                mWidgetId = cursor.getInt(NOTE_WIDGET_ID_COLUMN);
-                mWidgetType = cursor.getInt(NOTE_WIDGET_TYPE_COLUMN);
-                mAlertDate = cursor.getLong(NOTE_ALERTED_DATE_COLUMN);
-                mModifiedDate = cursor.getLong(NOTE_MODIFIED_DATE_COLUMN);
-            }
-            cursor.close();
-        } else {
-            Log.e(TAG, "No note with id:" + mNoteId);
-            throw new IllegalArgumentException("Unable to find note with id " + mNoteId);
-        }
-        loadNoteData();
-    }
-
-    private void loadNoteData() {
-        Cursor cursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI, DATA_PROJECTION,
-                DataColumns.NOTE_ID + "=?", new String[] {
-                    String.valueOf(mNoteId)
-                }, null);
-
-        if (cursor != null) {
-            if (cursor.moveToFirst()) {
-                do {
-                    String type = cursor.getString(DATA_MIME_TYPE_COLUMN);
-                    if (DataConstants.NOTE.equals(type)) {
-                        mContent = cursor.getString(DATA_CONTENT_COLUMN);
-                        mMode = cursor.getInt(DATA_MODE_COLUMN);
-                        mNote.setTextDataId(cursor.getLong(DATA_ID_COLUMN));
-                    } else if (DataConstants.CALL_NOTE.equals(type)) {
-                        mNote.setCallDataId(cursor.getLong(DATA_ID_COLUMN));
-                    } else {
-                        Log.d(TAG, "Wrong note type with type:" + type);
-                    }
-                } while (cursor.moveToNext());
-            }
-            cursor.close();
-        } else {
-            Log.e(TAG, "No data with id:" + mNoteId);
-            throw new IllegalArgumentException("Unable to find note's data with id " + mNoteId);
-        }
-    }
-
-    public static WorkingNote createEmptyNote(Context context, long folderId, int widgetId,
-            int widgetType, int defaultBgColorId) {
-        WorkingNote note = new WorkingNote(context, folderId);
-        note.setBgColorId(defaultBgColorId);
-        note.setWidgetId(widgetId);
-        note.setWidgetType(widgetType);
-        return note;
-    }
-
-    public static WorkingNote load(Context context, long id) {
-        return new WorkingNote(context, id, 0);
-    }
-
-    public synchronized boolean saveNote() {
-        if (isWorthSaving()) {
-            if (!existInDatabase()) {
-                if ((mNoteId = Note.getNewNoteId(mContext, mFolderId)) == 0) {
-                    Log.e(TAG, "Create new note fail with id:" + mNoteId);
-                    return false;
-                }
-            }
-
-            mNote.syncNote(mContext, mNoteId);
-
-            /**
-             * Update widget content if there exist any widget of this note
-             */
-            if (mWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID
-                    && mWidgetType != Notes.TYPE_WIDGET_INVALIDE
-                    && mNoteSettingStatusListener != null) {
-                mNoteSettingStatusListener.onWidgetChanged();
-            }
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    public boolean existInDatabase() {
-        return mNoteId > 0;
-    }
-
-    private boolean isWorthSaving() {
-        if (mIsDeleted || (!existInDatabase() && TextUtils.isEmpty(mContent))
-                || (existInDatabase() && !mNote.isLocalModified())) {
-            return false;
-        } else {
-            return true;
-        }
-    }
-
-    public void setOnSettingStatusChangedListener(NoteSettingChangedListener l) {
-        mNoteSettingStatusListener = l;
-    }
-
-    public void setAlertDate(long date, boolean set) {
-        if (date != mAlertDate) {
-            mAlertDate = date;
-            mNote.setNoteValue(NoteColumns.ALERTED_DATE, String.valueOf(mAlertDate));
-        }
-        if (mNoteSettingStatusListener != null) {
-            mNoteSettingStatusListener.onClockAlertChanged(date, set);
-        }
-    }
-
-    public void markDeleted(boolean mark) {
-        mIsDeleted = mark;
-        if (mWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID
-                && mWidgetType != Notes.TYPE_WIDGET_INVALIDE && mNoteSettingStatusListener != null) {
-                mNoteSettingStatusListener.onWidgetChanged();
-        }
-    }
-
-    public void setBgColorId(int id) {
-        if (id != mBgColorId) {
-            mBgColorId = id;
-            if (mNoteSettingStatusListener != null) {
-                mNoteSettingStatusListener.onBackgroundColorChanged();
-            }
-            mNote.setNoteValue(NoteColumns.BG_COLOR_ID, String.valueOf(id));
-        }
-    }
-
-    public void setCheckListMode(int mode) {
-        if (mMode != mode) {
-            if (mNoteSettingStatusListener != null) {
-                mNoteSettingStatusListener.onCheckListModeChanged(mMode, mode);
-            }
-            mMode = mode;
-            mNote.setTextData(TextNote.MODE, String.valueOf(mMode));
-        }
-    }
-
-    public void setWidgetType(int type) {
-        if (type != mWidgetType) {
-            mWidgetType = type;
-            mNote.setNoteValue(NoteColumns.WIDGET_TYPE, String.valueOf(mWidgetType));
-        }
-    }
-
-    public void setWidgetId(int id) {
-        if (id != mWidgetId) {
-            mWidgetId = id;
-            mNote.setNoteValue(NoteColumns.WIDGET_ID, String.valueOf(mWidgetId));
-        }
-    }
-
-    public void setWorkingText(String text) {
-        if (!TextUtils.equals(mContent, text)) {
-            mContent = text;
-            mNote.setTextData(DataColumns.CONTENT, mContent);
-        }
-    }
-
-    public void convertToCallNote(String phoneNumber, long callDate) {
-        mNote.setCallData(CallNote.CALL_DATE, String.valueOf(callDate));
-        mNote.setCallData(CallNote.PHONE_NUMBER, phoneNumber);
-        mNote.setNoteValue(NoteColumns.PARENT_ID, String.valueOf(Notes.ID_CALL_RECORD_FOLDER));
-    }
-
-    public boolean hasClockAlert() {
-        return (mAlertDate > 0 ? true : false);
-    }
-
-    public String getContent() {
-        return mContent;
-    }
-
-    public long getAlertDate() {
-        return mAlertDate;
-    }
-
-    public long getModifiedDate() {
-        return mModifiedDate;
-    }
-
-    public int getBgColorResId() {
-        return NoteBgResources.getNoteBgResource(mBgColorId);
-    }
-
-    public int getBgColorId() {
-        return mBgColorId;
-    }
-
-    public int getTitleBgResId() {
-        return NoteBgResources.getNoteTitleBgResource(mBgColorId);
-    }
-
-    public int getCheckListMode() {
-        return mMode;
-    }
-
-    public long getNoteId() {
-        return mNoteId;
-    }
-
-    public long getFolderId() {
-        return mFolderId;
-    }
-
-    public int getWidgetId() {
-        return mWidgetId;
-    }
-
-    public int getWidgetType() {
-        return mWidgetType;
-    }
-
-    public interface NoteSettingChangedListener {
-        /**
-         * Called when the background color of current note has just changed
-         */
-        void onBackgroundColorChanged();
-
-        /**
-         * Called when user set clock
-         */
-        void onClockAlertChanged(long date, boolean set);
-
-        /**
-         * Call when user create note from widget
-         */
-        void onWidgetChanged();
-
-        /**
-         * Call when switch between check list mode and normal mode
-         * @param oldMode is previous mode before change
-         * @param newMode is new mode
-         */
-        void onCheckListModeChanged(int oldMode, int newMode);
-    }
-}
diff --git a/doc/CJR_codereading/tool/BackupUtils.java b/doc/CJR_codereading/tool/BackupUtils.java
deleted file mode 100644
index 39f6ec4..0000000
--- a/doc/CJR_codereading/tool/BackupUtils.java
+++ /dev/null
@@ -1,344 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.tool;
-
-import android.content.Context;
-import android.database.Cursor;
-import android.os.Environment;
-import android.text.TextUtils;
-import android.text.format.DateFormat;
-import android.util.Log;
-
-import net.micode.notes.R;
-import net.micode.notes.data.Notes;
-import net.micode.notes.data.Notes.DataColumns;
-import net.micode.notes.data.Notes.DataConstants;
-import net.micode.notes.data.Notes.NoteColumns;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintStream;
-
-
-public class BackupUtils {
-    private static final String TAG = "BackupUtils";
-    // Singleton stuff
-    private static BackupUtils sInstance;
-
-    public static synchronized BackupUtils getInstance(Context context) {
-        if (sInstance == null) {
-            sInstance = new BackupUtils(context);
-        }
-        return sInstance;
-    }
-
-    /**
-     * Following states are signs to represents backup or restore
-     * status
-     */
-    // Currently, the sdcard is not mounted
-    public static final int STATE_SD_CARD_UNMOUONTED           = 0;
-    // The backup file not exist
-    public static final int STATE_BACKUP_FILE_NOT_EXIST        = 1;
-    // The data is not well formated, may be changed by other programs
-    public static final int STATE_DATA_DESTROIED               = 2;
-    // Some run-time exception which causes restore or backup fails
-    public static final int STATE_SYSTEM_ERROR                 = 3;
-    // Backup or restore success
-    public static final int STATE_SUCCESS                      = 4;
-
-    private TextExport mTextExport;
-
-    private BackupUtils(Context context) {
-        mTextExport = new TextExport(context);
-    }
-
-    private static boolean externalStorageAvailable() {
-        return Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState());
-    }
-
-    public int exportToText() {
-        return mTextExport.exportToText();
-    }
-
-    public String getExportedTextFileName() {
-        return mTextExport.mFileName;
-    }
-
-    public String getExportedTextFileDir() {
-        return mTextExport.mFileDirectory;
-    }
-
-    private static class TextExport {
-        private static final String[] NOTE_PROJECTION = {
-                NoteColumns.ID,
-                NoteColumns.MODIFIED_DATE,
-                NoteColumns.SNIPPET,
-                NoteColumns.TYPE
-        };
-
-        private static final int NOTE_COLUMN_ID = 0;
-
-        private static final int NOTE_COLUMN_MODIFIED_DATE = 1;
-
-        private static final int NOTE_COLUMN_SNIPPET = 2;
-
-        private static final String[] DATA_PROJECTION = {
-                DataColumns.CONTENT,
-                DataColumns.MIME_TYPE,
-                DataColumns.DATA1,
-                DataColumns.DATA2,
-                DataColumns.DATA3,
-                DataColumns.DATA4,
-        };
-
-        private static final int DATA_COLUMN_CONTENT = 0;
-
-        private static final int DATA_COLUMN_MIME_TYPE = 1;
-
-        private static final int DATA_COLUMN_CALL_DATE = 2;
-
-        private static final int DATA_COLUMN_PHONE_NUMBER = 4;
-
-        private final String [] TEXT_FORMAT;
-        private static final int FORMAT_FOLDER_NAME          = 0;
-        private static final int FORMAT_NOTE_DATE            = 1;
-        private static final int FORMAT_NOTE_CONTENT         = 2;
-
-        private Context mContext;
-        private String mFileName;
-        private String mFileDirectory;
-
-        public TextExport(Context context) {
-            TEXT_FORMAT = context.getResources().getStringArray(R.array.format_for_exported_note);
-            mContext = context;
-            mFileName = "";
-            mFileDirectory = "";
-        }
-
-        private String getFormat(int id) {
-            return TEXT_FORMAT[id];
-        }
-
-        /**
-         * Export the folder identified by folder id to text
-         */
-        private void exportFolderToText(String folderId, PrintStream ps) {
-            // Query notes belong to this folder
-            Cursor notesCursor = mContext.getContentResolver().query(Notes.CONTENT_NOTE_URI,
-                    NOTE_PROJECTION, NoteColumns.PARENT_ID + "=?", new String[] {
-                        folderId
-                    }, null);
-
-            if (notesCursor != null) {
-                if (notesCursor.moveToFirst()) {
-                    do {
-                        // Print note's last modified date
-                        ps.println(String.format(getFormat(FORMAT_NOTE_DATE), DateFormat.format(
-                                mContext.getString(R.string.format_datetime_mdhm),
-                                notesCursor.getLong(NOTE_COLUMN_MODIFIED_DATE))));
-                        // Query data belong to this note
-                        String noteId = notesCursor.getString(NOTE_COLUMN_ID);
-                        exportNoteToText(noteId, ps);
-                    } while (notesCursor.moveToNext());
-                }
-                notesCursor.close();
-            }
-        }
-
-        /**
-         * Export note identified by id to a print stream
-         */
-        private void exportNoteToText(String noteId, PrintStream ps) {
-            Cursor dataCursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI,
-                    DATA_PROJECTION, DataColumns.NOTE_ID + "=?", new String[] {
-                        noteId
-                    }, null);
-
-            if (dataCursor != null) {
-                if (dataCursor.moveToFirst()) {
-                    do {
-                        String mimeType = dataCursor.getString(DATA_COLUMN_MIME_TYPE);
-                        if (DataConstants.CALL_NOTE.equals(mimeType)) {
-                            // Print phone number
-                            String phoneNumber = dataCursor.getString(DATA_COLUMN_PHONE_NUMBER);
-                            long callDate = dataCursor.getLong(DATA_COLUMN_CALL_DATE);
-                            String location = dataCursor.getString(DATA_COLUMN_CONTENT);
-
-                            if (!TextUtils.isEmpty(phoneNumber)) {
-                                ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT),
-                                        phoneNumber));
-                            }
-                            // Print call date
-                            ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT), DateFormat
-                                    .format(mContext.getString(R.string.format_datetime_mdhm),
-                                            callDate)));
-                            // Print call attachment location
-                            if (!TextUtils.isEmpty(location)) {
-                                ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT),
-                                        location));
-                            }
-                        } else if (DataConstants.NOTE.equals(mimeType)) {
-                            String content = dataCursor.getString(DATA_COLUMN_CONTENT);
-                            if (!TextUtils.isEmpty(content)) {
-                                ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT),
-                                        content));
-                            }
-                        }
-                    } while (dataCursor.moveToNext());
-                }
-                dataCursor.close();
-            }
-            // print a line separator between note
-            try {
-                ps.write(new byte[] {
-                        Character.LINE_SEPARATOR, Character.LETTER_NUMBER
-                });
-            } catch (IOException e) {
-                Log.e(TAG, e.toString());
-            }
-        }
-
-        /**
-         * Note will be exported as text which is user readable
-         */
-        public int exportToText() {
-            if (!externalStorageAvailable()) {
-                Log.d(TAG, "Media was not mounted");
-                return STATE_SD_CARD_UNMOUONTED;
-            }
-
-            PrintStream ps = getExportToTextPrintStream();
-            if (ps == null) {
-                Log.e(TAG, "get print stream error");
-                return STATE_SYSTEM_ERROR;
-            }
-            // First export folder and its notes
-            Cursor folderCursor = mContext.getContentResolver().query(
-                    Notes.CONTENT_NOTE_URI,
-                    NOTE_PROJECTION,
-                    "(" + NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER + " AND "
-                            + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER + ") OR "
-                            + NoteColumns.ID + "=" + Notes.ID_CALL_RECORD_FOLDER, null, null);
-
-            if (folderCursor != null) {
-                if (folderCursor.moveToFirst()) {
-                    do {
-                        // Print folder's name
-                        String folderName = "";
-                        if(folderCursor.getLong(NOTE_COLUMN_ID) == Notes.ID_CALL_RECORD_FOLDER) {
-                            folderName = mContext.getString(R.string.call_record_folder_name);
-                        } else {
-                            folderName = folderCursor.getString(NOTE_COLUMN_SNIPPET);
-                        }
-                        if (!TextUtils.isEmpty(folderName)) {
-                            ps.println(String.format(getFormat(FORMAT_FOLDER_NAME), folderName));
-                        }
-                        String folderId = folderCursor.getString(NOTE_COLUMN_ID);
-                        exportFolderToText(folderId, ps);
-                    } while (folderCursor.moveToNext());
-                }
-                folderCursor.close();
-            }
-
-            // Export notes in root's folder
-            Cursor noteCursor = mContext.getContentResolver().query(
-                    Notes.CONTENT_NOTE_URI,
-                    NOTE_PROJECTION,
-                    NoteColumns.TYPE + "=" + +Notes.TYPE_NOTE + " AND " + NoteColumns.PARENT_ID
-                            + "=0", null, null);
-
-            if (noteCursor != null) {
-                if (noteCursor.moveToFirst()) {
-                    do {
-                        ps.println(String.format(getFormat(FORMAT_NOTE_DATE), DateFormat.format(
-                                mContext.getString(R.string.format_datetime_mdhm),
-                                noteCursor.getLong(NOTE_COLUMN_MODIFIED_DATE))));
-                        // Query data belong to this note
-                        String noteId = noteCursor.getString(NOTE_COLUMN_ID);
-                        exportNoteToText(noteId, ps);
-                    } while (noteCursor.moveToNext());
-                }
-                noteCursor.close();
-            }
-            ps.close();
-
-            return STATE_SUCCESS;
-        }
-
-        /**
-         * Get a print stream pointed to the file {@generateExportedTextFile}
-         */
-        private PrintStream getExportToTextPrintStream() {
-            File file = generateFileMountedOnSDcard(mContext, R.string.file_path,
-                    R.string.file_name_txt_format);
-            if (file == null) {
-                Log.e(TAG, "create file to exported failed");
-                return null;
-            }
-            mFileName = file.getName();
-            mFileDirectory = mContext.getString(R.string.file_path);
-            PrintStream ps = null;
-            try {
-                FileOutputStream fos = new FileOutputStream(file);
-                ps = new PrintStream(fos);
-            } catch (FileNotFoundException e) {
-                e.printStackTrace();
-                return null;
-            } catch (NullPointerException e) {
-                e.printStackTrace();
-                return null;
-            }
-            return ps;
-        }
-    }
-
-    /**
-     * Generate the text file to store imported data
-     */
-    private static File generateFileMountedOnSDcard(Context context, int filePathResId, int fileNameFormatResId) {
-        StringBuilder sb = new StringBuilder();
-        sb.append(Environment.getExternalStorageDirectory());
-        sb.append(context.getString(filePathResId));
-        File filedir = new File(sb.toString());
-        sb.append(context.getString(
-                fileNameFormatResId,
-                DateFormat.format(context.getString(R.string.format_date_ymd),
-                        System.currentTimeMillis())));
-        File file = new File(sb.toString());
-
-        try {
-            if (!filedir.exists()) {
-                filedir.mkdir();
-            }
-            if (!file.exists()) {
-                file.createNewFile();
-            }
-            return file;
-        } catch (SecurityException e) {
-            e.printStackTrace();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-
-        return null;
-    }
-}
-
-
diff --git a/doc/CJR_codereading/tool/DataUtils.java b/doc/CJR_codereading/tool/DataUtils.java
deleted file mode 100644
index 2a14982..0000000
--- a/doc/CJR_codereading/tool/DataUtils.java
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.tool;
-
-import android.content.ContentProviderOperation;
-import android.content.ContentProviderResult;
-import android.content.ContentResolver;
-import android.content.ContentUris;
-import android.content.ContentValues;
-import android.content.OperationApplicationException;
-import android.database.Cursor;
-import android.os.RemoteException;
-import android.util.Log;
-
-import net.micode.notes.data.Notes;
-import net.micode.notes.data.Notes.CallNote;
-import net.micode.notes.data.Notes.NoteColumns;
-import net.micode.notes.ui.NotesListAdapter.AppWidgetAttribute;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-
-
-public class DataUtils {
-    public static final String TAG = "DataUtils";
-    public static boolean batchDeleteNotes(ContentResolver resolver, HashSet<Long> ids) {
-        if (ids == null) {
-            Log.d(TAG, "the ids is null");
-            return true;
-        }
-        if (ids.size() == 0) {
-            Log.d(TAG, "no id is in the hashset");
-            return true;
-        }
-
-        ArrayList<ContentProviderOperation> operationList = new ArrayList<ContentProviderOperation>();
-        for (long id : ids) {
-            if(id == Notes.ID_ROOT_FOLDER) {
-                Log.e(TAG, "Don't delete system folder root");
-                continue;
-            }
-            ContentProviderOperation.Builder builder = ContentProviderOperation
-                    .newDelete(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id));
-            operationList.add(builder.build());
-        }
-        try {
-            ContentProviderResult[] results = resolver.applyBatch(Notes.AUTHORITY, operationList);
-            if (results == null || results.length == 0 || results[0] == null) {
-                Log.d(TAG, "delete notes failed, ids:" + ids.toString());
-                return false;
-            }
-            return true;
-        } catch (RemoteException e) {
-            Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage()));
-        } catch (OperationApplicationException e) {
-            Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage()));
-        }
-        return false;
-    }
-
-    public static void moveNoteToFoler(ContentResolver resolver, long id, long srcFolderId, long desFolderId) {
-        ContentValues values = new ContentValues();
-        values.put(NoteColumns.PARENT_ID, desFolderId);
-        values.put(NoteColumns.ORIGIN_PARENT_ID, srcFolderId);
-        values.put(NoteColumns.LOCAL_MODIFIED, 1);
-        resolver.update(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id), values, null, null);
-    }
-
-    public static boolean batchMoveToFolder(ContentResolver resolver, HashSet<Long> ids,
-            long folderId) {
-        if (ids == null) {
-            Log.d(TAG, "the ids is null");
-            return true;
-        }
-
-        ArrayList<ContentProviderOperation> operationList = new ArrayList<ContentProviderOperation>();
-        for (long id : ids) {
-            ContentProviderOperation.Builder builder = ContentProviderOperation
-                    .newUpdate(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id));
-            builder.withValue(NoteColumns.PARENT_ID, folderId);
-            builder.withValue(NoteColumns.LOCAL_MODIFIED, 1);
-            operationList.add(builder.build());
-        }
-
-        try {
-            ContentProviderResult[] results = resolver.applyBatch(Notes.AUTHORITY, operationList);
-            if (results == null || results.length == 0 || results[0] == null) {
-                Log.d(TAG, "delete notes failed, ids:" + ids.toString());
-                return false;
-            }
-            return true;
-        } catch (RemoteException e) {
-            Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage()));
-        } catch (OperationApplicationException e) {
-            Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage()));
-        }
-        return false;
-    }
-
-    /**
-     * Get the all folder count except system folders {@link Notes#TYPE_SYSTEM}}
-     */
-    public static int getUserFolderCount(ContentResolver resolver) {
-        Cursor cursor =resolver.query(Notes.CONTENT_NOTE_URI,
-                new String[] { "COUNT(*)" },
-                NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>?",
-                new String[] { String.valueOf(Notes.TYPE_FOLDER), String.valueOf(Notes.ID_TRASH_FOLER)},
-                null);
-
-        int count = 0;
-        if(cursor != null) {
-            if(cursor.moveToFirst()) {
-                try {
-                    count = cursor.getInt(0);
-                } catch (IndexOutOfBoundsException e) {
-                    Log.e(TAG, "get folder count failed:" + e.toString());
-                } finally {
-                    cursor.close();
-                }
-            }
-        }
-        return count;
-    }
-
-    public static boolean visibleInNoteDatabase(ContentResolver resolver, long noteId, int type) {
-        Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId),
-                null,
-                NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER,
-                new String [] {String.valueOf(type)},
-                null);
-
-        boolean exist = false;
-        if (cursor != null) {
-            if (cursor.getCount() > 0) {
-                exist = true;
-            }
-            cursor.close();
-        }
-        return exist;
-    }
-
-    public static boolean existInNoteDatabase(ContentResolver resolver, long noteId) {
-        Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId),
-                null, null, null, null);
-
-        boolean exist = false;
-        if (cursor != null) {
-            if (cursor.getCount() > 0) {
-                exist = true;
-            }
-            cursor.close();
-        }
-        return exist;
-    }
-
-    public static boolean existInDataDatabase(ContentResolver resolver, long dataId) {
-        Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId),
-                null, null, null, null);
-
-        boolean exist = false;
-        if (cursor != null) {
-            if (cursor.getCount() > 0) {
-                exist = true;
-            }
-            cursor.close();
-        }
-        return exist;
-    }
-
-    public static boolean checkVisibleFolderName(ContentResolver resolver, String name) {
-        Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI, null,
-                NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER +
-                " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER +
-                " AND " + NoteColumns.SNIPPET + "=?",
-                new String[] { name }, null);
-        boolean exist = false;
-        if(cursor != null) {
-            if(cursor.getCount() > 0) {
-                exist = true;
-            }
-            cursor.close();
-        }
-        return exist;
-    }
-
-    public static HashSet<AppWidgetAttribute> getFolderNoteWidget(ContentResolver resolver, long folderId) {
-        Cursor c = resolver.query(Notes.CONTENT_NOTE_URI,
-                new String[] { NoteColumns.WIDGET_ID, NoteColumns.WIDGET_TYPE },
-                NoteColumns.PARENT_ID + "=?",
-                new String[] { String.valueOf(folderId) },
-                null);
-
-        HashSet<AppWidgetAttribute> set = null;
-        if (c != null) {
-            if (c.moveToFirst()) {
-                set = new HashSet<AppWidgetAttribute>();
-                do {
-                    try {
-                        AppWidgetAttribute widget = new AppWidgetAttribute();
-                        widget.widgetId = c.getInt(0);
-                        widget.widgetType = c.getInt(1);
-                        set.add(widget);
-                    } catch (IndexOutOfBoundsException e) {
-                        Log.e(TAG, e.toString());
-                    }
-                } while (c.moveToNext());
-            }
-            c.close();
-        }
-        return set;
-    }
-
-    public static String getCallNumberByNoteId(ContentResolver resolver, long noteId) {
-        Cursor cursor = resolver.query(Notes.CONTENT_DATA_URI,
-                new String [] { CallNote.PHONE_NUMBER },
-                CallNote.NOTE_ID + "=? AND " + CallNote.MIME_TYPE + "=?",
-                new String [] { String.valueOf(noteId), CallNote.CONTENT_ITEM_TYPE },
-                null);
-
-        if (cursor != null && cursor.moveToFirst()) {
-            try {
-                return cursor.getString(0);
-            } catch (IndexOutOfBoundsException e) {
-                Log.e(TAG, "Get call number fails " + e.toString());
-            } finally {
-                cursor.close();
-            }
-        }
-        return "";
-    }
-
-    public static long getNoteIdByPhoneNumberAndCallDate(ContentResolver resolver, String phoneNumber, long callDate) {
-        Cursor cursor = resolver.query(Notes.CONTENT_DATA_URI,
-                new String [] { CallNote.NOTE_ID },
-                CallNote.CALL_DATE + "=? AND " + CallNote.MIME_TYPE + "=? AND PHONE_NUMBERS_EQUAL("
-                + CallNote.PHONE_NUMBER + ",?)",
-                new String [] { String.valueOf(callDate), CallNote.CONTENT_ITEM_TYPE, phoneNumber },
-                null);
-
-        if (cursor != null) {
-            if (cursor.moveToFirst()) {
-                try {
-                    return cursor.getLong(0);
-                } catch (IndexOutOfBoundsException e) {
-                    Log.e(TAG, "Get call note id fails " + e.toString());
-                }
-            }
-            cursor.close();
-        }
-        return 0;
-    }
-
-    public static String getSnippetById(ContentResolver resolver, long noteId) {
-        Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI,
-                new String [] { NoteColumns.SNIPPET },
-                NoteColumns.ID + "=?",
-                new String [] { String.valueOf(noteId)},
-                null);
-
-        if (cursor != null) {
-            String snippet = "";
-            if (cursor.moveToFirst()) {
-                snippet = cursor.getString(0);
-            }
-            cursor.close();
-            return snippet;
-        }
-        throw new IllegalArgumentException("Note is not found with id: " + noteId);
-    }
-
-    public static String getFormattedSnippet(String snippet) {
-        if (snippet != null) {
-            snippet = snippet.trim();
-            int index = snippet.indexOf('\n');
-            if (index != -1) {
-                snippet = snippet.substring(0, index);
-            }
-        }
-        return snippet;
-    }
-}
diff --git a/doc/CJR_codereading/tool/GTaskStringUtils.java b/doc/CJR_codereading/tool/GTaskStringUtils.java
deleted file mode 100644
index 666b729..0000000
--- a/doc/CJR_codereading/tool/GTaskStringUtils.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.tool;
-
-public class GTaskStringUtils {
-
-    public final static String GTASK_JSON_ACTION_ID = "action_id";
-
-    public final static String GTASK_JSON_ACTION_LIST = "action_list";
-
-    public final static String GTASK_JSON_ACTION_TYPE = "action_type";
-
-    public final static String GTASK_JSON_ACTION_TYPE_CREATE = "create";
-
-    public final static String GTASK_JSON_ACTION_TYPE_GETALL = "get_all";
-
-    public final static String GTASK_JSON_ACTION_TYPE_MOVE = "move";
-
-    public final static String GTASK_JSON_ACTION_TYPE_UPDATE = "update";
-
-    public final static String GTASK_JSON_CREATOR_ID = "creator_id";
-
-    public final static String GTASK_JSON_CHILD_ENTITY = "child_entity";
-
-    public final static String GTASK_JSON_CLIENT_VERSION = "client_version";
-
-    public final static String GTASK_JSON_COMPLETED = "completed";
-
-    public final static String GTASK_JSON_CURRENT_LIST_ID = "current_list_id";
-
-    public final static String GTASK_JSON_DEFAULT_LIST_ID = "default_list_id";
-
-    public final static String GTASK_JSON_DELETED = "deleted";
-
-    public final static String GTASK_JSON_DEST_LIST = "dest_list";
-
-    public final static String GTASK_JSON_DEST_PARENT = "dest_parent";
-
-    public final static String GTASK_JSON_DEST_PARENT_TYPE = "dest_parent_type";
-
-    public final static String GTASK_JSON_ENTITY_DELTA = "entity_delta";
-
-    public final static String GTASK_JSON_ENTITY_TYPE = "entity_type";
-
-    public final static String GTASK_JSON_GET_DELETED = "get_deleted";
-
-    public final static String GTASK_JSON_ID = "id";
-
-    public final static String GTASK_JSON_INDEX = "index";
-
-    public final static String GTASK_JSON_LAST_MODIFIED = "last_modified";
-
-    public final static String GTASK_JSON_LATEST_SYNC_POINT = "latest_sync_point";
-
-    public final static String GTASK_JSON_LIST_ID = "list_id";
-
-    public final static String GTASK_JSON_LISTS = "lists";
-
-    public final static String GTASK_JSON_NAME = "name";
-
-    public final static String GTASK_JSON_NEW_ID = "new_id";
-
-    public final static String GTASK_JSON_NOTES = "notes";
-
-    public final static String GTASK_JSON_PARENT_ID = "parent_id";
-
-    public final static String GTASK_JSON_PRIOR_SIBLING_ID = "prior_sibling_id";
-
-    public final static String GTASK_JSON_RESULTS = "results";
-
-    public final static String GTASK_JSON_SOURCE_LIST = "source_list";
-
-    public final static String GTASK_JSON_TASKS = "tasks";
-
-    public final static String GTASK_JSON_TYPE = "type";
-
-    public final static String GTASK_JSON_TYPE_GROUP = "GROUP";
-
-    public final static String GTASK_JSON_TYPE_TASK = "TASK";
-
-    public final static String GTASK_JSON_USER = "user";
-
-    public final static String MIUI_FOLDER_PREFFIX = "[MIUI_Notes]";
-
-    public final static String FOLDER_DEFAULT = "Default";
-
-    public final static String FOLDER_CALL_NOTE = "Call_Note";
-
-    public final static String FOLDER_META = "METADATA";
-
-    public final static String META_HEAD_GTASK_ID = "meta_gid";
-
-    public final static String META_HEAD_NOTE = "meta_note";
-
-    public final static String META_HEAD_DATA = "meta_data";
-
-    public final static String META_NOTE_NAME = "[META INFO] DON'T UPDATE AND DELETE";
-
-}
diff --git a/doc/CJR_codereading/tool/ResourceParser.java b/doc/CJR_codereading/tool/ResourceParser.java
deleted file mode 100644
index 1ad3ad6..0000000
--- a/doc/CJR_codereading/tool/ResourceParser.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.tool;
-
-import android.content.Context;
-import android.preference.PreferenceManager;
-
-import net.micode.notes.R;
-import net.micode.notes.ui.NotesPreferenceActivity;
-
-public class ResourceParser {
-
-    public static final int YELLOW           = 0;
-    public static final int BLUE             = 1;
-    public static final int WHITE            = 2;
-    public static final int GREEN            = 3;
-    public static final int RED              = 4;
-
-    public static final int BG_DEFAULT_COLOR = YELLOW;
-
-    public static final int TEXT_SMALL       = 0;
-    public static final int TEXT_MEDIUM      = 1;
-    public static final int TEXT_LARGE       = 2;
-    public static final int TEXT_SUPER       = 3;
-
-    public static final int BG_DEFAULT_FONT_SIZE = TEXT_MEDIUM;
-
-    public static class NoteBgResources {
-        private final static int [] BG_EDIT_RESOURCES = new int [] {
-            R.drawable.edit_yellow,
-            R.drawable.edit_blue,
-            R.drawable.edit_white,
-            R.drawable.edit_green,
-            R.drawable.edit_red
-        };
-
-        private final static int [] BG_EDIT_TITLE_RESOURCES = new int [] {
-            R.drawable.edit_title_yellow,
-            R.drawable.edit_title_blue,
-            R.drawable.edit_title_white,
-            R.drawable.edit_title_green,
-            R.drawable.edit_title_red
-        };
-
-        public static int getNoteBgResource(int id) {
-            return BG_EDIT_RESOURCES[id];
-        }
-
-        public static int getNoteTitleBgResource(int id) {
-            return BG_EDIT_TITLE_RESOURCES[id];
-        }
-    }
-
-    public static int getDefaultBgId(Context context) {
-        if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean(
-                NotesPreferenceActivity.PREFERENCE_SET_BG_COLOR_KEY, false)) {
-            return (int) (Math.random() * NoteBgResources.BG_EDIT_RESOURCES.length);
-        } else {
-            return BG_DEFAULT_COLOR;
-        }
-    }
-
-    public static class NoteItemBgResources {
-        private final static int [] BG_FIRST_RESOURCES = new int [] {
-            R.drawable.list_yellow_up,
-            R.drawable.list_blue_up,
-            R.drawable.list_white_up,
-            R.drawable.list_green_up,
-            R.drawable.list_red_up
-        };
-
-        private final static int [] BG_NORMAL_RESOURCES = new int [] {
-            R.drawable.list_yellow_middle,
-            R.drawable.list_blue_middle,
-            R.drawable.list_white_middle,
-            R.drawable.list_green_middle,
-            R.drawable.list_red_middle
-        };
-
-        private final static int [] BG_LAST_RESOURCES = new int [] {
-            R.drawable.list_yellow_down,
-            R.drawable.list_blue_down,
-            R.drawable.list_white_down,
-            R.drawable.list_green_down,
-            R.drawable.list_red_down,
-        };
-
-        private final static int [] BG_SINGLE_RESOURCES = new int [] {
-            R.drawable.list_yellow_single,
-            R.drawable.list_blue_single,
-            R.drawable.list_white_single,
-            R.drawable.list_green_single,
-            R.drawable.list_red_single
-        };
-
-        public static int getNoteBgFirstRes(int id) {
-            return BG_FIRST_RESOURCES[id];
-        }
-
-        public static int getNoteBgLastRes(int id) {
-            return BG_LAST_RESOURCES[id];
-        }
-
-        public static int getNoteBgSingleRes(int id) {
-            return BG_SINGLE_RESOURCES[id];
-        }
-
-        public static int getNoteBgNormalRes(int id) {
-            return BG_NORMAL_RESOURCES[id];
-        }
-
-        public static int getFolderBgRes() {
-            return R.drawable.list_folder;
-        }
-    }
-
-    public static class WidgetBgResources {
-        private final static int [] BG_2X_RESOURCES = new int [] {
-            R.drawable.widget_2x_yellow,
-            R.drawable.widget_2x_blue,
-            R.drawable.widget_2x_white,
-            R.drawable.widget_2x_green,
-            R.drawable.widget_2x_red,
-        };
-
-        public static int getWidget2xBgResource(int id) {
-            return BG_2X_RESOURCES[id];
-        }
-
-        private final static int [] BG_4X_RESOURCES = new int [] {
-            R.drawable.widget_4x_yellow,
-            R.drawable.widget_4x_blue,
-            R.drawable.widget_4x_white,
-            R.drawable.widget_4x_green,
-            R.drawable.widget_4x_red
-        };
-
-        public static int getWidget4xBgResource(int id) {
-            return BG_4X_RESOURCES[id];
-        }
-    }
-
-    public static class TextAppearanceResources {
-        private final static int [] TEXTAPPEARANCE_RESOURCES = new int [] {
-            R.style.TextAppearanceNormal,
-            R.style.TextAppearanceMedium,
-            R.style.TextAppearanceLarge,
-            R.style.TextAppearanceSuper
-        };
-
-        public static int getTexAppearanceResource(int id) {
-            /**
-             * HACKME: Fix bug of store the resource id in shared preference.
-             * The id may larger than the length of resources, in this case,
-             * return the {@link ResourceParser#BG_DEFAULT_FONT_SIZE}
-             */
-            if (id >= TEXTAPPEARANCE_RESOURCES.length) {
-                return BG_DEFAULT_FONT_SIZE;
-            }
-            return TEXTAPPEARANCE_RESOURCES[id];
-        }
-
-        public static int getResourcesSize() {
-            return TEXTAPPEARANCE_RESOURCES.length;
-        }
-    }
-}
diff --git a/doc/CJR_codereading/widget/NoteWidgetProvider.java b/doc/CJR_codereading/widget/NoteWidgetProvider.java
deleted file mode 100644
index ec6f819..0000000
--- a/doc/CJR_codereading/widget/NoteWidgetProvider.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.widget;
-import android.app.PendingIntent;
-import android.appwidget.AppWidgetManager;
-import android.appwidget.AppWidgetProvider;
-import android.content.ContentValues;
-import android.content.Context;
-import android.content.Intent;
-import android.database.Cursor;
-import android.util.Log;
-import android.widget.RemoteViews;
-
-import net.micode.notes.R;
-import net.micode.notes.data.Notes;
-import net.micode.notes.data.Notes.NoteColumns;
-import net.micode.notes.tool.ResourceParser;
-import net.micode.notes.ui.NoteEditActivity;
-import net.micode.notes.ui.NotesListActivity;
-
-public abstract class NoteWidgetProvider extends AppWidgetProvider {
-    public static final String [] PROJECTION = new String [] {
-        NoteColumns.ID,
-        NoteColumns.BG_COLOR_ID,
-        NoteColumns.SNIPPET
-    };
-
-    public static final int COLUMN_ID           = 0;
-    public static final int COLUMN_BG_COLOR_ID  = 1;
-    public static final int COLUMN_SNIPPET      = 2;
-
-    private static final String TAG = "NoteWidgetProvider";
-
-    @Override
-    public void onDeleted(Context context, int[] appWidgetIds) {
-        ContentValues values = new ContentValues();
-        values.put(NoteColumns.WIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
-        for (int i = 0; i < appWidgetIds.length; i++) {
-            context.getContentResolver().update(Notes.CONTENT_NOTE_URI,
-                    values,
-                    NoteColumns.WIDGET_ID + "=?",
-                    new String[] { String.valueOf(appWidgetIds[i])});
-        }
-    }
-
-    private Cursor getNoteWidgetInfo(Context context, int widgetId) {
-        return context.getContentResolver().query(Notes.CONTENT_NOTE_URI,
-                PROJECTION,
-                NoteColumns.WIDGET_ID + "=? AND " + NoteColumns.PARENT_ID + "<>?",
-                new String[] { String.valueOf(widgetId), String.valueOf(Notes.ID_TRASH_FOLER) },
-                null);
-    }
-
-    protected void update(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
-        update(context, appWidgetManager, appWidgetIds, false);
-    }
-
-    private void update(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds,
-            boolean privacyMode) {
-        for (int i = 0; i < appWidgetIds.length; i++) {
-            if (appWidgetIds[i] != AppWidgetManager.INVALID_APPWIDGET_ID) {
-                int bgId = ResourceParser.getDefaultBgId(context);
-                String snippet = "";
-                Intent intent = new Intent(context, NoteEditActivity.class);
-                intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
-                intent.putExtra(Notes.INTENT_EXTRA_WIDGET_ID, appWidgetIds[i]);
-                intent.putExtra(Notes.INTENT_EXTRA_WIDGET_TYPE, getWidgetType());
-
-                Cursor c = getNoteWidgetInfo(context, appWidgetIds[i]);
-                if (c != null && c.moveToFirst()) {
-                    if (c.getCount() > 1) {
-                        Log.e(TAG, "Multiple message with same widget id:" + appWidgetIds[i]);
-                        c.close();
-                        return;
-                    }
-                    snippet = c.getString(COLUMN_SNIPPET);
-                    bgId = c.getInt(COLUMN_BG_COLOR_ID);
-                    intent.putExtra(Intent.EXTRA_UID, c.getLong(COLUMN_ID));
-                    intent.setAction(Intent.ACTION_VIEW);
-                } else {
-                    snippet = context.getResources().getString(R.string.widget_havenot_content);
-                    intent.setAction(Intent.ACTION_INSERT_OR_EDIT);
-                }
-
-                if (c != null) {
-                    c.close();
-                }
-
-                RemoteViews rv = new RemoteViews(context.getPackageName(), getLayoutId());
-                rv.setImageViewResource(R.id.widget_bg_image, getBgResourceId(bgId));
-                intent.putExtra(Notes.INTENT_EXTRA_BACKGROUND_ID, bgId);
-                /**
-                 * Generate the pending intent to start host for the widget
-                 */
-                PendingIntent pendingIntent = null;
-                if (privacyMode) {
-                    rv.setTextViewText(R.id.widget_text,
-                            context.getString(R.string.widget_under_visit_mode));
-                    pendingIntent = PendingIntent.getActivity(context, appWidgetIds[i], new Intent(
-                            context, NotesListActivity.class), PendingIntent.FLAG_UPDATE_CURRENT);
-                } else {
-                    rv.setTextViewText(R.id.widget_text, snippet);
-                    pendingIntent = PendingIntent.getActivity(context, appWidgetIds[i], intent,
-                            PendingIntent.FLAG_UPDATE_CURRENT);
-                }
-
-                rv.setOnClickPendingIntent(R.id.widget_text, pendingIntent);
-                appWidgetManager.updateAppWidget(appWidgetIds[i], rv);
-            }
-        }
-    }
-
-    protected abstract int getBgResourceId(int bgId);
-
-    protected abstract int getLayoutId();
-
-    protected abstract int getWidgetType();
-}
diff --git a/doc/CJR_codereading/widget/NoteWidgetProvider_2x.java b/doc/CJR_codereading/widget/NoteWidgetProvider_2x.java
deleted file mode 100644
index adcb2f7..0000000
--- a/doc/CJR_codereading/widget/NoteWidgetProvider_2x.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.widget;
-
-import android.appwidget.AppWidgetManager;
-import android.content.Context;
-
-import net.micode.notes.R;
-import net.micode.notes.data.Notes;
-import net.micode.notes.tool.ResourceParser;
-
-
-public class NoteWidgetProvider_2x extends NoteWidgetProvider {
-    @Override
-    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
-        super.update(context, appWidgetManager, appWidgetIds);
-    }
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.widget_2x;
-    }
-
-    @Override
-    protected int getBgResourceId(int bgId) {
-        return ResourceParser.WidgetBgResources.getWidget2xBgResource(bgId);
-    }
-
-    @Override
-    protected int getWidgetType() {
-        return Notes.TYPE_WIDGET_2X;
-    }
-}
diff --git a/doc/CJR_codereading/widget/NoteWidgetProvider_4x.java b/doc/CJR_codereading/widget/NoteWidgetProvider_4x.java
deleted file mode 100644
index c12a02e..0000000
--- a/doc/CJR_codereading/widget/NoteWidgetProvider_4x.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.widget;
-
-import android.appwidget.AppWidgetManager;
-import android.content.Context;
-
-import net.micode.notes.R;
-import net.micode.notes.data.Notes;
-import net.micode.notes.tool.ResourceParser;
-
-
-public class NoteWidgetProvider_4x extends NoteWidgetProvider {
-    @Override
-    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
-        super.update(context, appWidgetManager, appWidgetIds);
-    }
-
-    protected int getLayoutId() {
-        return R.layout.widget_4x;
-    }
-
-    @Override
-    protected int getBgResourceId(int bgId) {
-        return ResourceParser.WidgetBgResources.getWidget4xBgResource(bgId);
-    }
-
-    @Override
-    protected int getWidgetType() {
-        return Notes.TYPE_WIDGET_4X;
-    }
-}
diff --git a/doc/cyw.readcode.ui/ui/AlarmAlertActivity.java b/doc/cyw.readcode.ui/ui/AlarmAlertActivity.java
deleted file mode 100644
index e9fdb28..0000000
--- a/doc/cyw.readcode.ui/ui/AlarmAlertActivity.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.micode.notes.ui;
-
-import android.app.Activity;
-import android.app.AlertDialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnClickListener;
-import android.content.DialogInterface.OnDismissListener;
-import android.content.Intent;
-import android.media.AudioManager;
-import android.media.MediaPlayer;
-import android.media.RingtoneManager;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.PowerManager;
-import android.provider.Settings;
-import android.view.Window;
-import android.view.WindowManager;
-
-import net.micode.notes.R;
-import net.micode.notes.data.Notes;
-import net.micode.notes.tool.DataUtils;
-
-import java.io.IOException;
-
-public class AlarmAlertActivity extends Activity implements OnClickListener, OnDismissListener {
-    private long mNoteId;      //文本在数据库存储中的ID号
-    private String mSnippet;   //闹钟提示时出现的文本片段
-    private static final int SNIPPET_PREW_MAX_LEN = 60;
-    MediaPlayer mPlayer;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        //Bundle类型的数据与Map类型的数据相似，都是以key-value的形式存储数据的
-        //onsaveInstanceState方法是用来保存Activity的状态的
-        //能从onCreate的参数savedInsanceState中获得状态数据
-        requestWindowFeature(Window.FEATURE_NO_TITLE);
-        //界面显示——无标题
-
-        final Window win = getWindow();
-        win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
-
-        if (!isScreenOn()) {
-            win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
-                    //保持窗体点亮
-                    | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
-                    //将窗体点亮
-                    | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON
-                    //允许窗体点亮时锁屏
-                    | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR);
-        }//在手机锁屏后如果到了闹钟提示时间，点亮屏幕
-
-        Intent intent = getIntent();
-
-        try {
-            mNoteId = Long.valueOf(intent.getData().getPathSegments().get(1));
-            mSnippet = DataUtils.getSnippetById(this.getContentResolver(), mNoteId);
-            //根据ID从数据库中获取标签的内容；
-            //getContentResolver（）是实现数据共享，实例存储。
-            mSnippet = mSnippet.length() > SNIPPET_PREW_MAX_LEN ? mSnippet.substring(0,
-                    SNIPPET_PREW_MAX_LEN) + getResources().getString(R.string.notelist_string_info)
-                    : mSnippet;
-            //判断标签片段是否达到符合长度
-        } catch (IllegalArgumentException e) {
-            e.printStackTrace();
-            return;
-        }
-        /*
-        try
-        {
-        	// 代码区
-        }
-        catch(Exception e)
-        {
-        	// 异常处理
-        }
-                     代码区如果有错误，就会返回所写异常的处理。*/
-        mPlayer = new MediaPlayer();
-        if (DataUtils.visibleInNoteDatabase(getContentResolver(), mNoteId, Notes.TYPE_NOTE)) {
-            showActionDialog();
-            //弹出对话框
-            playAlarmSound();
-            //闹钟提示音激发
-        } else {
-            finish();
-            //完成闹钟动作
-        }
-    }
-
-    private boolean isScreenOn() {
-        //判断屏幕是否锁屏，调用系统函数判断，最后返回值是布尔类型
-        PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
-        return pm.isScreenOn();
-    }
-
-    private void playAlarmSound() {
-        //闹钟提示音激发
-        Uri url = RingtoneManager.getActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM);
-        //调用系统的铃声管理URI，得到闹钟提示音
-        int silentModeStreams = Settings.System.getInt(getContentResolver(),
-                Settings.System.MODE_RINGER_STREAMS_AFFECTED, 0);
-
-        if ((silentModeStreams & (1 << AudioManager.STREAM_ALARM)) != 0) {
-            mPlayer.setAudioStreamType(silentModeStreams);
-        } else {
-            mPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);
-        }
-        try {
-            mPlayer.setDataSource(this, url);
-            //方法：setDataSource(Context context, Uri uri)
-            //解释：无返回值，设置多媒体数据来源【根据 Uri】
-            mPlayer.prepare();
-            //准备同步
-            mPlayer.setLooping(true);
-            //设置是否循环播放
-            mPlayer.start();
-            //开始播放
-        } catch (IllegalArgumentException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-            //e.printStackTrace()函数功能是抛出异常， 还将显示出更深的调用信息
-            //System.out.println(e)，这个方法打印出异常，并且输出在哪里出现的异常
-        } catch (SecurityException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        } catch (IllegalStateException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        } catch (IOException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-    }
-
-    private void showActionDialog() {
-        AlertDialog.Builder dialog = new AlertDialog.Builder(this);
-        //AlertDialog的构造方法全部是Protected的
-        //所以不能直接通过new一个AlertDialog来创建出一个AlertDialog。
-        //要创建一个AlertDialog，就要用到AlertDialog.Builder中的create()方法
-        //如这里的dialog就是新建了一个AlertDialog
-        dialog.setTitle(R.string.app_name);
-        //为对话框设置标题
-        dialog.setMessage(mSnippet);
-        //为对话框设置内容
-        dialog.setPositiveButton(R.string.notealert_ok, this);
-        //给对话框添加"Yes"按钮
-        if (isScreenOn()) {
-            dialog.setNegativeButton(R.string.notealert_enter, this);
-        }//对话框添加"No"按钮
-        dialog.show().setOnDismissListener(this);
-    }
-
-    public void onClick(DialogInterface dialog, int which) {
-        switch (which) {
-            //用which来选择click后下一步的操作
-            case DialogInterface.BUTTON_NEGATIVE:
-                //这是取消操作
-                Intent intent = new Intent(this, NoteEditActivity.class);
-                //实现两个类间的数据传输
-                intent.setAction(Intent.ACTION_VIEW);
-                //设置动作属性
-                intent.putExtra(Intent.EXTRA_UID, mNoteId);
-                //实现key-value对
-                //EXTRA_UID为key；mNoteId为键
-                startActivity(intent);
-                //开始动作
-                break;
-            default:
-                //这是确定操作
-                break;
-        }
-    }
-
-    public void onDismiss(DialogInterface dialog) {
-        //忽略
-        stopAlarmSound();
-        //停止闹钟声音
-        finish();
-        //完成该动作
-    }
-
-    private void stopAlarmSound() {
-        if (mPlayer != null) {
-            mPlayer.stop();
-            //停止播放
-            mPlayer.release();
-            //释放MediaPlayer对象
-            mPlayer = null;
-        }
-    }
-}
diff --git a/doc/cyw.readcode.ui/ui/AlarmInitReceiver.java b/doc/cyw.readcode.ui/ui/AlarmInitReceiver.java
deleted file mode 100644
index 7f03f69..0000000
--- a/doc/cyw.readcode.ui/ui/AlarmInitReceiver.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.ui;
-
-import android.app.AlarmManager;
-import android.app.PendingIntent;
-import android.content.BroadcastReceiver;
-import android.content.ContentUris;
-import android.content.Context;
-import android.content.Intent;
-import android.database.Cursor;
-
-import net.micode.notes.data.Notes;
-import net.micode.notes.data.Notes.NoteColumns;
-
-
-public class AlarmInitReceiver extends BroadcastReceiver {
-
-    private static final String [] PROJECTION = new String [] {
-        NoteColumns.ID,
-        NoteColumns.ALERTED_DATE
-    };
-    //对数据库的操作，调用标签ID和闹钟时间
-    private static final int COLUMN_ID                = 0;
-    private static final int COLUMN_ALERTED_DATE      = 1;
-
-    @Override
-    public void onReceive(Context context, Intent intent) {
-        long currentDate = System.currentTimeMillis();
-        //System.currentTimeMillis()产生一个当前的毫秒
-        //这个毫秒其实就是自1970年1月1日0时起的毫秒数
-        Cursor c = context.getContentResolver().query(Notes.CONTENT_NOTE_URI,
-                PROJECTION,
-                NoteColumns.ALERTED_DATE + ">? AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE,
-                new String[] { String.valueOf(currentDate) },
-                //将long变量currentDate转化为字符串
-                null);
-
-        if (c != null) {
-            if (c.moveToFirst()) {
-                do {
-                    long alertDate = c.getLong(COLUMN_ALERTED_DATE);
-                    Intent sender = new Intent(context, AlarmReceiver.class);
-                    sender.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, c.getLong(COLUMN_ID)));
-                    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, sender, 0);
-                    AlarmManager alermManager = (AlarmManager) context
-                            .getSystemService(Context.ALARM_SERVICE);
-                    alermManager.set(AlarmManager.RTC_WAKEUP, alertDate, pendingIntent);
-                } while (c.moveToNext());
-            }
-            c.close();
-        }
-        //然而通过网上查找资料发现，对于闹钟机制的启动，通常需要上面的几个步骤
-        //如新建Intent、PendingIntent以及AlarmManager等
-        //这里就是根据数据库里的闹钟时间创建一个闹钟机制
-    }
-}
diff --git a/doc/cyw.readcode.ui/ui/AlarmReceiver.java b/doc/cyw.readcode.ui/ui/AlarmReceiver.java
deleted file mode 100644
index 8d7492d..0000000
--- a/doc/cyw.readcode.ui/ui/AlarmReceiver.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.ui;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-
-public class AlarmReceiver extends BroadcastReceiver {//类：闹钟消息接收器，从BroadcastReceiver类继承而来
-    @Override
-    public void onReceive(Context context, Intent intent) {
-        intent.setClass(context, AlarmAlertActivity.class);
-        //启动AlarmAlertActivity
-        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        //activity要存在于activity的栈中，而非activity的途径启动activity时必然不存在一个activity的栈
-        //所以要新起一个栈装入启动的activity
-        context.startActivity(intent);
-    }
-}
-//这是实现alarm这个功能最接近用户层的包，基于上面的两个包，
\ No newline at end of file
diff --git a/doc/cyw.readcode.ui/ui/DateTimePicker.java b/doc/cyw.readcode.ui/ui/DateTimePicker.java
deleted file mode 100644
index 11a8469..0000000
--- a/doc/cyw.readcode.ui/ui/DateTimePicker.java
+++ /dev/null
@@ -1,504 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.ui;
-
-import java.text.DateFormatSymbols;
-import java.util.Calendar;
-
-import net.micode.notes.R;
-
-
-import android.content.Context;
-import android.text.format.DateFormat;
-import android.view.View;
-import android.widget.FrameLayout;
-import android.widget.NumberPicker;
-
-public class DateTimePicker extends FrameLayout {//FrameLayout是布局模板之一
-    //所有的子元素全部在屏幕的右上方
-
-    private static final boolean DEFAULT_ENABLE_STATE = true;
-
-    private static final int HOURS_IN_HALF_DAY = 12;
-    private static final int HOURS_IN_ALL_DAY = 24;
-    private static final int DAYS_IN_ALL_WEEK = 7;
-    private static final int DATE_SPINNER_MIN_VAL = 0;
-    private static final int DATE_SPINNER_MAX_VAL = DAYS_IN_ALL_WEEK - 1;
-    private static final int HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW = 0;
-    private static final int HOUR_SPINNER_MAX_VAL_24_HOUR_VIEW = 23;
-    private static final int HOUR_SPINNER_MIN_VAL_12_HOUR_VIEW = 1;
-    private static final int HOUR_SPINNER_MAX_VAL_12_HOUR_VIEW = 12;
-    private static final int MINUT_SPINNER_MIN_VAL = 0;
-    private static final int MINUT_SPINNER_MAX_VAL = 59;
-    private static final int AMPM_SPINNER_MIN_VAL = 0;
-    private static final int AMPM_SPINNER_MAX_VAL = 1;
-    //初始化控件
-    private final NumberPicker mDateSpinner;
-    private final NumberPicker mHourSpinner;
-    private final NumberPicker mMinuteSpinner;
-    private final NumberPicker mAmPmSpinner;
-    //NumberPicker是数字选择器
-    //这里定义的四个变量全部是在设置闹钟时需要选择的变量（如日期、时、分、上午或者下午）
-
-    private Calendar mDate;
-    //定义了Calendar类型的变量mDate，用于操作时间
-    private String[] mDateDisplayValues = new String[DAYS_IN_ALL_WEEK];
-
-    private boolean mIsAm;
-
-    private boolean mIs24HourView;
-
-    private boolean mIsEnabled = DEFAULT_ENABLE_STATE;
-
-    private boolean mInitialising;
-
-    private OnDateTimeChangedListener mOnDateTimeChangedListener;
-
-    private NumberPicker.OnValueChangeListener mOnDateChangedListener = new NumberPicker.OnValueChangeListener() {
-        @Override
-        public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
-            mDate.add(Calendar.DAY_OF_YEAR, newVal - oldVal);
-            updateDateControl();
-            onDateTimeChanged();
-        }
-    };//OnValueChangeListener，这是时间改变监听器，这里主要是对日期的监听
-    //将现在日期的值传递给mDate；updateDateControl是同步操作
-
-    private NumberPicker.OnValueChangeListener mOnHourChangedListener = new NumberPicker.OnValueChangeListener() {
-        //这里是对 小时（Hour） 的监听
-        @Override
-        public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
-            boolean isDateChanged = false;
-            Calendar cal = Calendar.getInstance();
-            //声明一个Calendar的变量cal，便于后续的操作
-            if (!mIs24HourView) {
-                if (!mIsAm && oldVal == HOURS_IN_HALF_DAY - 1 && newVal == HOURS_IN_HALF_DAY) {
-                    cal.setTimeInMillis(mDate.getTimeInMillis());
-                    cal.add(Calendar.DAY_OF_YEAR, 1);
-                    isDateChanged = true;
-                    //这里是对于12小时制时，晚上11点和12点交替时对日期的更改
-                } else if (mIsAm && oldVal == HOURS_IN_HALF_DAY && newVal == HOURS_IN_HALF_DAY - 1) {
-                    cal.setTimeInMillis(mDate.getTimeInMillis());
-                    cal.add(Calendar.DAY_OF_YEAR, -1);
-                    isDateChanged = true;
-                }//这里是对于12小时制时，凌晨11点和12点交替时对日期的更改
-                if (oldVal == HOURS_IN_HALF_DAY - 1 && newVal == HOURS_IN_HALF_DAY ||
-                        oldVal == HOURS_IN_HALF_DAY && newVal == HOURS_IN_HALF_DAY - 1) {
-                    mIsAm = !mIsAm;
-                    updateAmPmControl();
-                }//这里是对于12小时制时，中午11点和12点交替时对AM和PM的更改
-            } else {
-                if (oldVal == HOURS_IN_ALL_DAY - 1 && newVal == 0) {
-                    cal.setTimeInMillis(mDate.getTimeInMillis());
-                    cal.add(Calendar.DAY_OF_YEAR, 1);
-                    isDateChanged = true;
-                    //这里是对于24小时制时，晚上11点和12点交替时对日期的更改
-                } else if (oldVal == 0 && newVal == HOURS_IN_ALL_DAY - 1) {
-                    cal.setTimeInMillis(mDate.getTimeInMillis());
-                    cal.add(Calendar.DAY_OF_YEAR, -1);
-                    isDateChanged = true;
-                }
-            }//这里是对于12小时制时，凌晨11点和12点交替时对日期的更改
-            int newHour = mHourSpinner.getValue() % HOURS_IN_HALF_DAY + (mIsAm ? 0 : HOURS_IN_HALF_DAY);
-            //通过数字选择器对newHour的赋值
-            mDate.set(Calendar.HOUR_OF_DAY, newHour);
-            //通过set函数将新的Hour值传给mDate
-            onDateTimeChanged();
-            if (isDateChanged) {
-                setCurrentYear(cal.get(Calendar.YEAR));
-                setCurrentMonth(cal.get(Calendar.MONTH));
-                setCurrentDay(cal.get(Calendar.DAY_OF_MONTH));
-            }
-        }
-    };
-
-    private NumberPicker.OnValueChangeListener mOnMinuteChangedListener = new NumberPicker.OnValueChangeListener() {
-        @Override
-        //这里是对 分钟（Minute）改变的监听
-        public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
-            int minValue = mMinuteSpinner.getMinValue();
-            int maxValue = mMinuteSpinner.getMaxValue();
-            int offset = 0;
-            //设置offset，作为小时改变的一个记录数据
-            if (oldVal == maxValue && newVal == minValue) {
-                offset += 1;
-            } else if (oldVal == minValue && newVal == maxValue) {
-                offset -= 1;
-            }//如果原值为59，新值为0，则offset加1
-            //如果原值为0，新值为59，则offset减1
-            if (offset != 0) {
-                mDate.add(Calendar.HOUR_OF_DAY, offset);
-                mHourSpinner.setValue(getCurrentHour());
-                updateDateControl();
-                int newHour = getCurrentHourOfDay();
-                if (newHour >= HOURS_IN_HALF_DAY) {
-                    mIsAm = false;
-                    updateAmPmControl();
-                } else {
-                    mIsAm = true;
-                    updateAmPmControl();
-                }
-            }
-            mDate.set(Calendar.MINUTE, newVal);
-            onDateTimeChanged();
-        }
-    };
-
-    private NumberPicker.OnValueChangeListener mOnAmPmChangedListener = new NumberPicker.OnValueChangeListener() {
-        //对AM和PM的监听
-        @Override
-        public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
-            mIsAm = !mIsAm;
-            if (mIsAm) {
-                mDate.add(Calendar.HOUR_OF_DAY, -HOURS_IN_HALF_DAY);
-            } else {
-                mDate.add(Calendar.HOUR_OF_DAY, HOURS_IN_HALF_DAY);
-            }
-            updateAmPmControl();
-            onDateTimeChanged();
-        }
-    };
-
-    public interface OnDateTimeChangedListener {
-        void onDateTimeChanged(DateTimePicker view, int year, int month,
-                int dayOfMonth, int hourOfDay, int minute);
-    }//接口：日期变化监听器
-
-    public DateTimePicker(Context context) {
-        this(context, System.currentTimeMillis());
-    }
-//方法：实例化时间日期选择器
-    public DateTimePicker(Context context, long date) {
-        this(context, date, DateFormat.is24HourFormat(context));
-    }//通过对数据库的访问，获取当前的系统时间
-
-    public DateTimePicker(Context context, long date, boolean is24HourView) {
-        super(context);//获取系统时间
-        mDate = Calendar.getInstance();
-        mInitialising = true;
-        mIsAm = getCurrentHourOfDay() >= HOURS_IN_HALF_DAY;
-        inflate(context, R.layout.datetime_picker, this);
-        //如果当前Activity里用到别的layout，比如对话框layout
-        //还要设置这个layout上的其他组件的内容，就必须用inflate()方法先将对话框的layout找出来
-        //然后再用findViewById()找到它上面的其它组件
-        mDateSpinner = (NumberPicker) findViewById(R.id.date);
-        mDateSpinner.setMinValue(DATE_SPINNER_MIN_VAL);
-        mDateSpinner.setMaxValue(DATE_SPINNER_MAX_VAL);
-        mDateSpinner.setOnValueChangedListener(mOnDateChangedListener);
-
-        mHourSpinner = (NumberPicker) findViewById(R.id.hour);
-        mHourSpinner.setOnValueChangedListener(mOnHourChangedListener);
-        mMinuteSpinner =  (NumberPicker) findViewById(R.id.minute);
-        mMinuteSpinner.setMinValue(MINUT_SPINNER_MIN_VAL);
-        mMinuteSpinner.setMaxValue(MINUT_SPINNER_MAX_VAL);
-        mMinuteSpinner.setOnLongPressUpdateInterval(100);
-        mMinuteSpinner.setOnValueChangedListener(mOnMinuteChangedListener);
-
-        String[] stringsForAmPm = new DateFormatSymbols().getAmPmStrings();
-        mAmPmSpinner = (NumberPicker) findViewById(R.id.amPm);
-        mAmPmSpinner.setMinValue(AMPM_SPINNER_MIN_VAL);
-        mAmPmSpinner.setMaxValue(AMPM_SPINNER_MAX_VAL);
-        mAmPmSpinner.setDisplayedValues(stringsForAmPm);
-        mAmPmSpinner.setOnValueChangedListener(mOnAmPmChangedListener);
-
-        // update controls to initial state
-        updateDateControl();
-        updateHourControl();
-        updateAmPmControl();
-
-        set24HourView(is24HourView);
-
-        // set to current time
-        setCurrentDate(date);
-
-        setEnabled(isEnabled());
-
-        // set the content descriptions
-        mInitialising = false;
-    }
-
-    @Override
-    public void setEnabled(boolean enabled) {//方法：将转轮设置为使能状态
-        if (mIsEnabled == enabled) {
-            return;
-        }
-        super.setEnabled(enabled);
-        mDateSpinner.setEnabled(enabled);//语句：分别对四个分部件设置使能
-        mMinuteSpinner.setEnabled(enabled);
-        mHourSpinner.setEnabled(enabled);
-        mAmPmSpinner.setEnabled(enabled);
-        mIsEnabled = enabled;//修改标志变量
-    }
-
-    @Override
-    public boolean isEnabled() {
-        return mIsEnabled;
-    }//函数：判断当前的时间日期选择器是否处于启用的的状态
-
-    /**
-     * Get the current date in millis
-     *
-     * @return the current date in millis
-     */
-    public long getCurrentDateInTimeMillis() {
-        return mDate.getTimeInMillis();
-    }
-//实现函数——得到当前的秒数
-    /**
-     * Set the current date
-     *
-     * @param date The current date in millis
-     */
-    public void setCurrentDate(long date) {
-        Calendar cal = Calendar.getInstance();
-        cal.setTimeInMillis(date);
-        setCurrentDate(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH),
-                cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE));
-    }//实现函数功能——设置当前的时间，参数是date
-
-    /**
-     * Set the current date
-     *
-     * @param year The current year
-     * @param month The current month
-     * @param dayOfMonth The current dayOfMonth
-     * @param hourOfDay The current hourOfDay
-     * @param minute The current minute
-     */
-    public void setCurrentDate(int year, int month,
-            int dayOfMonth, int hourOfDay, int minute) {
-        setCurrentYear(year);
-        setCurrentMonth(month);
-        setCurrentDay(dayOfMonth);
-        setCurrentHour(hourOfDay);
-        setCurrentMinute(minute);
-    }//实现函数功能——设置当前的时间，参数是各详细的变量
-
-    /**
-     * Get current year
-     *
-     * @return The current year
-     */
-    //下面是得到year、month、day等值
-    public int getCurrentYear() {
-        return mDate.get(Calendar.YEAR);
-    }
-
-    /**
-     * Set current year
-     *
-     * @param year The current year
-     */
-    public void setCurrentYear(int year) {
-        if (!mInitialising && year == getCurrentYear()) {
-            return;
-        }
-        mDate.set(Calendar.YEAR, year);
-        updateDateControl();
-        onDateTimeChanged();
-    }
-
-    /**
-     * Get current month in the year
-     *
-     * @return The current month in the year
-     */
-    public int getCurrentMonth() {
-        return mDate.get(Calendar.MONTH);
-    }
-
-    /**
-     * Set current month in the year
-     *
-     * @param month The month in the year
-     */
-    public void setCurrentMonth(int month) {
-        if (!mInitialising && month == getCurrentMonth()) {
-            return;
-        }
-        mDate.set(Calendar.MONTH, month);
-        updateDateControl();
-        onDateTimeChanged();
-    }
-
-    /**
-     * Get current day of the month
-     *
-     * @return The day of the month
-     */
-    public int getCurrentDay() {
-        return mDate.get(Calendar.DAY_OF_MONTH);
-    }
-
-    /**
-     * Set current day of the month
-     *
-     * @param dayOfMonth The day of the month
-     */
-    public void setCurrentDay(int dayOfMonth) {
-        if (!mInitialising && dayOfMonth == getCurrentDay()) {
-            return;
-        }
-        mDate.set(Calendar.DAY_OF_MONTH, dayOfMonth);
-        updateDateControl();
-        onDateTimeChanged();
-    }
-
-    /**
-     * Get current hour in 24 hour mode, in the range (0~23)
-     * @return The current hour in 24 hour mode
-     */
-    public int getCurrentHourOfDay() {
-        return mDate.get(Calendar.HOUR_OF_DAY);
-    }
-
-    private int getCurrentHour() {
-        if (mIs24HourView){
-            return getCurrentHourOfDay();
-        } else {
-            int hour = getCurrentHourOfDay();
-            if (hour > HOURS_IN_HALF_DAY) {
-                return hour - HOURS_IN_HALF_DAY;
-            } else {
-                return hour == 0 ? HOURS_IN_HALF_DAY : hour;
-            }
-        }
-    }
-
-    /**
-     * Set current hour in 24 hour mode, in the range (0~23)
-     *
-     * @param hourOfDay
-     */
-    public void setCurrentHour(int hourOfDay) {
-        if (!mInitialising && hourOfDay == getCurrentHourOfDay()) {
-            return;
-        }
-        mDate.set(Calendar.HOUR_OF_DAY, hourOfDay);
-        if (!mIs24HourView) {
-            if (hourOfDay >= HOURS_IN_HALF_DAY) {
-                mIsAm = false;
-                if (hourOfDay > HOURS_IN_HALF_DAY) {
-                    hourOfDay -= HOURS_IN_HALF_DAY;
-                }
-            } else {
-                mIsAm = true;
-                if (hourOfDay == 0) {
-                    hourOfDay = HOURS_IN_HALF_DAY;
-                }
-            }
-            updateAmPmControl();
-        }
-        mHourSpinner.setValue(hourOfDay);
-        onDateTimeChanged();
-    }
-
-    /**
-     * Get currentMinute
-     *
-     * @return The Current Minute
-     */
-    public int getCurrentMinute() {
-        return mDate.get(Calendar.MINUTE);
-    }
-
-    /**
-     * Set current minute
-     */
-    public void setCurrentMinute(int minute) {
-        if (!mInitialising && minute == getCurrentMinute()) {
-            return;
-        }
-        mMinuteSpinner.setValue(minute);
-        mDate.set(Calendar.MINUTE, minute);
-        onDateTimeChanged();
-    }
-
-    /**
-     * @return true if this is in 24 hour view else false.
-     */
-    public boolean is24HourView () {
-        return mIs24HourView;
-    }
-
-    /**
-     * Set whether in 24 hour or AM/PM mode.
-     *
-     * @param is24HourView True for 24 hour mode. False for AM/PM mode.
-     */
-    public void set24HourView(boolean is24HourView) {//函数：设置24小时下的视图
-        if (mIs24HourView == is24HourView) {
-            return;
-        }
-        mIs24HourView = is24HourView;
-        mAmPmSpinner.setVisibility(is24HourView ? View.GONE : View.VISIBLE);// 语句：如果为12小时视图则显示上下午选择
-        int hour = getCurrentHourOfDay();
-        updateHourControl();
-        setCurrentHour(hour);
-        updateAmPmControl();
-    }
-
-    private void updateDateControl() {
-        Calendar cal = Calendar.getInstance();
-        cal.setTimeInMillis(mDate.getTimeInMillis());
-        cal.add(Calendar.DAY_OF_YEAR, -DAYS_IN_ALL_WEEK / 2 - 1);
-        mDateSpinner.setDisplayedValues(null);
-        for (int i = 0; i < DAYS_IN_ALL_WEEK; ++i) {
-            cal.add(Calendar.DAY_OF_YEAR, 1);
-            mDateDisplayValues[i] = (String) DateFormat.format("MM.dd EEEE", cal);
-        }
-        mDateSpinner.setDisplayedValues(mDateDisplayValues);
-        mDateSpinner.setValue(DAYS_IN_ALL_WEEK / 2);
-        mDateSpinner.invalidate();
-    }// 对于星期几的算法
-
-    private void updateAmPmControl() {
-        if (mIs24HourView) {
-            mAmPmSpinner.setVisibility(View.GONE);
-        } else {
-            int index = mIsAm ? Calendar.AM : Calendar.PM;
-            mAmPmSpinner.setValue(index);
-            mAmPmSpinner.setVisibility(View.VISIBLE);
-        }// 对于上下午操作的算法
-    }
-
-    private void updateHourControl() {
-        if (mIs24HourView) {
-            mHourSpinner.setMinValue(HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW);
-            mHourSpinner.setMaxValue(HOUR_SPINNER_MAX_VAL_24_HOUR_VIEW);
-        } else {
-            mHourSpinner.setMinValue(HOUR_SPINNER_MIN_VAL_12_HOUR_VIEW);
-            mHourSpinner.setMaxValue(HOUR_SPINNER_MAX_VAL_12_HOUR_VIEW);
-        }// 对与小时的算法
-    }
-
-    /**
-     * Set the callback that indicates the 'Set' button has been pressed.
-     * @param callback the callback, if null will do nothing
-     */
-    public void setOnDateTimeChangedListener(OnDateTimeChangedListener callback) {
-        //函数：根据参数设置时间日期监听器
-        mOnDateTimeChangedListener = callback;
-    }
-
-    private void onDateTimeChanged() {//函数：监听日期时间的变化
-        if (mOnDateTimeChangedListener != null) {
-            mOnDateTimeChangedListener.onDateTimeChanged(this, getCurrentYear(),
-                    getCurrentMonth(), getCurrentDay(), getCurrentHourOfDay(), getCurrentMinute());
-        }
-    }
-}
diff --git a/doc/cyw.readcode.ui/ui/DateTimePickerDialog.java b/doc/cyw.readcode.ui/ui/DateTimePickerDialog.java
deleted file mode 100644
index b35a4cf..0000000
--- a/doc/cyw.readcode.ui/ui/DateTimePickerDialog.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.ui;
-
-import java.util.Calendar;
-
-import net.micode.notes.R;
-import net.micode.notes.ui.DateTimePicker;
-import net.micode.notes.ui.DateTimePicker.OnDateTimeChangedListener;
-
-import android.app.AlertDialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnClickListener;
-import android.text.format.DateFormat;
-import android.text.format.DateUtils;
-
-public class DateTimePickerDialog extends AlertDialog implements OnClickListener {
-
-    private Calendar mDate = Calendar.getInstance();
-    //创建一个Calendar类型的变量 mDate，方便时间的操作
-    private boolean mIs24HourView;
-    private OnDateTimeSetListener mOnDateTimeSetListener;
-    //声明一个时间日期滚动选择控件 mOnDateTimeSetListener
-    private DateTimePicker mDateTimePicker;
-    //DateTimePicker控件，控件一般用于让用户可以从日期列表中选择单个值。
-    //运行时，单击控件边上的下拉箭头，会显示为两个部分：一个下拉列表，一个用于选择日期的
-    public interface OnDateTimeSetListener {
-        //设置一个接口当时期时间设置时进行的操作
-        void OnDateTimeSet(AlertDialog dialog, long date);
-    }
-
-    public DateTimePickerDialog(Context context, long date) {
-        //对该界面对话框的实例化
-        super(context);
-        //对数据库的操作
-        mDateTimePicker = new DateTimePicker(context);
-        setView(mDateTimePicker);//添加一个子视图
-        mDateTimePicker.setOnDateTimeChangedListener(new OnDateTimeChangedListener() {
-            public void onDateTimeChanged(DateTimePicker view, int year, int month,
-                    int dayOfMonth, int hourOfDay, int minute) {
-                mDate.set(Calendar.YEAR, year);
-                mDate.set(Calendar.MONTH, month);
-                mDate.set(Calendar.DAY_OF_MONTH, dayOfMonth);
-                mDate.set(Calendar.HOUR_OF_DAY, hourOfDay);
-                mDate.set(Calendar.MINUTE, minute);//将视图中的各选项设置为系统当前时间
-                updateTitle(mDate.getTimeInMillis());
-            }
-        });
-        mDate.setTimeInMillis(date);//得到系统时间
-        mDate.set(Calendar.SECOND, 0);//将秒数设置为0
-        mDateTimePicker.setCurrentDate(mDate.getTimeInMillis());
-        setButton(context.getString(R.string.datetime_dialog_ok), this);
-        setButton2(context.getString(R.string.datetime_dialog_cancel), (OnClickListener)null);//设置按钮
-        set24HourView(DateFormat.is24HourFormat(this.getContext()));//时间标准化打印
-        updateTitle(mDate.getTimeInMillis());
-    }//将时间日期滚动选择控件实例化
-
-    public void set24HourView(boolean is24HourView) {
-        mIs24HourView = is24HourView;
-    }
-
-    public void setOnDateTimeSetListener(OnDateTimeSetListener callBack) {
-        mOnDateTimeSetListener = callBack;
-    }//将时间日期滚动选择控件实例化
-
-    private void updateTitle(long date) {
-        int flag =
-            DateUtils.FORMAT_SHOW_YEAR |
-            DateUtils.FORMAT_SHOW_DATE |
-            DateUtils.FORMAT_SHOW_TIME;
-        flag |= mIs24HourView ? DateUtils.FORMAT_24HOUR : DateUtils.FORMAT_24HOUR;
-        setTitle(DateUtils.formatDateTime(this.getContext(), date, flag));
-    }//android开发中常见日期管理工具类（API）——DateUtils：按照上下午显示时间
-
-    public void onClick(DialogInterface arg0, int arg1) {
-        if (mOnDateTimeSetListener != null) {
-            mOnDateTimeSetListener.OnDateTimeSet(this, mDate.getTimeInMillis());
-        }
-    }//第一个参数arg0是接收到点击事件的对话框
-    //第二个参数arg1是该对话框上的按钮
-}
\ No newline at end of file
diff --git a/doc/cyw.readcode.ui/ui/DropdownMenu.java b/doc/cyw.readcode.ui/ui/DropdownMenu.java
deleted file mode 100644
index 0c4b307..0000000
--- a/doc/cyw.readcode.ui/ui/DropdownMenu.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.ui;
-
-import android.content.Context;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-import android.widget.PopupMenu;
-import android.widget.PopupMenu.OnMenuItemClickListener;
-
-import net.micode.notes.R;
-
-public class DropdownMenu {
-    private Button mButton;
-    private PopupMenu mPopupMenu;
-    //声明一个下拉菜单
-    private Menu mMenu;
-
-    public DropdownMenu(Context context, Button button, int menuId) {
-        mButton = button;
-        mButton.setBackgroundResource(R.drawable.dropdown_icon);
-        //设置这个view的背景
-        mPopupMenu = new PopupMenu(context, mButton);
-        mMenu = mPopupMenu.getMenu();
-        mPopupMenu.getMenuInflater().inflate(menuId, mMenu);
-        //MenuInflater是用来实例化Menu目录下的Menu布局文件
-        //根据ID来确认menu的内容选项
-        mButton.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                mPopupMenu.show();
-            }
-        });
-    }
-
-    public void setOnDropdownMenuItemClickListener(OnMenuItemClickListener listener) {
-        if (mPopupMenu != null) {
-            mPopupMenu.setOnMenuItemClickListener(listener);
-        }//设置菜单的监听
-    }
-
-    public MenuItem findItem(int id) {
-        return mMenu.findItem(id);
-    }//对于菜单选项的初始化，根据索引搜索菜单需要的选项
-
-    public void setTitle(CharSequence title) {
-        mButton.setText(title);
-    }//布局文件，设置标题
-}
\ No newline at end of file
diff --git a/doc/cyw.readcode.ui/ui/FoldersListAdapter.java b/doc/cyw.readcode.ui/ui/FoldersListAdapter.java
deleted file mode 100644
index 2c5853d..0000000
--- a/doc/cyw.readcode.ui/ui/FoldersListAdapter.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.ui;
-
-import android.content.Context;
-import android.database.Cursor;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.CursorAdapter;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import net.micode.notes.R;
-import net.micode.notes.data.Notes;
-import net.micode.notes.data.Notes.NoteColumns;
-
-
-public class FoldersListAdapter extends CursorAdapter {
-    //CursorAdapter是Cursor和ListView的接口
-    //FoldersListAdapter继承了CursorAdapter的类
-    //主要作用是便签数据库和用户的交互
-    //这里就是用folder（文件夹）的形式展现给用户
-    public static final String [] PROJECTION = {
-            NoteColumns.ID,
-            NoteColumns.SNIPPET
-    };//调用数据库中便签的ID和片段
-
-    public static final int ID_COLUMN   = 0;
-    public static final int NAME_COLUMN = 1;
-
-    public FoldersListAdapter(Context context, Cursor c) {
-        super(context, c);
-        // TODO Auto-generated constructor stub
-    }//数据库操作
-
-    @Override
-    public View newView(Context context, Cursor cursor, ViewGroup parent) {
-        //ViewGroup是容器
-        return new FolderListItem(context);
-    }//创建一个文件夹，对于各文件夹中子标签的初始化
-
-    @Override
-    public void bindView(View view, Context context, Cursor cursor) {
-        if (view instanceof FolderListItem) {
-            String folderName = (cursor.getLong(ID_COLUMN) == Notes.ID_ROOT_FOLDER) ? context
-                    .getString(R.string.menu_move_parent_folder) : cursor.getString(NAME_COLUMN);
-            ((FolderListItem) view).bind(folderName);
-        }
-    }//将各个布局文件绑定起来
-
-    public String getFolderName(Context context, int position) {
-        Cursor cursor = (Cursor) getItem(position);
-        return (cursor.getLong(ID_COLUMN) == Notes.ID_ROOT_FOLDER) ? context
-                .getString(R.string.menu_move_parent_folder) : cursor.getString(NAME_COLUMN);
-    }//根据数据库中标签的ID得到标签的各项内容
-
-    private class FolderListItem extends LinearLayout {
-        private TextView mName;
-
-        public FolderListItem(Context context) {
-            super(context);
-            //操作数据库
-            inflate(context, R.layout.folder_list_item, this);
-            //根据布局文件的名字等信息将其找出来
-            mName = (TextView) findViewById(R.id.tv_folder_name);
-        }
-
-        public void bind(String name) {
-            mName.setText(name);//设置名字
-        }
-    }
-
-}
\ No newline at end of file
diff --git a/doc/cyw.readcode.ui/ui/NoteEditActivity.java b/doc/cyw.readcode.ui/ui/NoteEditActivity.java
deleted file mode 100644
index 9bbbb97..0000000
--- a/doc/cyw.readcode.ui/ui/NoteEditActivity.java
+++ /dev/null
@@ -1,1083 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.ui;
-
-import android.app.Activity;
-import android.app.AlarmManager;
-import android.app.AlertDialog;
-import android.app.PendingIntent;
-import android.app.SearchManager;
-import android.appwidget.AppWidgetManager;
-import android.content.ContentUris;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.graphics.Paint;
-import android.os.Bundle;
-import android.preference.PreferenceManager;
-import android.text.Spannable;
-import android.text.SpannableString;
-import android.text.TextUtils;
-import android.text.format.DateUtils;
-import android.text.style.BackgroundColorSpan;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.WindowManager;
-import android.widget.CheckBox;
-import android.widget.CompoundButton;
-import android.widget.CompoundButton.OnCheckedChangeListener;
-import android.widget.EditText;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import net.micode.notes.R;
-import net.micode.notes.data.Notes;
-import net.micode.notes.data.Notes.TextNote;
-import net.micode.notes.model.WorkingNote;
-import net.micode.notes.model.WorkingNote.NoteSettingChangedListener;
-import net.micode.notes.tool.DataUtils;
-import net.micode.notes.tool.ResourceParser;
-import net.micode.notes.tool.ResourceParser.TextAppearanceResources;
-import net.micode.notes.ui.DateTimePickerDialog.OnDateTimeSetListener;
-import net.micode.notes.ui.NoteEditText.OnTextViewChangeListener;
-import net.micode.notes.widget.NoteWidgetProvider_2x;
-import net.micode.notes.widget.NoteWidgetProvider_4x;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-
-public class NoteEditActivity extends Activity implements OnClickListener,
-        NoteSettingChangedListener, OnTextViewChangeListener {
-    //该类主要是针对标签的编辑
-    //继承了系统内部许多和监听有关的类
-    private class HeadViewHolder {
-        public TextView tvModified;
-
-        public ImageView ivAlertIcon;
-
-        public TextView tvAlertDate;
-
-        public ImageView ibSetBgColor;
-    }
-    //使用Map实现数据存储
-    private static final Map<Integer, Integer> sBgSelectorBtnsMap = new HashMap<Integer, Integer>();
-    static {
-        sBgSelectorBtnsMap.put(R.id.iv_bg_yellow, ResourceParser.YELLOW);
-        sBgSelectorBtnsMap.put(R.id.iv_bg_red, ResourceParser.RED);
-        sBgSelectorBtnsMap.put(R.id.iv_bg_blue, ResourceParser.BLUE);
-        sBgSelectorBtnsMap.put(R.id.iv_bg_green, ResourceParser.GREEN);
-        sBgSelectorBtnsMap.put(R.id.iv_bg_white, ResourceParser.WHITE);
-        //put函数是将指定值和指定键相连
-    }
-
-    private static final Map<Integer, Integer> sBgSelectorSelectionMap = new HashMap<Integer, Integer>();
-    static {
-        sBgSelectorSelectionMap.put(ResourceParser.YELLOW, R.id.iv_bg_yellow_select);
-        sBgSelectorSelectionMap.put(ResourceParser.RED, R.id.iv_bg_red_select);
-        sBgSelectorSelectionMap.put(ResourceParser.BLUE, R.id.iv_bg_blue_select);
-        sBgSelectorSelectionMap.put(ResourceParser.GREEN, R.id.iv_bg_green_select);
-        sBgSelectorSelectionMap.put(ResourceParser.WHITE, R.id.iv_bg_white_select);
-        //put函数是将指定值和指定键相连
-    }
-
-    private static final Map<Integer, Integer> sFontSizeBtnsMap = new HashMap<Integer, Integer>();
-    static {
-        sFontSizeBtnsMap.put(R.id.ll_font_large, ResourceParser.TEXT_LARGE);
-        sFontSizeBtnsMap.put(R.id.ll_font_small, ResourceParser.TEXT_SMALL);
-        sFontSizeBtnsMap.put(R.id.ll_font_normal, ResourceParser.TEXT_MEDIUM);
-        sFontSizeBtnsMap.put(R.id.ll_font_super, ResourceParser.TEXT_SUPER);
-        //put函数是将指定值和指定键相连
-    }
-
-    private static final Map<Integer, Integer> sFontSelectorSelectionMap = new HashMap<Integer, Integer>();
-    static {
-        sFontSelectorSelectionMap.put(ResourceParser.TEXT_LARGE, R.id.iv_large_select);
-        sFontSelectorSelectionMap.put(ResourceParser.TEXT_SMALL, R.id.iv_small_select);
-        sFontSelectorSelectionMap.put(ResourceParser.TEXT_MEDIUM, R.id.iv_medium_select);
-        sFontSelectorSelectionMap.put(ResourceParser.TEXT_SUPER, R.id.iv_super_select);
-        //put函数是将指定值和指定键相连
-    }
-
-    private static final String TAG = "NoteEditActivity";
-
-    private HeadViewHolder mNoteHeaderHolder;
-
-    private View mHeadViewPanel;
-    //私有化一个界面操作mHeadViewPanel，对表头的操作
-    private View mNoteBgColorSelector;
-    //私有化一个界面操作mNoteBgColorSelector，对背景颜色的操作
-    private View mFontSizeSelector;
-    //私有化一个界面操作mFontSizeSelector，对标签字体的操作
-    private EditText mNoteEditor;
-    //声明编辑控件，对文本操作
-    private View mNoteEditorPanel;
-    //私有化一个界面操作mNoteEditorPanel，文本编辑的控制板
-    //private WorkingNote mWorkingNote;
-    public WorkingNote mWorkingNote;
-    //对模板WorkingNote的初始化
-    private SharedPreferences mSharedPrefs;
-    //私有化SharedPreferences的数据存储方式
-    //它的本质是基于XML文件存储key-value键值对数据
-    private int mFontSizeId;
-    //用于操作字体的大小
-    private static final String PREFERENCE_FONT_SIZE = "pref_font_size";
-
-    private static final int SHORTCUT_ICON_TITLE_MAX_LEN = 10;
-
-    public static final String TAG_CHECKED = String.valueOf('\u221A');
-    public static final String TAG_UNCHECKED = String.valueOf('\u25A1');
-
-    private LinearLayout mEditTextList;
-    //线性布局
-    private String mUserQuery;
-    private Pattern mPattern;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        this.setContentView(R.layout.note_edit);
-        //对数据库的访问操作
-        if (savedInstanceState == null && !initActivityState(getIntent())) {
-            finish();
-            return;
-        }
-        initResources();
-    }
-
-    /**
-     * Current activity may be killed when the memory is low. Once it is killed, for another time
-     * user load this activity, we should restore the former state
-     */
-    @Override
-    protected void onRestoreInstanceState(Bundle savedInstanceState) {
-        super.onRestoreInstanceState(savedInstanceState);
-        if (savedInstanceState != null && savedInstanceState.containsKey(Intent.EXTRA_UID)) {
-            Intent intent = new Intent(Intent.ACTION_VIEW);
-            intent.putExtra(Intent.EXTRA_UID, savedInstanceState.getLong(Intent.EXTRA_UID));
-            if (!initActivityState(intent)) {
-                finish();
-                return;
-            }
-            Log.d(TAG, "Restoring from killed activity");
-        }//为防止内存不足时程序的终止，在这里有一个保存现场的函数
-    }
-
-    private boolean initActivityState(Intent intent) {
-        /**
-         * If the user specified the {@link Intent#ACTION_VIEW} but not provided with id,
-         * then jump to the NotesListActivity
-         */
-        mWorkingNote = null;
-        if (TextUtils.equals(Intent.ACTION_VIEW, intent.getAction())) {
-            long noteId = intent.getLongExtra(Intent.EXTRA_UID, 0);
-            mUserQuery = "";
-            //如果用户实例化标签时，系统并未给出标签ID
-            /**
-             * Starting from the searched result
-             */
-            //根据键值查找ID
-            if (intent.hasExtra(SearchManager.EXTRA_DATA_KEY)) {
-                noteId = Long.parseLong(intent.getStringExtra(SearchManager.EXTRA_DATA_KEY));
-                mUserQuery = intent.getStringExtra(SearchManager.USER_QUERY);
-            }
-            //如果ID在数据库中未找到
-            if (!DataUtils.visibleInNoteDatabase(getContentResolver(), noteId, Notes.TYPE_NOTE)) {
-                Intent jump = new Intent(this, NotesListActivity.class);
-                startActivity(jump);
-                //程序将跳转到上面声明的intent——jump
-                showToast(R.string.error_note_not_exist);
-                finish();
-                return false;
-            }
-            //ID在数据库中找到
-            else {
-                mWorkingNote = WorkingNote.load(this, noteId);
-                if (mWorkingNote == null) {
-                    Log.e(TAG, "load note failed with note id" + noteId);
-                    //打印出红色的错误信息
-                    finish();
-                    return false;
-                }
-            }
-            //setSoftInputMode——软键盘输入模式
-            getWindow().setSoftInputMode(
-                    WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN
-                            | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
-        } else if(TextUtils.equals(Intent.ACTION_INSERT_OR_EDIT, intent.getAction())) {
-            // intent.getAction()
-            // 大多用于broadcast发送广播时给机制（intent）设置一个action，就是一个字符串
-            // 用户可以通过receive（接受）intent，通过 getAction得到的字符串，来决定做什么
-            long folderId = intent.getLongExtra(Notes.INTENT_EXTRA_FOLDER_ID, 0);
-            int widgetId = intent.getIntExtra(Notes.INTENT_EXTRA_WIDGET_ID,
-                    AppWidgetManager.INVALID_APPWIDGET_ID);
-            int widgetType = intent.getIntExtra(Notes.INTENT_EXTRA_WIDGET_TYPE,
-                    Notes.TYPE_WIDGET_INVALIDE);
-            int bgResId = intent.getIntExtra(Notes.INTENT_EXTRA_BACKGROUND_ID,
-                    ResourceParser.getDefaultBgId(this));
-            // intent.getInt（Long、String）Extra是对各变量的语法分析
-            // Parse call-record note
-            String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
-            long callDate = intent.getLongExtra(Notes.INTENT_EXTRA_CALL_DATE, 0);
-            if (callDate != 0 && phoneNumber != null) {
-                if (TextUtils.isEmpty(phoneNumber)) {
-                    Log.w(TAG, "The call record number is null");
-                }
-                long noteId = 0;
-                if ((noteId = DataUtils.getNoteIdByPhoneNumberAndCallDate(getContentResolver(),
-                        phoneNumber, callDate)) > 0) {
-                    mWorkingNote = WorkingNote.load(this, noteId);
-                    if (mWorkingNote == null) {
-                        Log.e(TAG, "load call note failed with note id" + noteId);
-                        finish();
-                        return false;
-                    }
-                    //将电话号码与手机的号码簿相关
-                } else {
-                    mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId,
-                            widgetType, bgResId);
-                    mWorkingNote.convertToCallNote(phoneNumber, callDate);
-                    //
-                }
-            } else {
-                mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId, widgetType,
-                        bgResId);
-            }//创建一个新的WorkingNote
-
-            getWindow().setSoftInputMode(
-                    WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE
-                            | WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
-        } else {
-            Log.e(TAG, "Intent not specified action, should not support");
-            finish();
-            return false;
-        }
-        mWorkingNote.setOnSettingStatusChangedListener(this);
-        return true;
-    }
-
-    @Override
-    protected void onResume() {
-        super.onResume();
-        initNoteScreen();
-    }
-
-    private void initNoteScreen() {
-        //对界面的初始化操作
-        mNoteEditor.setTextAppearance(this, TextAppearanceResources
-                .getTexAppearanceResource(mFontSizeId));
-        //设置外观
-        if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) {
-            switchToListMode(mWorkingNote.getContent());
-        } else {
-            mNoteEditor.setText(getHighlightQueryResult(mWorkingNote.getContent(), mUserQuery));
-            mNoteEditor.setSelection(mNoteEditor.getText().length());
-        }
-        for (Integer id : sBgSelectorSelectionMap.keySet()) {
-            findViewById(sBgSelectorSelectionMap.get(id)).setVisibility(View.GONE);
-        }
-        mHeadViewPanel.setBackgroundResource(mWorkingNote.getTitleBgResId());
-        mNoteEditorPanel.setBackgroundResource(mWorkingNote.getBgColorResId());
-
-        mNoteHeaderHolder.tvModified.setText(DateUtils.formatDateTime(this,
-                mWorkingNote.getModifiedDate(), DateUtils.FORMAT_SHOW_DATE
-                        | DateUtils.FORMAT_NUMERIC_DATE | DateUtils.FORMAT_SHOW_TIME
-                        | DateUtils.FORMAT_SHOW_YEAR));
-
-        /**
-         * TODO: Add the menu for setting alert. Currently disable it because the DateTimePicker
-         * is not ready
-         */
-        showAlertHeader();
-    }
-    //设置闹钟的显示
-    private void showAlertHeader() {
-        if (mWorkingNote.hasClockAlert()) {
-            long time = System.currentTimeMillis();
-            if (time > mWorkingNote.getAlertDate()) {
-                mNoteHeaderHolder.tvAlertDate.setText(R.string.note_alert_expired);
-            }
-            //如果系统时间大于了闹钟设置的时间，那么闹钟失效
-            else {
-                mNoteHeaderHolder.tvAlertDate.setText(DateUtils.getRelativeTimeSpanString(
-                        mWorkingNote.getAlertDate(), time, DateUtils.MINUTE_IN_MILLIS));
-            }
-            mNoteHeaderHolder.tvAlertDate.setVisibility(View.VISIBLE);
-            mNoteHeaderHolder.ivAlertIcon.setVisibility(View.VISIBLE);
-            //显示闹钟开启的图标
-        } else {
-            mNoteHeaderHolder.tvAlertDate.setVisibility(View.GONE);
-            mNoteHeaderHolder.ivAlertIcon.setVisibility(View.GONE);
-        };
-    }
-
-    @Override
-    protected void onNewIntent(Intent intent) {
-        super.onNewIntent(intent);
-        initActivityState(intent);
-    }
-
-    @Override
-    protected void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        /**
-         * For new note without note id, we should firstly save it to
-         * generate a id. If the editing note is not worth saving, there
-         * is no id which is equivalent to create new note
-         */
-        if (!mWorkingNote.existInDatabase()) {
-            saveNote();
-        }
-        //在创建一个新的标签时，先在数据库中匹配
-        //如果不存在，那么先在数据库中存储
-        outState.putLong(Intent.EXTRA_UID, mWorkingNote.getNoteId());
-        Log.d(TAG, "Save working note id: " + mWorkingNote.getNoteId() + " onSaveInstanceState");
-    }
-
-    @Override
-    //MotionEvent是对屏幕触控的传递机制
-    public boolean dispatchTouchEvent(MotionEvent ev) {
-        if (mNoteBgColorSelector.getVisibility() == View.VISIBLE
-                && !inRangeOfView(mNoteBgColorSelector, ev)) {
-            mNoteBgColorSelector.setVisibility(View.GONE);
-            return true;
-        }//颜色选择器在屏幕上可见
-
-        if (mFontSizeSelector.getVisibility() == View.VISIBLE
-                && !inRangeOfView(mFontSizeSelector, ev)) {
-            mFontSizeSelector.setVisibility(View.GONE);
-            return true;
-        }//字体大小选择器在屏幕上可见
-        return super.dispatchTouchEvent(ev);
-    }
-    //对屏幕触控的坐标进行操作
-    private boolean inRangeOfView(View view, MotionEvent ev) {
-        int []location = new int[2];
-        view.getLocationOnScreen(location);
-        int x = location[0];
-        int y = location[1];
-        if (ev.getX() < x
-                || ev.getX() > (x + view.getWidth())
-                || ev.getY() < y
-                || ev.getY() > (y + view.getHeight()))
-        //如果触控的位置超出了给定的范围，返回false
-        {
-            return false;
-        }
-        return true;
-    }
-
-    private void initResources() {
-        mHeadViewPanel = findViewById(R.id.note_title);
-        mNoteHeaderHolder = new HeadViewHolder();
-        mNoteHeaderHolder.tvModified = (TextView) findViewById(R.id.tv_modified_date);
-        mNoteHeaderHolder.ivAlertIcon = (ImageView) findViewById(R.id.iv_alert_icon);
-        mNoteHeaderHolder.tvAlertDate = (TextView) findViewById(R.id.tv_alert_date);
-        mNoteHeaderHolder.ibSetBgColor = (ImageView) findViewById(R.id.btn_set_bg_color);
-        mNoteHeaderHolder.ibSetBgColor.setOnClickListener(this);
-        mNoteEditor = (EditText) findViewById(R.id.note_edit_view);
-        mNoteEditorPanel = findViewById(R.id.sv_note_edit);
-        mNoteBgColorSelector = findViewById(R.id.note_bg_color_selector);
-        for (int id : sBgSelectorBtnsMap.keySet()) {
-            ImageView iv = (ImageView) findViewById(id);
-            iv.setOnClickListener(this);
-        }//对标签各项属性内容的初始化
-
-        mFontSizeSelector = findViewById(R.id.font_size_selector);
-        for (int id : sFontSizeBtnsMap.keySet()) {
-            View view = findViewById(id);
-            view.setOnClickListener(this);
-        };//对字体大小的选择
-        mSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
-        mFontSizeId = mSharedPrefs.getInt(PREFERENCE_FONT_SIZE, ResourceParser.BG_DEFAULT_FONT_SIZE);
-        /**
-         * HACKME: Fix bug of store the resource id in shared preference.
-         * The id may larger than the length of resources, in this case,
-         * return the {@link ResourceParser#BG_DEFAULT_FONT_SIZE}
-         */
-        if(mFontSizeId >= TextAppearanceResources.getResourcesSize()) {
-            mFontSizeId = ResourceParser.BG_DEFAULT_FONT_SIZE;
-        }
-        mEditTextList = (LinearLayout) findViewById(R.id.note_edit_list);
-    }
-
-    @Override
-    protected void onPause() {
-        super.onPause();
-        if(saveNote()) {
-            Log.d(TAG, "Note data was saved with length:" + mWorkingNote.getContent().length());
-        }
-        clearSettingState();
-    }
-    //和桌面小工具的同步
-    private void updateWidget() {
-        Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
-        if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_2X) {
-            intent.setClass(this, NoteWidgetProvider_2x.class);
-        } else if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_4X) {
-            intent.setClass(this, NoteWidgetProvider_4x.class);
-        } else {
-            Log.e(TAG, "Unspported widget type");
-            return;
-        }
-
-        intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] {
-                mWorkingNote.getWidgetId()
-        });
-
-        sendBroadcast(intent);
-        setResult(RESULT_OK, intent);
-    }
-
-    public void onClick(View v) {
-        int id = v.getId();
-        if (id == R.id.btn_set_bg_color) {
-            mNoteBgColorSelector.setVisibility(View.VISIBLE);
-            findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility(
-                    -                    View.VISIBLE);
-        } else if (sBgSelectorBtnsMap.containsKey(id)) {
-            findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility(
-                    View.GONE);
-            mWorkingNote.setBgColorId(sBgSelectorBtnsMap.get(id));
-            mNoteBgColorSelector.setVisibility(View.GONE);
-        } else if (sFontSizeBtnsMap.containsKey(id)) {
-            findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.GONE);
-            mFontSizeId = sFontSizeBtnsMap.get(id);
-            mSharedPrefs.edit().putInt(PREFERENCE_FONT_SIZE, mFontSizeId).commit();
-            findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.VISIBLE);
-            if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) {
-                getWorkingText();
-                switchToListMode(mWorkingNote.getContent());
-            } else {
-                mNoteEditor.setTextAppearance(this,
-                        TextAppearanceResources.getTexAppearanceResource(mFontSizeId));
-            }
-            mFontSizeSelector.setVisibility(View.GONE);
-        }
-    }//************************存在问题
-
-    @Override
-    public void onBackPressed() {
-        if(clearSettingState()) {
-            return;
-        }
-
-        saveNote();
-        super.onBackPressed();
-    }
-
-    private boolean clearSettingState() {
-        if (mNoteBgColorSelector.getVisibility() == View.VISIBLE) {
-            mNoteBgColorSelector.setVisibility(View.GONE);
-            return true;
-        } else if (mFontSizeSelector.getVisibility() == View.VISIBLE) {
-            mFontSizeSelector.setVisibility(View.GONE);
-            return true;
-        }
-        return false;
-    }
-
-    public void onBackgroundColorChanged() {
-        findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility(
-                View.VISIBLE);
-        mNoteEditorPanel.setBackgroundResource(mWorkingNote.getBgColorResId());
-        mHeadViewPanel.setBackgroundResource(mWorkingNote.getTitleBgResId());
-    }
-
-    @Override
-    //对选择菜单的准备
-    public boolean onPrepareOptionsMenu(Menu menu) {
-        if (isFinishing()) {
-            return true;
-        }
-        clearSettingState();
-        menu.clear();
-        if (mWorkingNote.getFolderId() == Notes.ID_CALL_RECORD_FOLDER) {
-            getMenuInflater().inflate(R.menu.call_note_edit, menu);
-            // MenuInflater是用来实例化Menu目录下的Menu布局文件的
-        } else {
-            getMenuInflater().inflate(R.menu.note_edit, menu);
-        }
-        if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) {
-            menu.findItem(R.id.menu_list_mode).setTitle(R.string.menu_normal_mode);
-        } else {
-            menu.findItem(R.id.menu_list_mode).setTitle(R.string.menu_list_mode);
-        }
-        if (mWorkingNote.hasClockAlert()) {
-            menu.findItem(R.id.menu_alert).setVisible(false);
-        } else {
-            menu.findItem(R.id.menu_delete_remind).setVisible(false);
-        }
-        return true;
-    }
-
-    @Override
-    /*
-     * 函数功能：动态改变菜单选项内容
-     * 函数实现：如下注释
-     */
-    public boolean onOptionsItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            //根据菜单的id来编剧相关项目
-            case R.id.menu_new_note:
-                //创建一个新的便签
-                createNewNote();
-                break;
-            case R.id.menu_delete:
-                //删除便签
-                AlertDialog.Builder builder = new AlertDialog.Builder(this);
-                //创建关于删除操作的对话框
-                builder.setTitle(getString(R.string.alert_title_delete));
-                // 设置标签的标题为alert_title_delete
-                builder.setIcon(android.R.drawable.ic_dialog_alert);
-                //设置对话框图标
-                builder.setMessage(getString(R.string.alert_message_delete_note));
-                //设置对话框内容
-                builder.setPositiveButton(android.R.string.ok,
-                        new DialogInterface.OnClickListener() {
-                            //建立按键监听器
-                            public void onClick(DialogInterface dialog, int which) {
-                                //点击所触发事件
-                                deleteCurrentNote();
-                                //  删除单签便签
-                                finish();
-                            }
-                        });
-                //添加“YES”按钮
-                builder.setNegativeButton(android.R.string.cancel, null);
-                //添加“NO”的按钮
-                builder.show();
-                //显示对话框
-                break;
-            case R.id.menu_font_size:
-                //字体大小的编辑
-                mFontSizeSelector.setVisibility(View.VISIBLE);
-                // 将字体选择器置为可见
-                findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.VISIBLE);
-                // 通过id找到相应的大小
-                break;
-            case R.id.menu_list_mode:
-                //选择列表模式
-                mWorkingNote.setCheckListMode(mWorkingNote.getCheckListMode() == 0 ?
-                        TextNote.MODE_CHECK_LIST : 0);
-                break;
-            case R.id.menu_share:
-                //菜单共享
-                getWorkingText();
-                sendTo(this, mWorkingNote.getContent());
-                // 用sendto函数将运行文本发送到遍历的本文内
-                break;
-            case R.id.menu_send_to_desktop:
-                //发送到桌面
-                sendToDesktop();
-                break;
-            case R.id.menu_alert:
-                //创建提醒器
-                setReminder();
-                break;
-            case R.id.menu_delete_remind:
-                //删除日期提醒
-                mWorkingNote.setAlertDate(0, false);
-                break;
-            default:
-                break;
-        }
-        return true;
-    }
-
-    /*
-     * 函数功能：建立事件提醒器
-     * 函数实现：如下注释
-     */
-    private void setReminder() {
-        DateTimePickerDialog d = new DateTimePickerDialog(this, System.currentTimeMillis());
-        // 建立修改时间日期的对话框
-        d.setOnDateTimeSetListener(new OnDateTimeSetListener() {
-            public void OnDateTimeSet(AlertDialog dialog, long date) {
-                mWorkingNote.setAlertDate(date	, true);
-                //选择提醒的日期
-            }
-        });
-        //建立时间日期的监听器
-        d.show();
-        //显示对话框
-    }
-
-    /**
-     * Share note to apps that support {@link Intent#ACTION_SEND} action
-     * and {@text/plain} type
-     */
-    /*
-     * 函数功能：共享便签
-     * 函数实现：如下注释
-     */
-    private void sendTo(Context context, String info) {
-        Intent intent = new Intent(Intent.ACTION_SEND);
-        //建立intent链接选项
-        intent.putExtra(Intent.EXTRA_TEXT, info);
-        //将需要传递的便签信息放入text文件中
-        intent.setType("text/plain");
-        //编辑连接器的类型
-        context.startActivity(intent);
-        //在acti中进行链接
-    }
-
-    /*
-     * 函数功能：创建一个新的便签
-     * 函数实现：如下注释
-     */
-    private void createNewNote() {
-        // Firstly, save current editing notes
-        //保存当前便签
-        saveNote();
-
-        // For safety, start a new NoteEditActivity
-        finish();
-        Intent intent = new Intent(this, NoteEditActivity.class);
-        //设置链接器
-        intent.setAction(Intent.ACTION_INSERT_OR_EDIT);
-        //该活动定义为创建或编辑
-        intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mWorkingNote.getFolderId());
-        //将运行便签的id添加到INTENT_EXTRA_FOLDER_ID标记中
-        startActivity(intent);
-        //开始activity并链接
-    }
-
-    /*
-     * 函数功能：删除当前便签
-     * 函数实现：如下注释
-     */
-    private void deleteCurrentNote() {
-        if (mWorkingNote.existInDatabase()) {
-            //假如当前运行的便签内存有数据
-            HashSet<Long> ids = new HashSet<Long>();
-            long id = mWorkingNote.getNoteId();
-            if (id != Notes.ID_ROOT_FOLDER) {
-                ids.add(id);
-                //如果不是头文件夹建立一个hash表把便签id存起来
-            } else {
-                Log.d(TAG, "Wrong note id, should not happen");
-                //否则报错
-            }
-            if (!isSyncMode()) {
-                //在非同步模式情况下
-                //删除操作
-                if (!DataUtils.batchDeleteNotes(getContentResolver(), ids)) {
-                    Log.e(TAG, "Delete Note error");
-                }
-            } else {
-                //同步模式
-                //移动至垃圾文件夹的操作
-                if (!DataUtils.batchMoveToFolder(getContentResolver(), ids, Notes.ID_TRASH_FOLER)) {
-                    Log.e(TAG, "Move notes to trash folder error, should not happens");
-                }
-            }
-        }
-        mWorkingNote.markDeleted(true);
-        //将这些标签的删除标记置为true
-    }
-
-    /*
-     * 函数功能：判断是否为同步模式
-     * 函数实现：直接看NotesPreferenceActivity中同步名称是否为空
-     */
-    private boolean isSyncMode() {
-        return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0;
-    }
-
-    /*
-     * 函数功能：设置提醒时间
-     * 函数实现：如下注释
-     */
-    public void onClockAlertChanged(long date, boolean set) {
-        /**
-         * User could set clock to an unsaved note, so before setting the
-         * alert clock, we should save the note first
-         */
-        if (!mWorkingNote.existInDatabase()) {
-            //首先保存已有的便签
-            saveNote();
-        }
-        if (mWorkingNote.getNoteId() > 0) {
-            Intent intent = new Intent(this, AlarmReceiver.class);
-            intent.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mWorkingNote.getNoteId()));
-            //若有有运行的便签就是建立一个链接器将标签id都存在uri中
-            PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
-            AlarmManager alarmManager = ((AlarmManager) getSystemService(ALARM_SERVICE));
-            //设置提醒管理器
-            showAlertHeader();
-            if(!set) {
-                alarmManager.cancel(pendingIntent);
-            } else {
-                alarmManager.set(AlarmManager.RTC_WAKEUP, date, pendingIntent);
-            }
-            //如果用户设置了时间，就通过提醒管理器设置一个监听事项
-        } else {
-            /**
-             * There is the condition that user has input nothing (the note is
-             * not worthy saving), we have no note id, remind the user that he
-             * should input something
-             */
-            //没有运行的便签就报错
-            Log.e(TAG, "Clock alert setting error");
-            showToast(R.string.error_note_empty_for_clock);
-        }
-    }
-
-    /*
-     * 函数功能：Widget发生改变的所触发的事件
-     */
-    public void onWidgetChanged() {
-        updateWidget();//更新Widget
-    }
-
-    /*
-     * 函数功能： 删除编辑文本框所触发的事件
-     * 函数实现：如下注释
-     */
-    public void onEditTextDelete(int index, String text) {
-        int childCount = mEditTextList.getChildCount();
-        if (childCount == 1) {
-            return;
-        }
-        //没有编辑框的话直接返回
-        for (int i = index + 1; i < childCount; i++) {
-            ((NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text))
-                    .setIndex(i - 1);
-            //通过id把编辑框存在便签编辑框中
-        }
-
-        mEditTextList.removeViewAt(index);
-        //删除特定位置的视图
-        NoteEditText edit = null;
-        if(index == 0) {
-            edit = (NoteEditText) mEditTextList.getChildAt(0).findViewById(
-                    R.id.et_edit_text);
-        } else {
-            edit = (NoteEditText) mEditTextList.getChildAt(index - 1).findViewById(
-                    R.id.et_edit_text);
-        }
-        //通过id把编辑框存在空的NoteEditText中
-        int length = edit.length();
-        edit.append(text);
-        edit.requestFocus();//请求优先完成该此 编辑
-        edit.setSelection(length);//定位到length位置处的条目
-    }
-
-    /*
-     * 函数功能：进入编辑文本框所触发的事件
-     * 函数实现：如下注释
-     */
-    public void onEditTextEnter(int index, String text) {
-        /**
-         * Should not happen, check for debug
-         */
-        if(index > mEditTextList.getChildCount()) {
-            Log.e(TAG, "Index out of mEditTextList boundrary, should not happen");
-            //越界把偶偶
-        }
-
-        View view = getListItem(text, index);
-        mEditTextList.addView(view, index);
-        //建立一个新的视图并添加到编辑文本框内
-        NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text);
-        edit.requestFocus();//请求优先操作
-        edit.setSelection(0);//定位到起始位置
-        for (int i = index + 1; i < mEditTextList.getChildCount(); i++) {
-            ((NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text))
-                    .setIndex(i);
-            //遍历子文本框并设置对应对下标
-        }
-    }
-
-    /*
-     * 函数功能：切换至列表模式
-     * 函数实现：如下注释
-     */
-    private void switchToListMode(String text) {
-        mEditTextList.removeAllViews();
-        String[] items = text.split("\n");
-        int index = 0;
-        //清空所有视图，初始化下标
-        for (String item : items) {
-            if(!TextUtils.isEmpty(item)) {
-                mEditTextList.addView(getListItem(item, index));
-                index++;
-                //遍历所有文本单元并添加到文本框中
-            }
-        }
-        mEditTextList.addView(getListItem("", index));
-        mEditTextList.getChildAt(index).findViewById(R.id.et_edit_text).requestFocus();
-        //优先请求此操作
-
-        mNoteEditor.setVisibility(View.GONE);
-        //便签编辑器不可见
-        mEditTextList.setVisibility(View.VISIBLE);
-        //将文本编辑框置为可见
-    }
-
-    /*
-     * 函数功能：获取高亮效果的反馈情况
-     * 函数实现：如下注释
-     */
-    private Spannable getHighlightQueryResult(String fullText, String userQuery) {
-        SpannableString spannable = new SpannableString(fullText == null ? "" : fullText);
-        //新建一个效果选项
-        if (!TextUtils.isEmpty(userQuery)) {
-            mPattern = Pattern.compile(userQuery);
-            //将用户的询问进行解析
-            Matcher m = mPattern.matcher(fullText);
-            //建立一个状态机检查Pattern并进行匹配
-            int start = 0;
-            while (m.find(start)) {
-                spannable.setSpan(
-                        new BackgroundColorSpan(this.getResources().getColor(
-                                R.color.user_query_highlight)), m.start(), m.end(),
-                        Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
-                //设置背景颜色
-                start = m.end();
-                //跟新起始位置
-            }
-        }
-        return spannable;
-    }
-
-    /*
-     * 函数功能：获取列表项
-     * 函数实现：如下注释
-     */
-    private View getListItem(String item, int index) {
-        View view = LayoutInflater.from(this).inflate(R.layout.note_edit_list_item, null);
-        //创建一个视图
-        final NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text);
-        edit.setTextAppearance(this, TextAppearanceResources.getTexAppearanceResource(mFontSizeId));
-        //创建一个文本编辑框并设置可见性
-        CheckBox cb = ((CheckBox) view.findViewById(R.id.cb_edit_item));
-        cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
-            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-                if (isChecked) {
-                    edit.setPaintFlags(edit.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
-                } else {
-                    edit.setPaintFlags(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG);
-                }
-            }
-        });
-        //建立一个打钩框并设置监听器
-
-        if (item.startsWith(TAG_CHECKED)) {
-            //选择勾选
-            cb.setChecked(true);
-            edit.setPaintFlags(edit.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
-            item = item.substring(TAG_CHECKED.length(), item.length()).trim();
-        } else if (item.startsWith(TAG_UNCHECKED)) {
-            //选择不勾选
-            cb.setChecked(false);
-            edit.setPaintFlags(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG);
-            item = item.substring(TAG_UNCHECKED.length(), item.length()).trim();
-        }
-
-        edit.setOnTextViewChangeListener(this);
-        edit.setIndex(index);
-        edit.setText(getHighlightQueryResult(item, mUserQuery));
-        //运行编辑框的监听器对该行为作出反应，并设置下标及文本内容
-        return view;
-    }
-
-    /*
-     * 函数功能：便签内容发生改变所 触发的事件
-     * 函数实现：如下注释
-     */
-    public void onTextChange(int index, boolean hasText) {
-        if (index >= mEditTextList.getChildCount()) {
-            Log.e(TAG, "Wrong index, should not happen");
-            return;
-            //越界报错
-        }
-        if(hasText) {
-            mEditTextList.getChildAt(index).findViewById(R.id.cb_edit_item).setVisibility(View.VISIBLE);
-        } else {
-            mEditTextList.getChildAt(index).findViewById(R.id.cb_edit_item).setVisibility(View.GONE);
-        }
-        //如果内容不为空则将其子编辑框可见性置为可见，否则不可见
-    }
-
-    /*
-     * 函数功能：检查模式和列表模式的切换
-     * 函数实现：如下注释
-     */
-    public void onCheckListModeChanged(int oldMode, int newMode) {
-        if (newMode == TextNote.MODE_CHECK_LIST) {
-            switchToListMode(mNoteEditor.getText().toString());
-            //检查模式切换到列表模式
-        } else {
-            if (!getWorkingText()) {
-                mWorkingNote.setWorkingText(mWorkingNote.getContent().replace(TAG_UNCHECKED + " ",
-                        ""));
-            }
-            //若是获取到文本就改变其检查标记
-            mNoteEditor.setText(getHighlightQueryResult(mWorkingNote.getContent(), mUserQuery));
-            mEditTextList.setVisibility(View.GONE);
-            mNoteEditor.setVisibility(View.VISIBLE);
-            //修改文本编辑器的内容和可见性
-        }
-    }
-
-    /*
-     * 函数功能：设置勾选选项表并返回是否勾选的标记
-     * 函数实现：如下注释
-     */
-    private boolean getWorkingText() {
-        boolean hasChecked = false;
-        //初始化check标记
-        if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) {
-            // 若模式为CHECK_LIST
-            StringBuilder sb = new StringBuilder();
-            //创建可变字符串
-            for (int i = 0; i < mEditTextList.getChildCount(); i++) {
-                View view = mEditTextList.getChildAt(i);
-                //遍历所有子编辑框的视图
-                NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text);
-                if (!TextUtils.isEmpty(edit.getText())) {
-                    //若文本不为空
-                    if (((CheckBox) view.findViewById(R.id.cb_edit_item)).isChecked()) {
-                        //该选项框已打钩
-                        sb.append(TAG_CHECKED).append(" ").append(edit.getText()).append("\n");
-                        hasChecked = true;
-                        //扩展字符串为已打钩并把标记置true
-                    } else {
-                        sb.append(TAG_UNCHECKED).append(" ").append(edit.getText()).append("\n");
-                        //扩展字符串添加未打钩
-                    }
-                }
-            }
-            mWorkingNote.setWorkingText(sb.toString());
-            //利用编辑好的字符串设置运行便签的内容
-        } else {
-            mWorkingNote.setWorkingText(mNoteEditor.getText().toString());
-            // 若不是该模式直接用编辑器中的内容设置运行中标签的内容
-        }
-        return hasChecked;
-    }
-
-    /*
-     * 函数功能：保存便签
-     * 函数实现：如下注释
-     */
-    private boolean saveNote() {
-        getWorkingText();
-        boolean saved = mWorkingNote.saveNote();
-        //运行 getWorkingText()之后保存
-        if (saved) {
-            /**
-             * There are two modes from List view to edit view, open one note,
-             * create/edit a node. Opening node requires to the original
-             * position in the list when back from edit view, while creating a
-             * new node requires to the top of the list. This code
-             * {@link #RESULT_OK} is used to identify the create/edit state
-             */
-            //如英文注释所说链接RESULT_OK是为了识别保存的2种情况，一是创建后保存，二是修改后保存
-            setResult(RESULT_OK);
-        }
-        return saved;
-    }
-
-    /*
-     * 函数功能：将便签发送至桌面
-     * 函数实现：如下注释
-     */
-    private void sendToDesktop() {
-        /**
-         * Before send message to home, we should make sure that current
-         * editing note is exists in databases. So, for new note, firstly
-         * save it
-         */
-        if (!mWorkingNote.existInDatabase()) {
-            saveNote();
-            //若不存在数据也就是新的标签就保存起来先
-        }
-
-        if (mWorkingNote.getNoteId() > 0) {
-            //若是有内容
-            Intent sender = new Intent();
-            Intent shortcutIntent = new Intent(this, NoteEditActivity.class);
-            //建立发送到桌面的连接器
-            shortcutIntent.setAction(Intent.ACTION_VIEW);
-            //链接为一个视图
-            shortcutIntent.putExtra(Intent.EXTRA_UID, mWorkingNote.getNoteId());
-            sender.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
-            sender.putExtra(Intent.EXTRA_SHORTCUT_NAME,
-                    makeShortcutIconTitle(mWorkingNote.getContent()));
-            sender.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
-                    Intent.ShortcutIconResource.fromContext(this, R.drawable.icon_app));
-            sender.putExtra("duplicate", true);
-            //将便签的相关信息都添加到要发送的文件里
-            sender.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
-            //设置sneder的行为是发送
-            showToast(R.string.info_note_enter_desktop);
-            sendBroadcast(sender);
-            //显示到桌面
-        } else {
-            /**
-             * There is the condition that user has input nothing (the note is
-             * not worthy saving), we have no note id, remind the user that he
-             * should input something
-             */
-            Log.e(TAG, "Send to desktop error");
-            showToast(R.string.error_note_empty_for_send_to_desktop);
-            //空便签直接报错
-        }
-    }
-
-    /*
-     * 函数功能：编辑小图标的标题
-     * 函数实现：如下注释
-     */
-    private String makeShortcutIconTitle(String content) {
-        content = content.replace(TAG_CHECKED, "");
-        content = content.replace(TAG_UNCHECKED, "");
-        return content.length() > SHORTCUT_ICON_TITLE_MAX_LEN ? content.substring(0,
-                SHORTCUT_ICON_TITLE_MAX_LEN) : content;
-        //直接设置为content中的内容并返回，有勾选和未勾选2种
-    }
-
-    /*
-     * 函数功能：显示提示的视图
-     * 函数实现：根据下标显示对应的提示
-     */
-    private void showToast(int resId) {
-        showToast(resId, Toast.LENGTH_SHORT);
-    }
-
-    /*
-     * 函数功能：持续显示提示的视图
-     * 函数实现：根据下标和持续的时间（duration）编辑提示视图并显示
-     */
-    private void showToast(int resId, int duration) {
-        Toast.makeText(this, resId, duration).show();
-    }
-}
diff --git a/doc/cyw.readcode.ui/ui/NoteEditText.java b/doc/cyw.readcode.ui/ui/NoteEditText.java
deleted file mode 100644
index 334ebd6..0000000
--- a/doc/cyw.readcode.ui/ui/NoteEditText.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.ui;
-
-import android.content.Context;
-import android.graphics.Rect;
-import android.text.Layout;
-import android.text.Selection;
-import android.text.Spanned;
-import android.text.TextUtils;
-import android.text.style.URLSpan;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.view.ContextMenu;
-import android.view.KeyEvent;
-import android.view.MenuItem;
-import android.view.MenuItem.OnMenuItemClickListener;
-import android.view.MotionEvent;
-import android.widget.EditText;
-
-import net.micode.notes.R;
-
-import java.util.HashMap;
-import java.util.Map;
-
-//继承edittext，设置便签设置文本框
-public class NoteEditText extends EditText {
-    private static final String TAG = "NoteEditText";
-    private int mIndex;
-    private int mSelectionStartBeforeDelete;
-
-    private static final String SCHEME_TEL = "tel:" ;
-    private static final String SCHEME_HTTP = "http:" ;
-    private static final String SCHEME_EMAIL = "mailto:" ;
-
-    ///建立一个字符和整数的hash表，用于链接电话，网站，还有邮箱
-    private static final Map<String, Integer> sSchemaActionResMap = new HashMap<String, Integer>();
-    static {
-        sSchemaActionResMap.put(SCHEME_TEL, R.string.note_link_tel);
-        sSchemaActionResMap.put(SCHEME_HTTP, R.string.note_link_web);
-        sSchemaActionResMap.put(SCHEME_EMAIL, R.string.note_link_email);
-    }
-
-    /**
-     * Call by the {@link NoteEditActivity} to delete or add edit text
-     */
-    //在NoteEditActivity中删除或添加文本的操作，可以看做是一个文本是否被变的标记，英文注释已说明的很清楚
-    public interface OnTextViewChangeListener {
-        /**
-         * Delete current edit text when {@link KeyEvent#KEYCODE_DEL} happens
-         * and the text is null
-         */
-        //处理删除按键时的操作
-        void onEditTextDelete(int index, String text);
-
-        /**
-         * Add edit text after current edit text when {@link KeyEvent#KEYCODE_ENTER}
-         * happen
-         */
-        //处理进入按键时的操作
-        void onEditTextEnter(int index, String text);
-
-        /**
-         * Hide or show item option when text change
-         */
-        void onTextChange(int index, boolean hasText);
-    }
-
-    private OnTextViewChangeListener mOnTextViewChangeListener;
-
-    //根据context设置文本
-    public NoteEditText(Context context) {
-        super(context, null);//用super引用父类变量
-        mIndex = 0;
-    }
-
-    //设置当前光标
-    public void setIndex(int index) {
-        mIndex = index;
-    }
-
-    //初始化文本修改标记
-    public void setOnTextViewChangeListener(OnTextViewChangeListener listener) {
-        mOnTextViewChangeListener = listener;
-    }
-
-    //AttributeSet 百度了一下是自定义空控件属性，用于维护便签动态变化的属性
-    //初始化便签
-    public NoteEditText(Context context, AttributeSet    attrs) {
-        super(context, attrs, android.R.attr.editTextStyle);
-    }
-
-    // 根据defstyle自动初始化
-    public NoteEditText(Context context, AttributeSet attrs, int defStyle) {
-        super(context, attrs, defStyle);
-        // TODO Auto-generated construct or stub
-    }
-
-    @Override
-    //view里的函数，处理手机屏幕的所有事件
-    /*参数event为手机屏幕触摸事件封装类的对象，其中封装了该事件的所有信息，
-                例如触摸的位置、触摸的类型以及触摸的时间等。该对象会在用户触摸手机屏幕时被创建。*/
-    public boolean onTouchEvent(MotionEvent event) {
-        switch (event.getAction()) {
-            //重写了需要处理屏幕被按下的事件
-            case MotionEvent.ACTION_DOWN:
-                //跟新当前坐标值
-                int x = (int) event.getX();
-                int y = (int) event.getY();
-                x -= getTotalPaddingLeft();
-                y -= getTotalPaddingTop();
-                x += getScrollX();
-                y += getScrollY();
-
-                //用布局控件layout根据x,y的新值设置新的位置
-                Layout layout = getLayout();
-                int line = layout.getLineForVertical(y);
-                int off = layout.getOffsetForHorizontal(line, x);
-
-                //更新光标新的位置
-                Selection.setSelection(getText(), off);
-                break;
-        }
-
-        return super.onTouchEvent(event);
-    }
-
-    @Override
-    /*
-     * 函数功能：处理用户按下一个键盘按键时会触发 的事件
-     * 实现过程：如下注释
-     */
-    public boolean onKeyDown(int keyCode, KeyEvent event) {
-        switch (keyCode) {
-            //根据按键的 Unicode 编码值来处理
-            case KeyEvent.KEYCODE_ENTER:
-                //“进入”按键
-                if (mOnTextViewChangeListener != null) {
-                    return false;
-                }
-                break;
-            case KeyEvent.KEYCODE_DEL:
-                //“删除”按键
-                mSelectionStartBeforeDelete = getSelectionStart();
-                break;
-            default:
-                break;
-        }
-        //继续执行父类的其他点击事件
-        return super.onKeyDown(keyCode, event);
-    }
-
-    @Override
-    /*
-     * 函数功能：处理用户松开一个键盘按键时会触发 的事件
-     * 实现方式：如下注释
-     */
-    public boolean onKeyUp(int keyCode, KeyEvent event) {
-        switch(keyCode) {
-            //根据按键的 Unicode 编码值来处理，有删除和进入2种操作
-            case KeyEvent.KEYCODE_DEL:
-                if (mOnTextViewChangeListener != null) {
-                    //若是被修改过
-                    if (0 == mSelectionStartBeforeDelete && mIndex != 0) {
-                        //若之前有被修改并且文档不为空
-                        mOnTextViewChangeListener.onEditTextDelete(mIndex, getText().toString());
-                        //利用上文OnTextViewChangeListener对KEYCODE_DEL按键情况的删除函数进行删除
-                        return true;
-                    }
-                } else {
-                    Log.d(TAG, "OnTextViewChangeListener was not seted");
-                    //其他情况报错，文档的改动监听器并没有建立
-                }
-                break;
-            case KeyEvent.KEYCODE_ENTER:
-                //同上也是分为监听器是否建立2种情况
-                if (mOnTextViewChangeListener != null) {
-                    int selectionStart = getSelectionStart();
-                    //获取当前位置
-                    String text = getText().subSequence(selectionStart, length()).toString();
-                    //获取当前文本
-                    setText(getText().subSequence(0, selectionStart));
-                    //根据获取的文本设置当前文本
-                    mOnTextViewChangeListener.onEditTextEnter(mIndex + 1, text);
-                    //当{@link KeyEvent#KEYCODE_ENTER}添加新文本
-                } else {
-                    Log.d(TAG, "OnTextViewChangeListener was not seted");
-                    //其他情况报错，文档的改动监听器并没有建立
-                }
-                break;
-            default:
-                break;
-        }
-        //继续执行父类的其他按键弹起的事件
-        return super.onKeyUp(keyCode, event);
-    }
-
-    @Override
-    /*
-     * 函数功能：当焦点发生变化时，会自动调用该方法来处理焦点改变的事件
-     * 实现方式：如下注释
-     * 参数：focused表示触发该事件的View是否获得了焦点，当该控件获得焦点时，Focused等于true，否则等于false。
-           direction表示焦点移动的方向，用数值表示
-           Rect：表示在触发事件的View的坐标系中，前一个获得焦点的矩形区域，即表示焦点是从哪里来的。如果不可用则为null
-     */
-    protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
-        if (mOnTextViewChangeListener != null) {
-            //若监听器已经建立
-            if (!focused && TextUtils.isEmpty(getText())) {
-                //获取到焦点并且文本不为空
-                mOnTextViewChangeListener.onTextChange(mIndex, false);
-                //mOnTextViewChangeListener子函数，置false隐藏事件选项
-            } else {
-                mOnTextViewChangeListener.onTextChange(mIndex, true);
-                //mOnTextViewChangeListener子函数，置true显示事件选项
-            }
-        }
-        //继续执行父类的其他焦点变化的事件
-        super.onFocusChanged(focused, direction, previouslyFocusedRect);
-    }
-
-    @Override
-    /*
-     * 函数功能：生成上下文菜单
-     * 函数实现：如下注释
-     */
-    protected void onCreateContextMenu(ContextMenu menu) {
-        if (getText() instanceof Spanned) {
-            //有文本存在
-            int selStart = getSelectionStart();
-            int selEnd = getSelectionEnd();
-            //获取文本开始和结尾位置
-
-            int min = Math.min(selStart, selEnd);
-            int max = Math.max(selStart, selEnd);
-            //获取开始到结尾的最大值和最小值
-
-            final URLSpan[] urls = ((Spanned) getText()).getSpans(min, max, URLSpan.class);
-            //设置url的信息的范围值
-            if (urls.length == 1) {
-                int defaultResId = 0;
-                for(String schema: sSchemaActionResMap.keySet()) {
-                    //获取计划表中所有的key值
-                    if(urls[0].getURL().indexOf(schema) >= 0) {
-                        //若url可以添加则在添加后将defaultResId置为key所映射的值
-                        defaultResId = sSchemaActionResMap.get(schema);
-                        break;
-                    }
-                }
-
-                if (defaultResId == 0) {
-                    //defaultResId == 0则说明url并没有添加任何东西，所以置为连接其他SchemaActionResMap的值
-                    defaultResId = R.string.note_link_other;
-                }
-
-                //建立菜单
-                menu.add(0, 0, 0, defaultResId).setOnMenuItemClickListener(
-                        new OnMenuItemClickListener() {
-                            //新建按键监听器
-                            public boolean onMenuItemClick(MenuItem item) {
-                                // goto a new intent
-                                urls[0].onClick(NoteEditText.this);
-                                //根据相应的文本设置菜单的按键
-                                return true;
-                            }
-                        });
-            }
-        }
-        //继续执行父类的其他菜单创建的事件
-        super.onCreateContextMenu(menu);
-    }
-}
diff --git a/doc/cyw.readcode.ui/ui/NoteItemData.java b/doc/cyw.readcode.ui/ui/NoteItemData.java
deleted file mode 100644
index ff52c1f..0000000
--- a/doc/cyw.readcode.ui/ui/NoteItemData.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.ui;
-
-import android.content.Context;
-import android.database.Cursor;
-import android.text.TextUtils;
-
-import net.micode.notes.data.Contact;
-import net.micode.notes.data.Notes;
-import net.micode.notes.data.Notes.NoteColumns;
-import net.micode.notes.tool.DataUtils;
-
-
-public class NoteItemData {
-    static final String [] PROJECTION = new String [] {
-            NoteColumns.ID,
-            NoteColumns.ALERTED_DATE,
-            NoteColumns.BG_COLOR_ID,
-            NoteColumns.CREATED_DATE,
-            NoteColumns.HAS_ATTACHMENT,
-            NoteColumns.MODIFIED_DATE,
-            NoteColumns.NOTES_COUNT,
-            NoteColumns.PARENT_ID,
-            NoteColumns.SNIPPET,
-            NoteColumns.TYPE,
-            NoteColumns.WIDGET_ID,
-            NoteColumns.WIDGET_TYPE,
-    };
-    //常量标记和数据就不一一标记了，意义翻译基本就知道
-    private static final int ID_COLUMN                    = 0;
-    private static final int ALERTED_DATE_COLUMN          = 1;
-    private static final int BG_COLOR_ID_COLUMN           = 2;
-    private static final int CREATED_DATE_COLUMN          = 3;
-    private static final int HAS_ATTACHMENT_COLUMN        = 4;
-    private static final int MODIFIED_DATE_COLUMN         = 5;
-    private static final int NOTES_COUNT_COLUMN           = 6;
-    private static final int PARENT_ID_COLUMN             = 7;
-    private static final int SNIPPET_COLUMN               = 8;
-    private static final int TYPE_COLUMN                  = 9;
-    private static final int WIDGET_ID_COLUMN             = 10;
-    private static final int WIDGET_TYPE_COLUMN           = 11;
-
-    private long mId;
-    private long mAlertDate;
-    private int mBgColorId;
-    private long mCreatedDate;
-    private boolean mHasAttachment;
-    private long mModifiedDate;
-    private int mNotesCount;
-    private long mParentId;
-    private String mSnippet;
-    private int mType;
-    private int mWidgetId;
-    private int mWidgetType;
-    private String mName;
-    private String mPhoneNumber;
-
-    private boolean mIsLastItem;
-    private boolean mIsFirstItem;
-    private boolean mIsOnlyOneItem;
-    private boolean mIsOneNoteFollowingFolder;
-    private boolean mIsMultiNotesFollowingFolder;
-    //初始化NoteItemData，主要利用光标cursor获取的东西
-    public NoteItemData(Context context, Cursor  cursor) {
-        //getxxx为转换格式
-        mId = cursor.getLong(ID_COLUMN);
-        mAlertDate = cursor.getLong(ALERTED_DATE_COLUMN);
-        mBgColorId = cursor.getInt(BG_COLOR_ID_COLUMN);
-        mCreatedDate = cursor.getLong(CREATED_DATE_COLUMN);
-        mHasAttachment = (cursor.getInt(HAS_ATTACHMENT_COLUMN) > 0) ? true : false;
-        mModifiedDate = cursor.getLong(MODIFIED_DATE_COLUMN);
-        mNotesCount = cursor.getInt(NOTES_COUNT_COLUMN);
-        mParentId = cursor.getLong(PARENT_ID_COLUMN);
-        mSnippet = cursor.getString(SNIPPET_COLUMN);
-        mSnippet = mSnippet.replace(NoteEditActivity.TAG_CHECKED, "").replace(
-                NoteEditActivity.TAG_UNCHECKED, "");
-        mType = cursor.getInt(TYPE_COLUMN);
-        mWidgetId = cursor.getInt(WIDGET_ID_COLUMN);
-        mWidgetType = cursor.getInt(WIDGET_TYPE_COLUMN);
-
-        //初始化电话号码的信息
-        mPhoneNumber = "";
-        if (mParentId == Notes.ID_CALL_RECORD_FOLDER) {
-            mPhoneNumber = DataUtils.getCallNumberByNoteId(context.getContentResolver(), mId);
-            if (!TextUtils.isEmpty(mPhoneNumber)) {//mphonenumber里有符合字符串，则用contart功能连接
-                mName = Contact.getContact(context, mPhoneNumber);
-                if (mName == null) {
-                    mName = mPhoneNumber;
-                }
-            }
-        }
-
-        if (mName == null) {
-            mName = "";
-        }
-        checkPostion(cursor);
-    }
-    ///根据鼠标的位置设置标记，和位置
-    private void checkPostion(Cursor cursor) {
-        //初始化几个标记，cursor具体功能笔记中已提到，不一一叙述
-        mIsLastItem = cursor.isLast() ? true : false;
-        mIsFirstItem = cursor.isFirst() ? true : false;
-        mIsOnlyOneItem = (cursor.getCount() == 1);
-        //初始化“多重子文件”“单一子文件”2个标记
-        mIsMultiNotesFollowingFolder = false;
-        mIsOneNoteFollowingFolder = false;
-
-        //主要是设置上诉2标记
-        if (mType == Notes.TYPE_NOTE && !mIsFirstItem) {//若是note格式并且不是第一个元素
-            int position = cursor.getPosition();
-            if (cursor.moveToPrevious()) {//获取光标位置后看上一行
-                if (cursor.getInt(TYPE_COLUMN) == Notes.TYPE_FOLDER
-                        || cursor.getInt(TYPE_COLUMN) == Notes.TYPE_SYSTEM) {//若光标满足系统或note格式
-                    if (cursor.getCount() > (position + 1)) {
-                        mIsMultiNotesFollowingFolder = true;//若是数据行数大于但前位置+1则设置成正确
-                    } else {
-                        mIsOneNoteFollowingFolder = true;//否则单一文件夹标记为true
-                    }
-                }
-                if (!cursor.moveToNext()) {//若不能再往下走则报错
-                    throw new IllegalStateException("cursor move to previous but can't move back");
-                }
-            }
-        }
-    }
-    ///下面的代码的作用均是声明获取属性的方法，下面一系列函数都是返回状态值等，用于判断状态
-    public boolean isOneFollowingFolder() {
-        return mIsOneNoteFollowingFolder;
-    }
-
-    public boolean isMultiFollowingFolder() {
-        return mIsMultiNotesFollowingFolder;
-    }
-
-    public boolean isLast() {
-        return mIsLastItem;
-    }
-
-    public String getCallName() {
-        return mName;
-    }
-
-    public boolean isFirst() {
-        return mIsFirstItem;
-    }
-
-    public boolean isSingle() {
-        return mIsOnlyOneItem;
-    }
-
-    public long getId() {
-        return mId;
-    }
-
-    public long getAlertDate() {
-        return mAlertDate;
-    }
-
-    public long getCreatedDate() {
-        return mCreatedDate;
-    }
-
-    public boolean hasAttachment() {
-        return mHasAttachment;
-    }
-
-    public long getModifiedDate() {
-        return mModifiedDate;
-    }
-
-    public int getBgColorId() {
-        return mBgColorId;
-    }
-
-    public long getParentId() {
-        return mParentId;
-    }
-
-    public int getNotesCount() {
-        return mNotesCount;
-    }
-
-    public long getFolderId () {
-        return mParentId;
-    }
-
-    public int getType() {
-        return mType;
-    }
-
-    public int getWidgetType() {
-        return mWidgetType;
-    }
-
-    public int getWidgetId() {
-        return mWidgetId;
-    }
-
-    public String getSnippet() {
-        return mSnippet;
-    }
-
-    public boolean hasAlert() {
-        return (mAlertDate > 0);
-    }
-
-    //若数据父id为保存至文件夹模式的id且满足电话号码单元不为空，则isCallRecord为true
-    public boolean isCallRecord() {
-        return (mParentId == Notes.ID_CALL_RECORD_FOLDER && !TextUtils.isEmpty(mPhoneNumber));
-    }
-
-    public static int getNoteType(Cursor cursor) {//获得便签的类型
-        return cursor.getInt(TYPE_COLUMN);
-    }
-}
\ No newline at end of file
diff --git a/doc/cyw.readcode.ui/ui/NotesListActivity.java b/doc/cyw.readcode.ui/ui/NotesListActivity.java
deleted file mode 100644
index 9992129..0000000
--- a/doc/cyw.readcode.ui/ui/NotesListActivity.java
+++ /dev/null
@@ -1,1018 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.ui;
-
-import android.app.Activity;
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.appwidget.AppWidgetManager;
-import android.content.AsyncQueryHandler;
-import android.content.ContentResolver;
-import android.content.ContentValues;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.database.Cursor;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.preference.PreferenceManager;
-import android.text.Editable;
-import android.text.TextUtils;
-import android.text.TextWatcher;
-import android.util.Log;
-import android.view.ActionMode;
-import android.view.ContextMenu;
-import android.view.ContextMenu.ContextMenuInfo;
-import android.view.Display;
-import android.view.HapticFeedbackConstants;
-import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.MenuItem.OnMenuItemClickListener;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.View.OnCreateContextMenuListener;
-import android.view.View.OnTouchListener;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.AdapterView;
-import android.widget.AdapterView.OnItemClickListener;
-import android.widget.AdapterView.OnItemLongClickListener;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.ListView;
-import android.widget.PopupMenu;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import net.micode.notes.R;
-import net.micode.notes.data.Notes;
-import net.micode.notes.data.Notes.NoteColumns;
-import net.micode.notes.gtask.remote.GTaskSyncService;
-import net.micode.notes.model.WorkingNote;
-import net.micode.notes.tool.BackupUtils;
-import net.micode.notes.tool.DataUtils;
-import net.micode.notes.tool.ResourceParser;
-import net.micode.notes.ui.NotesListAdapter.AppWidgetAttribute;
-import net.micode.notes.widget.NoteWidgetProvider_2x;
-import net.micode.notes.widget.NoteWidgetProvider_4x;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.HashSet;
-//主界面，一进入就是这个界面
-/**
- * @author k
- *
- */
-public class NotesListActivity extends Activity implements OnClickListener, OnItemLongClickListener {   //没有用特定的标签加注释。。。感觉没有什么用
-    private static final int FOLDER_NOTE_LIST_QUERY_TOKEN = 0;
-
-    private static final int FOLDER_LIST_QUERY_TOKEN      = 1;
-
-    private static final int MENU_FOLDER_DELETE = 0;
-
-    private static final int MENU_FOLDER_VIEW = 1;
-
-    private static final int MENU_FOLDER_CHANGE_NAME = 2;
-
-    private static final String PREFERENCE_ADD_INTRODUCTION = "net.micode.notes.introduction";  //单行超过80个字符
-
-    private enum ListEditState {
-        NOTE_LIST, SUB_FOLDER, CALL_RECORD_FOLDER
-    };
-
-    private ListEditState mState;
-
-    private BackgroundQueryHandler mBackgroundQueryHandler;
-
-    private NotesListAdapter mNotesListAdapter;
-
-    private ListView mNotesListView;
-
-    private Button mAddNewNote;
-
-    private boolean mDispatch;
-
-    private int mOriginY;
-
-    private int mDispatchY;
-
-    private TextView mTitleBar;
-
-    private long mCurrentFolderId;
-
-    private ContentResolver mContentResolver;
-
-    private ModeCallback mModeCallBack;
-
-    private static final String TAG = "NotesListActivity";
-
-    public static final int NOTES_LISTVIEW_SCROLL_RATE = 30;
-
-    private NoteItemData mFocusNoteDataItem;
-
-    private static final String NORMAL_SELECTION = NoteColumns.PARENT_ID + "=?";
-
-    private static final String ROOT_FOLDER_SELECTION = "(" + NoteColumns.TYPE + "<>"
-            + Notes.TYPE_SYSTEM + " AND " + NoteColumns.PARENT_ID + "=?)" + " OR ("
-            + NoteColumns.ID + "=" + Notes.ID_CALL_RECORD_FOLDER + " AND "
-            + NoteColumns.NOTES_COUNT + ">0)";
-
-    private final static int REQUEST_CODE_OPEN_NODE = 102;
-    private final static int REQUEST_CODE_NEW_NODE  = 103;
-
-    @Override
-    // 创建类
-    protected void onCreate(final Bundle savedInstanceState) {  //需要是final类型   根据程序上下文环境，Java关键字final有“这是无法改变的”或者“终态的”含义，它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变：设计或效率。
-        // final类不能被继承，没有子类，final类中的方法默认是final的。
-        //final方法不能被子类的方法覆盖，但可以被继承。
-        //final成员变量表示常量，只能被赋值一次，赋值后值不再改变。
-        //final不能用于修饰构造方法。
-        super.onCreate(savedInstanceState); // 调用父类的onCreate函数
-        setContentView(R.layout.note_list);
-        initResources();
-
-        /**
-         * Insert an introduction when user firstly use this application
-         */
-        setAppInfoFromRawRes();
-    }
-
-    @Override
-    // 返回一些子模块完成的数据交给主Activity处理
-    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        // 结果值 和 要求值 符合要求
-        if (resultCode == RESULT_OK
-                && (requestCode == REQUEST_CODE_OPEN_NODE || requestCode == REQUEST_CODE_NEW_NODE)) {
-            mNotesListAdapter.changeCursor(null);
-        } else {
-            super.onActivityResult(requestCode, resultCode, data);
-            // 调用 Activity 的onActivityResult（）
-        }
-    }
-
-    private void setAppInfoFromRawRes() {
-        // Android平台给我们提供了一个SharedPreferences类，它是一个轻量级的存储类，特别适合用于保存软件配置参数。
-        SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
-        if (!sp.getBoolean(PREFERENCE_ADD_INTRODUCTION, false)) {
-            StringBuilder sb = new StringBuilder();
-            InputStream in = null;
-            try {
-                // 把资源文件放到应用程序的/raw/raw下，那么就可以在应用中使用getResources获取资源后,
-                // 以openRawResource方法（不带后缀的资源文件名）打开这个文件。
-                in = getResources().openRawResource(R.raw.introduction);
-                if (in != null) {
-                    InputStreamReader isr = new InputStreamReader(in);
-                    BufferedReader br = new BufferedReader(isr);
-                    char [] buf = new char[1024];  // 自行定义的数值，使用者不知道有什么意义
-                    int len = 0;
-                    while ((len = br.read(buf)) > 0) {
-                        sb.append(buf, 0, len);
-                    }
-                } else {
-                    Log.e(TAG, "Read introduction file error");
-                    return;
-                }
-            } catch (IOException e) {
-                e.printStackTrace();
-                return;
-            } finally {
-                if (in != null) {
-                    try {
-                        in.close();
-                    } catch (IOException e) {
-                        // TODO Auto-generated catch block
-                        e.printStackTrace();
-                    }
-                }
-            }
-
-            // 创建空的WorkingNote
-            WorkingNote note = WorkingNote.createEmptyNote(this, Notes.ID_ROOT_FOLDER,
-                    AppWidgetManager.INVALID_APPWIDGET_ID, Notes.TYPE_WIDGET_INVALIDE,
-                    ResourceParser.RED);
-            note.setWorkingText(sb.toString());
-            if (note.saveNote()) {
-                // 更新保存note的信息
-                sp.edit().putBoolean(PREFERENCE_ADD_INTRODUCTION, true).commit();
-            } else {
-                Log.e(TAG, "Save introduction note error");
-                return;
-            }
-        }
-    }
-
-    @Override
-    protected void onStart() {
-        super.onStart();
-        startAsyncNotesListQuery();
-    }
-
-    // 初始化资源
-    private void initResources() {
-        mContentResolver = this.getContentResolver(); // 获取应用程序的数据，得到类似数据表的东西
-        mBackgroundQueryHandler = new BackgroundQueryHandler(this.getContentResolver());
-        mCurrentFolderId = Notes.ID_ROOT_FOLDER;
-
-        // findViewById 是安卓编程的定位函数，主要是引用.R文件里的引用名
-        mNotesListView = (ListView) findViewById(R.id.notes_list); // 绑定XML中的ListView，作为Item的容器
-        mNotesListView.addFooterView(LayoutInflater.from(this).inflate(R.layout.note_list_footer, null),
-                null, false);
-        mNotesListView.setOnItemClickListener(new OnListItemClickListener());
-        mNotesListView.setOnItemLongClickListener(this);
-        mNotesListAdapter = new NotesListAdapter(this);
-        mNotesListView.setAdapter(mNotesListAdapter);
-        mAddNewNote = (Button) findViewById(R.id.btn_new_note);// 在activity中要获取该按钮
-        mAddNewNote.setOnClickListener(this);
-        mAddNewNote.setOnTouchListener(new NewNoteOnTouchListener());
-        mDispatch = false;
-        mDispatchY = 0;
-        mOriginY = 0;
-        mTitleBar = (TextView) findViewById(R.id.tv_title_bar);
-        mState = ListEditState.NOTE_LIST;
-        mModeCallBack = new ModeCallback();
-    }
-
-    // 继承自ListView.MultiChoiceModeListener 和 OnMenuItemClickListener
-    private class ModeCallback implements ListView.MultiChoiceModeListener, OnMenuItemClickListener {
-        private DropdownMenu mDropDownMenu;
-        private ActionMode mActionMode;
-        private MenuItem mMoveMenu;
-
-        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
-            getMenuInflater().inflate(R.menu.note_list_options, menu);
-            menu.findItem(R.id.delete).setOnMenuItemClickListener(this);
-            mMoveMenu = menu.findItem(R.id.move);
-            if (mFocusNoteDataItem.getParentId() == Notes.ID_CALL_RECORD_FOLDER
-                    || DataUtils.getUserFolderCount(mContentResolver) == 0) {
-                mMoveMenu.setVisible(false);
-            } else {
-                mMoveMenu.setVisible(true);
-                mMoveMenu.setOnMenuItemClickListener(this);
-            }
-            mActionMode = mode;
-            mNotesListAdapter.setChoiceMode(true);
-            mNotesListView.setLongClickable(false);
-            mAddNewNote.setVisibility(View.GONE);
-
-            View customView = LayoutInflater.from(NotesListActivity.this).inflate(
-                    R.layout.note_list_dropdown_menu, null);
-            mode.setCustomView(customView);
-            mDropDownMenu = new DropdownMenu(NotesListActivity.this,
-                    (Button) customView.findViewById(R.id.selection_menu),
-                    R.menu.note_list_dropdown);
-            mDropDownMenu.setOnDropdownMenuItemClickListener(new PopupMenu.OnMenuItemClickListener(){
-                public boolean onMenuItemClick(final MenuItem item) {
-                    mNotesListAdapter.selectAll(!mNotesListAdapter.isAllSelected());
-                    updateMenu();
-                    return true;
-                }
-
-            });
-            return true;
-        }
-
-        // 更新菜单
-        private void updateMenu() {
-            int selectedCount = mNotesListAdapter.getSelectedCount();
-            // Update dropdown menu
-            String format = getResources().getString(R.string.menu_select_title, selectedCount);
-            mDropDownMenu.setTitle(format); // 更改标题
-            MenuItem item = mDropDownMenu.findItem(R.id.action_select_all);
-            if (item != null) {
-                if (mNotesListAdapter.isAllSelected()) {
-                    item.setChecked(true);
-                    item.setTitle(R.string.menu_deselect_all);
-                } else {
-                    item.setChecked(false);
-                    item.setTitle(R.string.menu_select_all);
-                }
-            }
-        }
-
-        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
-            // TODO Auto-generated method stub
-            return false;
-        }
-
-        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
-            // TODO Auto-generated method stub
-            return false;
-        }
-
-        public void onDestroyActionMode(ActionMode mode) {
-            mNotesListAdapter.setChoiceMode(false);
-            mNotesListView.setLongClickable(true);
-            mAddNewNote.setVisibility(View.VISIBLE);
-        }
-
-        public void finishActionMode() {
-            mActionMode.finish();
-        }
-
-        public void onItemCheckedStateChanged(ActionMode mode, int position, long id,
-                                              boolean checked) {
-            mNotesListAdapter.setCheckedItem(position, checked);
-            updateMenu();
-        }
-
-        public boolean onMenuItemClick(MenuItem item) {
-            if (mNotesListAdapter.getSelectedCount() == 0) {
-                Toast.makeText(NotesListActivity.this, getString(R.string.menu_select_none),
-                        Toast.LENGTH_SHORT).show();
-                return true;
-            }
-
-            switch (item.getItemId()) {
-                case R.id.delete:
-                    AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this);
-                    builder.setTitle(getString(R.string.alert_title_delete));
-                    builder.setIcon(android.R.drawable.ic_dialog_alert);
-                    builder.setMessage(getString(R.string.alert_message_delete_notes,
-                            mNotesListAdapter.getSelectedCount()));
-                    builder.setPositiveButton(android.R.string.ok,
-                            new DialogInterface.OnClickListener() {
-                                public void onClick(DialogInterface dialog,
-                                                    int which) {
-                                    batchDelete();
-                                }
-                            });
-                    builder.setNegativeButton(android.R.string.cancel, null);
-                    builder.show();
-                    break;
-                case R.id.move:
-                    startQueryDestinationFolders();
-                    break;
-                default:
-                    return false;
-            }
-            return true;
-        }
-    }
-
-    private class NewNoteOnTouchListener implements OnTouchListener {
-
-        public boolean onTouch(View v, MotionEvent event) {
-            switch (event.getAction()) {
-                case MotionEvent.ACTION_DOWN: {
-                    Display display = getWindowManager().getDefaultDisplay();
-                    int screenHeight = display.getHeight();
-                    int newNoteViewHeight = mAddNewNote.getHeight();
-                    int start = screenHeight - newNoteViewHeight;
-                    int eventY = start + (int) event.getY();
-                    /**
-                     * Minus TitleBar's height
-                     */
-                    if (mState == ListEditState.SUB_FOLDER) {
-                        eventY -= mTitleBar.getHeight();
-                        start -= mTitleBar.getHeight();
-                    }
-                    /**
-                     * HACKME:When click the transparent part of "New Note" button, dispatch
-                     * the event to the list view behind this button. The transparent part of
-                     * "New Note" button could be expressed by formula y=-0.12x+94锛圲nit:pixel锛�
-                     * and the line top of the button. The coordinate based on left of the "New
-                     * Note" button. The 94 represents maximum height of the transparent part.
-                     * Notice that, if the background of the button changes, the formula should
-                     * also change. This is very bad, just for the UI designer's strong requirement.
-                     */
-                    if (event.getY() < (event.getX() * (-0.12) + 94)) {
-                        View view = mNotesListView.getChildAt(mNotesListView.getChildCount() - 1
-                                - mNotesListView.getFooterViewsCount());
-                        if (view != null && view.getBottom() > start
-                                && (view.getTop() < (start + 94))) {
-                            mOriginY = (int) event.getY();
-                            mDispatchY = eventY;
-                            event.setLocation(event.getX(), mDispatchY);
-                            mDispatch = true;
-                            return mNotesListView.dispatchTouchEvent(event);
-                        }
-                    }
-                    break;
-                }
-                case MotionEvent.ACTION_MOVE: {
-                    if (mDispatch) {
-                        mDispatchY += (int) event.getY() - mOriginY;
-                        event.setLocation(event.getX(), mDispatchY);
-                        return mNotesListView.dispatchTouchEvent(event);
-                    }
-                    break;
-                }
-                default: {
-                    if (mDispatch) {
-                        event.setLocation(event.getX(), mDispatchY);
-                        mDispatch = false;
-                        return mNotesListView.dispatchTouchEvent(event);
-                    }
-                    break;
-                }
-            }
-            return false;
-        }
-
-    };
-
-    private void startAsyncNotesListQuery() {
-        String selection = (mCurrentFolderId == Notes.ID_ROOT_FOLDER) ? ROOT_FOLDER_SELECTION
-                : NORMAL_SELECTION;
-        mBackgroundQueryHandler.startQuery(FOLDER_NOTE_LIST_QUERY_TOKEN, null,
-                Notes.CONTENT_NOTE_URI, NoteItemData.PROJECTION, selection, new String[] {
-                        String.valueOf(mCurrentFolderId)
-                }, NoteColumns.TYPE + " DESC," + NoteColumns.MODIFIED_DATE + " DESC");
-    }
-
-    private final class BackgroundQueryHandler extends AsyncQueryHandler {
-        public BackgroundQueryHandler(ContentResolver contentResolver) {
-            super(contentResolver);
-        }
-
-        @Override
-        protected void onQueryComplete(int token, Object cookie, Cursor cursor) {
-            switch (token) {
-                case FOLDER_NOTE_LIST_QUERY_TOKEN:
-                    mNotesListAdapter.changeCursor(cursor);
-                    break;
-                case FOLDER_LIST_QUERY_TOKEN:
-                    if (cursor != null && cursor.getCount() > 0) {
-                        showFolderListMenu(cursor);
-                    } else {
-                        Log.e(TAG, "Query folder failed");
-                    }
-                    break;
-                default:
-                    return;
-            }
-        }
-    }
-
-    private void showFolderListMenu(Cursor cursor) {
-        AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this);
-        builder.setTitle(R.string.menu_title_select_folder);
-        final FoldersListAdapter adapter = new FoldersListAdapter(this, cursor);
-        builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
-
-            public void onClick(DialogInterface dialog, int which) {
-                DataUtils.batchMoveToFolder(mContentResolver,
-                        mNotesListAdapter.getSelectedItemIds(), adapter.getItemId(which));
-                Toast.makeText(
-                        NotesListActivity.this,
-                        getString(R.string.format_move_notes_to_folder,
-                                mNotesListAdapter.getSelectedCount(),
-                                adapter.getFolderName(NotesListActivity.this, which)),
-                        Toast.LENGTH_SHORT).show();
-                mModeCallBack.finishActionMode();
-            }
-        });
-        builder.show();
-    }
-
-    private void createNewNote() {
-        Intent intent = new Intent(this, NoteEditActivity.class);
-        intent.setAction(Intent.ACTION_INSERT_OR_EDIT);
-        intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mCurrentFolderId);
-        this.startActivityForResult(intent, REQUEST_CODE_NEW_NODE);
-    }
-
-    private void batchDelete() {
-        new AsyncTask<Void, Void, HashSet<AppWidgetAttribute>>() {
-            protected HashSet<AppWidgetAttribute> doInBackground(Void... unused) {
-                HashSet<AppWidgetAttribute> widgets = mNotesListAdapter.getSelectedWidget();
-                if (!isSyncMode()) {
-                    // if not synced, delete notes directly
-                    if (DataUtils.batchDeleteNotes(mContentResolver, mNotesListAdapter
-                            .getSelectedItemIds())) {
-                    } else {
-                        Log.e(TAG, "Delete notes error, should not happens");
-                    }
-                } else {
-                    // in sync mode, we'll move the deleted note into the trash
-                    // folder
-                    if (!DataUtils.batchMoveToFolder(mContentResolver, mNotesListAdapter
-                            .getSelectedItemIds(), Notes.ID_TRASH_FOLER)) {
-                        Log.e(TAG, "Move notes to trash folder error, should not happens");
-                    }
-                }
-                return widgets;
-            }
-
-            @Override
-            protected void onPostExecute(HashSet<AppWidgetAttribute> widgets) {
-                if (widgets != null) {
-                    for (AppWidgetAttribute widget : widgets) {
-                        if (widget.widgetId != AppWidgetManager.INVALID_APPWIDGET_ID
-                                && widget.widgetType != Notes.TYPE_WIDGET_INVALIDE) {
-                            updateWidget(widget.widgetId, widget.widgetType);
-                        }
-                    }
-                }
-                mModeCallBack.finishActionMode();
-            }
-        }.execute();
-    }
-
-    private void deleteFolder(long folderId) {
-        if (folderId == Notes.ID_ROOT_FOLDER) {
-            Log.e(TAG, "Wrong folder id, should not happen " + folderId);
-            return;
-        }
-
-        HashSet<Long> ids = new HashSet<Long>();
-        ids.add(folderId);
-        HashSet<AppWidgetAttribute> widgets = DataUtils.getFolderNoteWidget(mContentResolver,
-                folderId);
-        if (!isSyncMode()) {
-            // if not synced, delete folder directly
-            DataUtils.batchDeleteNotes(mContentResolver, ids);
-        } else {
-            // in sync mode, we'll move the deleted folder into the trash folder
-            DataUtils.batchMoveToFolder(mContentResolver, ids, Notes.ID_TRASH_FOLER);
-        }
-        if (widgets != null) {
-            for (AppWidgetAttribute widget : widgets) {
-                if (widget.widgetId != AppWidgetManager.INVALID_APPWIDGET_ID
-                        && widget.widgetType != Notes.TYPE_WIDGET_INVALIDE) {
-                    updateWidget(widget.widgetId, widget.widgetType);
-                }
-            }
-        }
-    }
-
-    private void openNode(NoteItemData data) {
-        Intent intent = new Intent(this, NoteEditActivity.class);
-        intent.setAction(Intent.ACTION_VIEW);
-        intent.putExtra(Intent.EXTRA_UID, data.getId());
-        this.startActivityForResult(intent, REQUEST_CODE_OPEN_NODE);
-    }
-
-    private void openFolder(NoteItemData data) {
-        mCurrentFolderId = data.getId();
-        startAsyncNotesListQuery();
-        if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) {
-            mState = ListEditState.CALL_RECORD_FOLDER;
-            mAddNewNote.setVisibility(View.GONE);
-        } else {
-            mState = ListEditState.SUB_FOLDER;
-        }
-        if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) {
-            mTitleBar.setText(R.string.call_record_folder_name);
-        } else {
-            mTitleBar.setText(data.getSnippet());
-        }
-        mTitleBar.setVisibility(View.VISIBLE);
-    }
-
-    public void onClick(View v) {
-        switch (v.getId()) {
-            case R.id.btn_new_note:
-                createNewNote();
-                break;
-            default:
-                break;
-        }
-    }
-
-    private void showSoftInput() {
-        InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
-        if (inputMethodManager != null) {
-            inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
-        }
-    }
-
-    private void hideSoftInput(View view) {
-        InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
-        inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
-    }
-
-    private void showCreateOrModifyFolderDialog(final boolean create) {
-        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
-        View view = LayoutInflater.from(this).inflate(R.layout.dialog_edit_text, null);
-        final EditText etName = (EditText) view.findViewById(R.id.et_foler_name);
-        showSoftInput();
-        if (!create) {
-            if (mFocusNoteDataItem != null) {
-                etName.setText(mFocusNoteDataItem.getSnippet());
-                builder.setTitle(getString(R.string.menu_folder_change_name));
-            } else {
-                Log.e(TAG, "The long click data item is null");
-                return;
-            }
-        } else {
-            etName.setText("");
-            builder.setTitle(this.getString(R.string.menu_create_folder));
-        }
-
-        builder.setPositiveButton(android.R.string.ok, null);
-        builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
-            public void onClick(DialogInterface dialog, int which) {
-                hideSoftInput(etName);
-            }
-        });
-
-        final Dialog dialog = builder.setView(view).show();
-        final Button positive = (Button)dialog.findViewById(android.R.id.button1);
-        positive.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                hideSoftInput(etName);
-                String name = etName.getText().toString();
-                if (DataUtils.checkVisibleFolderName(mContentResolver, name)) {
-                    Toast.makeText(NotesListActivity.this, getString(R.string.folder_exist, name),
-                            Toast.LENGTH_LONG).show();
-                    etName.setSelection(0, etName.length());
-                    return;
-                }
-                if (!create) {
-                    if (!TextUtils.isEmpty(name)) {
-                        ContentValues values = new ContentValues();
-                        values.put(NoteColumns.SNIPPET, name);
-                        values.put(NoteColumns.TYPE, Notes.TYPE_FOLDER);
-                        values.put(NoteColumns.LOCAL_MODIFIED, 1);
-                        mContentResolver.update(Notes.CONTENT_NOTE_URI, values, NoteColumns.ID
-                                + "=?", new String[] {
-                                String.valueOf(mFocusNoteDataItem.getId())
-                        });
-                    }
-                } else if (!TextUtils.isEmpty(name)) {
-                    ContentValues values = new ContentValues();
-                    values.put(NoteColumns.SNIPPET, name);
-                    values.put(NoteColumns.TYPE, Notes.TYPE_FOLDER);
-                    mContentResolver.insert(Notes.CONTENT_NOTE_URI, values);
-                }
-                dialog.dismiss();
-            }
-        });
-
-        if (TextUtils.isEmpty(etName.getText())) {
-            positive.setEnabled(false);
-        }
-        /**
-         * When the name edit text is null, disable the positive button
-         */
-        etName.addTextChangedListener(new TextWatcher() {
-            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
-                // TODO Auto-generated method stub
-
-            }
-
-            public void onTextChanged(CharSequence s, int start, int before, int count) {
-                if (TextUtils.isEmpty(etName.getText())) {
-                    positive.setEnabled(false);
-                } else {
-                    positive.setEnabled(true);
-                }
-            }
-
-            public void afterTextChanged(Editable s) {
-                // TODO Auto-generated method stub
-
-            }
-        });
-    }
-
-    /* (non-Javadoc)
-     * @see android.app.Activity#onBackPressed()
-     * 按返回键时根据情况更改类中的数据
-     */
-    @Override
-    public void onBackPressed() { switch (mState) {
-        case SUB_FOLDER:
-            mCurrentFolderId = Notes.ID_ROOT_FOLDER;
-            mState = ListEditState.NOTE_LIST;
-            startAsyncNotesListQuery();
-            mTitleBar.setVisibility(View.GONE);
-            break;
-        case CALL_RECORD_FOLDER:
-            mCurrentFolderId = Notes.ID_ROOT_FOLDER;
-            mState = ListEditState.NOTE_LIST;
-            mAddNewNote.setVisibility(View.VISIBLE);
-            mTitleBar.setVisibility(View.GONE);
-            startAsyncNotesListQuery();
-            break;
-        case NOTE_LIST:
-            super.onBackPressed();
-            break;
-        default:
-            break;
-    }
-    }
-
-    /**
-     * @param appWidgetId
-     * @param appWidgetType
-     * 根据不同类型的widget更新插件，通过intent传送数据
-     */
-    private void updateWidget(int appWidgetId, int appWidgetType) {
-        Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
-        if (appWidgetType == Notes.TYPE_WIDGET_2X) {
-            intent.setClass(this, NoteWidgetProvider_2x.class);
-        } else if (appWidgetType == Notes.TYPE_WIDGET_4X) {
-            intent.setClass(this, NoteWidgetProvider_4x.class);
-        } else {
-            Log.e(TAG, "Unspported widget type");
-            return;
-        }
-
-        intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] {
-                appWidgetId
-        });
-
-        sendBroadcast(intent);
-        setResult(RESULT_OK, intent);
-    }
-
-    /**
-     * 声明监听器，建立菜单，包括名称，视图，删除操作，更改名称操作；
-     */
-    private final OnCreateContextMenuListener mFolderOnCreateContextMenuListener = new OnCreateContextMenuListener() {
-        public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
-            if (mFocusNoteDataItem != null) {
-                menu.setHeaderTitle(mFocusNoteDataItem.getSnippet());
-                menu.add(0, MENU_FOLDER_VIEW, 0, R.string.menu_folder_view);
-                menu.add(0, MENU_FOLDER_DELETE, 0, R.string.menu_folder_delete);
-                menu.add(0, MENU_FOLDER_CHANGE_NAME, 0, R.string.menu_folder_change_name);
-            }
-        }
-    };
-
-    @Override
-    public void onContextMenuClosed(Menu menu) {
-        if (mNotesListView != null) {
-            mNotesListView.setOnCreateContextMenuListener(null);
-        }
-        super.onContextMenuClosed(menu);
-    }
-
-    /* (non-Javadoc)
-     * @see android.app.Activity#onContextItemSelected(android.view.MenuItem)
-     * 针对menu中不同的选择进行不同的处理，里面详细注释
-     */
-    @Override
-    public boolean onContextItemSelected(MenuItem item) {
-        if (mFocusNoteDataItem == null) {
-            Log.e(TAG, "The long click data item is null");
-            return false;
-        }
-        switch (item.getItemId()) {
-            case MENU_FOLDER_VIEW:
-                openFolder(mFocusNoteDataItem);//打开对应文件
-                break;
-            case MENU_FOLDER_DELETE:
-                AlertDialog.Builder builder = new AlertDialog.Builder(this);//设置确认是否删除的对话框
-                builder.setTitle(getString(R.string.alert_title_delete));
-                builder.setIcon(android.R.drawable.ic_dialog_alert);
-                builder.setMessage(getString(R.string.alert_message_delete_folder));
-                builder.setPositiveButton(android.R.string.ok,
-                        new DialogInterface.OnClickListener() {
-                            public void onClick(DialogInterface dialog, int which) {
-                                deleteFolder(mFocusNoteDataItem.getId());
-                            }
-                        });
-                builder.setNegativeButton(android.R.string.cancel, null);
-                builder.show();//显示对话框
-                break;
-            case MENU_FOLDER_CHANGE_NAME:
-                showCreateOrModifyFolderDialog(false);
-                break;
-            default:
-                break;
-        }
-
-        return true;
-    }
-
-    @Override
-    public boolean onPrepareOptionsMenu(Menu menu) {
-        menu.clear();
-        if (mState == ListEditState.NOTE_LIST) {
-            getMenuInflater().inflate(R.menu.note_list, menu);
-            // set sync or sync_cancel
-            menu.findItem(R.id.menu_sync).setTitle(
-                    GTaskSyncService.isSyncing() ? R.string.menu_sync_cancel : R.string.menu_sync);
-        } else if (mState == ListEditState.SUB_FOLDER) {
-            getMenuInflater().inflate(R.menu.sub_folder, menu);
-        } else if (mState == ListEditState.CALL_RECORD_FOLDER) {
-            getMenuInflater().inflate(R.menu.call_record_folder, menu);
-        } else {
-            Log.e(TAG, "Wrong state:" + mState);
-        }
-        return true;
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            case R.id.menu_new_folder: {
-                showCreateOrModifyFolderDialog(true);
-                break;
-            }
-            case R.id.menu_export_text: {
-                exportNoteToText();
-                break;
-            }
-            case R.id.menu_sync: {
-                if (isSyncMode()) {
-                    if (TextUtils.equals(item.getTitle(), getString(R.string.menu_sync))) {
-                        GTaskSyncService.startSync(this);
-                    } else {
-                        GTaskSyncService.cancelSync(this);
-                    }
-                } else {
-                    startPreferenceActivity();
-                }
-                break;
-            }
-            case R.id.menu_setting: {
-                startPreferenceActivity();
-                break;
-            }
-            case R.id.menu_new_note: {
-                createNewNote();
-                break;
-            }
-            case R.id.menu_search:
-                onSearchRequested();
-                break;
-            default:
-                break;
-        }
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * @see android.app.Activity#onSearchRequested()
-     * 直接调用startSearch函数
-     */
-    @Override
-    public boolean onSearchRequested() {
-        startSearch(null, false, null /* appData */, false);
-        return true;
-    }
-
-    /**
-     * 函数功能：实现将便签导出到文本功能
-     */
-    private void exportNoteToText() {
-        final BackupUtils backup = BackupUtils.getInstance(NotesListActivity.this);
-        new AsyncTask<Void, Void, Integer>() {
-
-            @Override
-            protected Integer doInBackground(Void... unused) {
-                return backup.exportToText();
-            }
-
-            @Override
-            protected void onPostExecute(Integer result) {
-                if (result == BackupUtils.STATE_SD_CARD_UNMOUONTED) {
-                    AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this);
-                    builder.setTitle(NotesListActivity.this
-                            .getString(R.string.failed_sdcard_export));
-                    builder.setMessage(NotesListActivity.this
-                            .getString(R.string.error_sdcard_unmounted));
-                    builder.setPositiveButton(android.R.string.ok, null);
-                    builder.show();
-                } else if (result == BackupUtils.STATE_SUCCESS) {
-                    AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this);
-                    builder.setTitle(NotesListActivity.this
-                            .getString(R.string.success_sdcard_export));
-                    builder.setMessage(NotesListActivity.this.getString(
-                            R.string.format_exported_file_location, backup
-                                    .getExportedTextFileName(), backup.getExportedTextFileDir()));
-                    builder.setPositiveButton(android.R.string.ok, null);
-                    builder.show();
-                } else if (result == BackupUtils.STATE_SYSTEM_ERROR) {
-                    AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this);
-                    builder.setTitle(NotesListActivity.this
-                            .getString(R.string.failed_sdcard_export));
-                    builder.setMessage(NotesListActivity.this
-                            .getString(R.string.error_sdcard_export));
-                    builder.setPositiveButton(android.R.string.ok, null);
-                    builder.show();
-                }
-            }
-
-        }.execute();
-    }
-
-    /**
-     * @return
-     * 功能：判断是否正在同步
-     */
-    private boolean isSyncMode() {
-        return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0;
-    }
-
-    /**
-     * 功能：跳转到PreferenceActivity界面
-     */
-    private void startPreferenceActivity() {
-        Activity from = getParent() != null ? getParent() : this;
-        Intent intent = new Intent(from, NotesPreferenceActivity.class);
-        from.startActivityIfNeeded(intent, -1);
-    }
-
-    /**
-     * @author k
-     * 函数功能：实现对便签列表项的点击事件（短按）
-     */
-    private class OnListItemClickListener implements OnItemClickListener {
-
-        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-            if (view instanceof NotesListItem) {
-                NoteItemData item = ((NotesListItem) view).getItemData();
-                if (mNotesListAdapter.isInChoiceMode()) {
-                    if (item.getType() == Notes.TYPE_NOTE) {
-                        position = position - mNotesListView.getHeaderViewsCount();
-                        mModeCallBack.onItemCheckedStateChanged(null, position, id,
-                                !mNotesListAdapter.isSelectedItem(position));
-                    }
-                    return;
-                }
-
-                switch (mState) {
-                    case NOTE_LIST:
-                        if (item.getType() == Notes.TYPE_FOLDER
-                                || item.getType() == Notes.TYPE_SYSTEM) {
-                            openFolder(item);
-                        } else if (item.getType() == Notes.TYPE_NOTE) {
-                            openNode(item);
-                        } else {
-                            Log.e(TAG, "Wrong note type in NOTE_LIST");
-                        }
-                        break;
-                    case SUB_FOLDER:
-                    case CALL_RECORD_FOLDER:
-                        if (item.getType() == Notes.TYPE_NOTE) {
-                            openNode(item);
-                        } else {
-                            Log.e(TAG, "Wrong note type in SUB_FOLDER");
-                        }
-                        break;
-                    default:
-                        break;
-                }
-            }
-        }
-
-    }
-
-    /**
-     * 查询目标文件
-     */
-    private void startQueryDestinationFolders() {
-        String selection = NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>? AND " + NoteColumns.ID + "<>?";
-        selection = (mState == ListEditState.NOTE_LIST) ? selection:
-                "(" + selection + ") OR (" + NoteColumns.ID + "=" + Notes.ID_ROOT_FOLDER + ")";
-
-        mBackgroundQueryHandler.startQuery(FOLDER_LIST_QUERY_TOKEN,
-                null,
-                Notes.CONTENT_NOTE_URI,
-                FoldersListAdapter.PROJECTION,
-                selection,
-                new String[] {
-                        String.valueOf(Notes.TYPE_FOLDER),
-                        String.valueOf(Notes.ID_TRASH_FOLER),
-                        String.valueOf(mCurrentFolderId)
-                },
-                NoteColumns.MODIFIED_DATE + " DESC");
-    }
-
-    /* (non-Javadoc)
-     * @see android.widget.AdapterView.OnItemLongClickListener#onItemLongClick(android.widget.AdapterView, android.view.View, int, long)
-     * 长按某一项时进行的操作
-     * 如果长按的是便签，则通过ActionMode菜单实现；如果长按的是文件夹，则通过ContextMenu菜单实现；
-     *        具体ActionMOde菜单和ContextMenu菜单的详细见精度笔记
-     */
-    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {// 函数：实现长按项目的点击事件。如果长按的是便签，则通过ActionMode菜单实现；如果长按的是文件夹，则通过ContextMenu菜单实现。
-        if (view instanceof NotesListItem) {
-            mFocusNoteDataItem = ((NotesListItem) view).getItemData();
-            if (mFocusNoteDataItem.getType() == Notes.TYPE_NOTE && !mNotesListAdapter.isInChoiceMode()) {
-                if (mNotesListView.startActionMode(mModeCallBack) != null) {
-                    mModeCallBack.onItemCheckedStateChanged(null, position, id, true);
-                    mNotesListView.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
-                } else {
-                    Log.e(TAG, "startActionMode fails");
-                }
-            } else if (mFocusNoteDataItem.getType() == Notes.TYPE_FOLDER) {
-                mNotesListView.setOnCreateContextMenuListener(mFolderOnCreateContextMenuListener);
-            }
-        }
-        return false;
-    }
-}
\ No newline at end of file
diff --git a/doc/cyw.readcode.ui/ui/NotesListAdapter.java b/doc/cyw.readcode.ui/ui/NotesListAdapter.java
deleted file mode 100644
index 5c5d3ee..0000000
--- a/doc/cyw.readcode.ui/ui/NotesListAdapter.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.ui;
-
-import android.content.Context;
-import android.database.Cursor;
-import android.util.Log;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.CursorAdapter;
-
-
-import net.micode.notes.data.Notes;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-
-
-/*
- * 功能：直译为便签表连接器，继承了CursorAdapter，它为cursor和ListView提供了连接的桥梁。
- *     所以NotesListAdapter实现的是鼠标和编辑便签链接的桥梁
- */
-public class NotesListAdapter extends CursorAdapter {
-    private static final String TAG = "NotesListAdapter";
-    private Context mContext;
-    private HashMap<Integer, Boolean> mSelectedIndex;
-    private int mNotesCount;    //便签数
-    private boolean mChoiceMode;   //选择模式标记
-
-    /*
-     * 桌面widget的属性，包括编号和类型
-     */
-    public static class AppWidgetAttribute {
-        public int widgetId;
-        public int widgetType;
-    };
-
-    /*
-     * 函数功能：初始化便签链接器
-     * 函数实现：根据传进来的内容设置相关变量
-     */
-    public NotesListAdapter(Context context) {
-        super(context, null);  //父类对象置空
-        mSelectedIndex = new HashMap<Integer, Boolean>();  //新建选项下标的hash表
-        mContext = context;
-        mNotesCount = 0;
-    }
-
-    @Override
-    /*
-     * 函数功能：新建一个视图来存储光标所指向的数据
-     * 函数实现：使用兄弟类NotesListItem新建一个项目选项
-     */
-    public View newView(Context context, Cursor cursor, ViewGroup parent) {
-        return new NotesListItem(context);
-    }
-
-    /*
-     * 函数功能：将已经存在的视图和鼠标指向的数据进行捆绑
-     * 函数实现：如下注释
-     */
-    @Override
-    public void bindView(View view, Context context, Cursor cursor) {
-        if (view instanceof NotesListItem) {
-            //若view是NotesListItem的一个实例
-            NoteItemData itemData = new NoteItemData(context, cursor);
-            ((NotesListItem) view).bind(context, itemData, mChoiceMode,
-                    isSelectedItem(cursor.getPosition()));
-            //则新建一个项目选项并且用bind跟将view和鼠标，内容，便签数据捆绑在一起
-        }
-    }
-
-    /*
-     * 函数功能：设置勾选框
-     * 函数实现：如下注释
-     */
-    public void setCheckedItem(final int position, final boolean checked) {
-        mSelectedIndex.put(position, checked);
-        //根据定位和是否勾选设置下标
-        notifyDataSetChanged();
-        //在修改后刷新activity
-    }
-
-    /*
-     * 函数功能：判断单选按钮是否勾选
-     */
-    public boolean isInChoiceMode() {
-        return mChoiceMode;
-    }
-
-    /*
-     * 函数功能：设置单项选项框
-     * 函数实现：重置下标并且根据参数mode设置选项
-     */
-    public void setChoiceMode(boolean mode) {
-        mSelectedIndex.clear();
-        mChoiceMode = mode;
-    }
-
-    /*
-     * 函数功能：选择全部选项
-     * 函数实现：如下注释
-     */
-    public void selectAll(boolean checked) {
-        Cursor cursor = getCursor();
-        //获取光标位置
-        for (int i = 0; i < getCount(); i++) {
-            if (cursor.moveToPosition(i)) {
-                if (NoteItemData.getNoteType(cursor) == Notes.TYPE_NOTE) {
-                    setCheckedItem(i, checked);
-                }
-            }
-        }
-        //遍历所有光标可用的位置在判断为便签类型之后勾选单项框
-    }
-
-    /*
-     * 函数功能：建立选择项的下标列表
-     * 函数实现：如下注释
-     */
-    public HashSet<Long> getSelectedItemIds() {
-        HashSet<Long> itemSet = new HashSet<Long>();
-        //建立hash表
-        for (Integer position : mSelectedIndex.keySet()) {
-            //遍历所有的关键
-            if (mSelectedIndex.get(position) == true) {
-                //若光标位置可用
-                Long id = getItemId(position);
-                if (id == Notes.ID_ROOT_FOLDER) {
-                    //原文件不需要添加
-                    Log.d(TAG, "Wrong item id, should not happen");
-                } else {
-                    itemSet.add(id);
-                }
-                //则将id该下标假如选项集合中
-
-            }
-        }
-
-        return itemSet;
-    }
-
-    /*
-     * 函数功能：建立桌面Widget的选项表
-     * 函数实现：如下注释
-     */
-    public HashSet<AppWidgetAttribute> getSelectedWidget() {
-        HashSet<AppWidgetAttribute> itemSet = new HashSet<AppWidgetAttribute>();
-        for (Integer position : mSelectedIndex.keySet()) {
-            if (mSelectedIndex.get(position) == true) {
-                Cursor c = (Cursor) getItem(position);
-                //以上4句和getSelectedItemIds一样，不再重复
-                if (c != null) {
-                    //光标位置可用的话就建立新的Widget属性并编辑下标和类型，最后添加到选项集中
-                    AppWidgetAttribute widget = new AppWidgetAttribute();
-                    NoteItemData item = new NoteItemData(mContext, c);
-                    widget.widgetId = item.getWidgetId();
-                    widget.widgetType = item.getWidgetType();
-                    itemSet.add(widget);
-                    /**
-                     * Don't close cursor here, only the adapter could close it
-                     */
-                } else {
-                    Log.e(TAG, "Invalid cursor");
-                    return null;
-                }
-            }
-        }
-        return itemSet;
-    }
-
-    /*
-     * 函数功能：获取选项个数
-     * 函数实现：如下注释
-     */
-    public int getSelectedCount() {
-        Collection<Boolean> values = mSelectedIndex.values();
-        //首先获取选项下标的值
-        if (null == values) {
-            return 0;
-        }
-        Iterator<Boolean> iter = values.iterator();
-        //初始化叠加器
-        int count = 0;
-        while (iter.hasNext()) {
-            if (true == iter.next()) {
-                //若value值为真计数+1
-                count++;
-            }
-        }
-        return count;
-    }
-
-    /*
-     * 函数功能：判断是否全部选中
-     * 函数实现：如下注释
-     */
-    public boolean isAllSelected() {
-        int checkedCount = getSelectedCount();
-        return (checkedCount != 0 && checkedCount == mNotesCount);
-        //获取选项数看是否等于便签的个数
-    }
-
-    /*
-     * 函数功能：判断是否为选项表
-     * 函数实现：通过传递的下标来确定
-     */
-    public boolean isSelectedItem(final int position) {
-        if (null == mSelectedIndex.get(position)) {
-            return false;
-        }
-        return mSelectedIndex.get(position);
-    }
-
-    @Override
-    /*
-     * 函数功能：在activity内容发生局部变动的时候回调该函数计算便签的数量
-     * 函数实现：如下注释
-     */
-    protected void onContentChanged() {
-        super.onContentChanged();
-        //执行基类函数
-        calcNotesCount();
-    }
-
-    @Override
-    /*
-     * 函数功能：在activity光标发生局部变动的时候回调该函数计算便签的数量
-     */
-    public void changeCursor(Cursor cursor) {
-        super.changeCursor(cursor);
-        //执行基类函数
-        calcNotesCount();
-    }
-
-    /*
-     * 函数功能：计算便签数量
-     *
-     */
-    private void calcNotesCount() {
-        mNotesCount = 0;
-        for (int i = 0; i < getCount(); i++) {
-            //获取总数同时遍历
-            Cursor c = (Cursor) getItem(i);
-            if (c != null) {
-                if (NoteItemData.getNoteType(c) == Notes.TYPE_NOTE) {
-                    mNotesCount++;
-                    //若该位置不为空并且文本类型为便签就+1
-                }
-            } else {
-                Log.e(TAG, "Invalid cursor");
-                return;
-            }
-            //否则报错
-        }
-    }
-}
diff --git a/doc/cyw.readcode.ui/ui/NotesListItem.java b/doc/cyw.readcode.ui/ui/NotesListItem.java
deleted file mode 100644
index b89acf7..0000000
--- a/doc/cyw.readcode.ui/ui/NotesListItem.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.ui;
-
-import android.content.Context;
-import android.text.format.DateUtils;
-import android.view.View;
-import android.widget.CheckBox;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import net.micode.notes.R;
-import net.micode.notes.data.Notes;
-import net.micode.notes.tool.DataUtils;
-import net.micode.notes.tool.ResourceParser.NoteItemBgResources;
-
-
-//创建便签列表项目选项
-public class NotesListItem extends LinearLayout {
-    private ImageView mAlert;//闹钟图片
-    private TextView mTitle;  //标题
-    private TextView mTime;   //时间
-    private TextView mCallName;    //
-    private NoteItemData mItemData; //标签数据
-    private CheckBox mCheckBox;    //打钩框
-
-    /*初始化基本信息*/
-    public NotesListItem(Context context) {
-        super(context);   //super()它的主要作用是调整调用父类构造函数的顺序
-        inflate(context, R.layout.note_item, this);//Inflate可用于将一个xml中定义的布局控件找出来,这里的xml是r。layout
-        //findViewById用于从contentView中查找指定ID的View，转换出来的形式根据需要而定;
-        mAlert = (ImageView) findViewById(R.id.iv_alert_icon);
-        mTitle = (TextView) findViewById(R.id.tv_title);
-        mTime = (TextView) findViewById(R.id.tv_time);
-        mCallName = (TextView) findViewById(R.id.tv_name);
-        mCheckBox = (CheckBox) findViewById(android.R.id.checkbox);
-    }
-    ///根据data的属性对各个控件的属性的控制，主要是可见性Visibility，内容setText，格式setTextAppearance
-    public void bind(Context context, NoteItemData data, boolean choiceMode, boolean checked) {
-        if (choiceMode && data.getType() == Notes.TYPE_NOTE) {
-            mCheckBox.setVisibility(View.VISIBLE);  ///设置可见行为可见
-            mCheckBox.setChecked(checked);         ///格子打钩
-        } else {
-            mCheckBox.setVisibility(View.GONE);
-        }
-
-        mItemData = data;
-        ///设置控件属性，一共三种情况，由data的id和父id是否与保存到文件夹的id一致来决定
-        if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) {
-            mCallName.setVisibility(View.GONE);
-            mAlert.setVisibility(View.VISIBLE);
-            //设置该textview的style
-            mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem);
-            //settext为设置内容
-            mTitle.setText(context.getString(R.string.call_record_folder_name)
-                    + context.getString(R.string.format_folder_files_count, data.getNotesCount()));
-            mAlert.setImageResource(R.drawable.call_record);
-        } else if (data.getParentId() == Notes.ID_CALL_RECORD_FOLDER) {
-            mCallName.setVisibility(View.VISIBLE);
-            mCallName.setText(data.getCallName());
-            mTitle.setTextAppearance(context,R.style.TextAppearanceSecondaryItem);
-            mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet()));
-            ///关于闹钟的设置
-            if (data.hasAlert()) {
-                mAlert.setImageResource(R.drawable.clock);//图片来源的设置
-                mAlert.setVisibility(View.VISIBLE);
-            } else {
-                mAlert.setVisibility(View.GONE);
-            }
-        } else {
-            mCallName.setVisibility(View.GONE);
-            mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem);
-            ///设置title格式
-            if (data.getType() == Notes.TYPE_FOLDER) {
-                mTitle.setText(data.getSnippet()
-                        + context.getString(R.string.format_folder_files_count,
-                        data.getNotesCount()));
-                mAlert.setVisibility(View.GONE);
-            } else {
-                mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet()));
-                if (data.hasAlert()) {
-                    mAlert.setImageResource(R.drawable.clock);///设置图片来源
-                    mAlert.setVisibility(View.VISIBLE);
-                } else {
-                    mAlert.setVisibility(View.GONE);
-                }
-            }
-        }
-        ///设置内容，获取相关时间，从data里编辑的日期中获取
-        mTime. setText(DateUtils.getRelativeTimeSpanString(data.getModifiedDate()));
-
-        setBackground(data);
-    }
-    //根据data的文件属性来设置背景
-    private void setBackground(NoteItemData data) {
-        int id = data.getBgColorId();
-        //，若是note型文件，则4种情况，对于4种不同情况的背景来源
-        if (data.getType() == Notes.TYPE_NOTE) {
-            //单个数据并且只有一个子文件夹
-            if (data.isSingle() || data.isOneFollowingFolder()) {
-                setBackgroundResource(NoteItemBgResources.getNoteBgSingleRes(id));
-            } else if (data.isLast()) {//是最后一个数据
-                setBackgroundResource(NoteItemBgResources.getNoteBgLastRes(id));
-            } else if (data.isFirst() || data.isMultiFollowingFolder()) {//是一个数据并有多个子文件夹
-                setBackgroundResource(NoteItemBgResources.getNoteBgFirstRes(id));
-            } else {
-                setBackgroundResource(NoteItemBgResources.getNoteBgNormalRes(id));
-            }
-        } else {
-            //若不是note直接调用文件夹的背景来源
-            setBackgroundResource(NoteItemBgResources.getFolderBgRes());
-        }
-    }
-    public NoteItemData getItemData() {
-        return mItemData;
-    }//返回当前便签的数据信息
-}
diff --git a/doc/cyw.readcode.ui/ui/NotesPreferenceActivity.java b/doc/cyw.readcode.ui/ui/NotesPreferenceActivity.java
deleted file mode 100644
index 75cfd3d..0000000
--- a/doc/cyw.readcode.ui/ui/NotesPreferenceActivity.java
+++ /dev/null
@@ -1,530 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.ui;
-
-import android.accounts.Account;
-import android.accounts.AccountManager;
-import android.app.ActionBar;
-import android.app.AlertDialog;
-import android.content.BroadcastReceiver;
-import android.content.ContentValues;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.SharedPreferences;
-import android.os.Bundle;
-import android.preference.Preference;
-import android.preference.Preference.OnPreferenceClickListener;
-import android.preference.PreferenceActivity;
-import android.preference.PreferenceCategory;
-import android.text.TextUtils;
-import android.text.format.DateFormat;
-import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.Button;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import net.micode.notes.R;
-import net.micode.notes.data.Notes;
-import net.micode.notes.data.Notes.NoteColumns;
-import net.micode.notes.gtask.remote.GTaskSyncService;
-
-/*
- *该类功能：NotesPreferenceActivity，在小米便签中主要实现的是对背景颜色和字体大小的数据储存。
- *       继承了PreferenceActivity主要功能为对系统信息和配置进行自动保存的Activity
- */
-public class NotesPreferenceActivity extends PreferenceActivity {
-    public static final String PREFERENCE_NAME = "notes_preferences";
-    //优先名
-    public static final String PREFERENCE_SYNC_ACCOUNT_NAME = "pref_key_account_name";
-    //同步账号
-    public static final String PREFERENCE_LAST_SYNC_TIME = "pref_last_sync_time";
-    //同步时间
-    public static final String PREFERENCE_SET_BG_COLOR_KEY = "pref_key_bg_random_appear";
-
-    private static final String PREFERENCE_SYNC_ACCOUNT_KEY = "pref_sync_account_key";
-    //同步密码
-    private static final String AUTHORITIES_FILTER_KEY = "authorities";
-    //本地密码
-    private PreferenceCategory mAccountCategory;
-    //账户分组
-    private GTaskReceiver mReceiver;
-    //同步任务接收器
-    private Account[] mOriAccounts;
-    //账户
-    private boolean mHasAddedAccount;
-    //账户的hash标记
-
-    @Override
-    /*
-     *函数功能：创建一个activity，在函数里要完成所有的正常静态设置
-     *参数：Bundle icicle：存放了 activity 当前的状态
-     *函数实现：如下注释
-     */
-    protected void onCreate(Bundle icicle) {
-        //先执行父类的创建函数
-        super.onCreate(icicle);
-
-        /* using the app icon for navigation */
-        getActionBar().setDisplayHomeAsUpEnabled(true);
-        //给左上角图标的左边加上一个返回的图标
-
-        addPreferencesFromResource(R.xml.preferences);
-        //添加xml来源并显示 xml
-        mAccountCategory = (PreferenceCategory) findPreference(PREFERENCE_SYNC_ACCOUNT_KEY);
-        //根据同步账户关键码来初始化分组
-        mReceiver = new GTaskReceiver();
-        IntentFilter filter = new IntentFilter();
-        filter.addAction(GTaskSyncService.GTASK_SERVICE_BROADCAST_NAME);
-        registerReceiver(mReceiver, filter);
-        //初始化同步组件
-
-        mOriAccounts = null;
-        View header = LayoutInflater.from(this).inflate(R.layout.settings_header, null);
-        //获取listvivew，ListView的作用:用于列出所有选择
-        getListView().addHeaderView(header, null, true);
-        //在listview组件上方添加其他组件
-    }
-
-    @Override
-    /*
-     * 函数功能：activity交互功能的实现，用于接受用户的输入
-     * 函数实现：如下注释
-     */
-    protected void onResume() {
-        //先执行父类 的交互实现
-        super.onResume();
-
-        // need to set sync account automatically if user has added a new
-        // account
-        if (mHasAddedAccount) {
-            //若用户新加了账户则自动设置同步账户
-            Account[] accounts = getGoogleAccounts();
-            //获取google同步账户
-            if (mOriAccounts != null && accounts.length > mOriAccounts.length) {
-                //若原账户不为空且当前账户有增加
-                for (Account accountNew : accounts) {
-                    boolean found = false;
-                    for (Account accountOld : mOriAccounts) {
-                        if (TextUtils.equals(accountOld.name, accountNew.name)) {
-                            //更新账户
-                            found = true;
-                            break;
-                        }
-                    }
-                    if (!found) {
-                        setSyncAccount(accountNew.name);
-                        //若是没有找到旧的账户，那么同步账号中就只添加新账户
-                        break;
-                    }
-                }
-            }
-        }
-
-        refreshUI();
-        //刷新标签界面
-    }
-
-    @Override
-    /*
-     * 函数功能：销毁一个activity
-     * 函数实现：如下注释
-     */
-    protected void onDestroy() {
-        if (mReceiver != null) {
-            unregisterReceiver(mReceiver);
-            //注销接收器
-        }
-        super.onDestroy();
-        //执行父类的销毁动作
-    }
-
-    /*
-     * 函数功能：重新设置账户信息
-     * 函数实现：如下注释
-     */
-    private void loadAccountPreference() {
-        mAccountCategory.removeAll();
-        //销毁所有的分组
-        Preference accountPref = new Preference(this);
-        //建立首选项
-        final String defaultAccount = getSyncAccountName(this);
-        accountPref.setTitle(getString(R.string.preferences_account_title));
-        accountPref.setSummary(getString(R.string.preferences_account_summary));
-        //设置首选项的大标题和小标题
-        accountPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
-            public boolean onPreferenceClick(Preference preference) {
-                //建立监听器
-                if (!GTaskSyncService.isSyncing()) {
-                    if (TextUtils.isEmpty(defaultAccount)) {
-                        // the first time to set account
-                        //若是第一次建立账户显示选择账户提示对话框
-                        showSelectAccountAlertDialog();
-                    } else {
-                        // if the account has already been set, we need to promp
-                        // user about the risk
-                        //若是已经建立则显示修改对话框并进行修改操作
-                        showChangeAccountConfirmAlertDialog();
-                    }
-                } else {
-                    //若在没有同步的情况下，则在toast中显示不能修改
-                    Toast.makeText(NotesPreferenceActivity.this,
-                                    R.string.preferences_toast_cannot_change_account, Toast.LENGTH_SHORT)
-                            .show();
-                }
-                return true;
-            }
-        });
-
-        //根据新建首选项编辑新的账户分组
-        mAccountCategory.addPreference(accountPref);
-    }
-
-    /*
-     *函数功能：设置按键的状态和最后同步的时间
-     *函数实现：如下注释
-     */
-    private void loadSyncButton() {
-        Button syncButton = (Button) findViewById(R.id.preference_sync_button);
-        TextView lastSyncTimeView = (TextView) findViewById(R.id.prefenerece_sync_status_textview);
-        //获取同步按钮控件和最终同步时间的的窗口
-        // set button state
-        //设置按钮的状态
-        if (GTaskSyncService.isSyncing()) {
-            //若是在同步状态下
-            syncButton.setText(getString(R.string.preferences_button_sync_cancel));
-            syncButton.setOnClickListener(new View.OnClickListener() {
-                public void onClick(View v) {
-                    GTaskSyncService.cancelSync(NotesPreferenceActivity.this);
-                }
-            });
-            //设置按钮显示的文本为“取消同步”以及监听器
-        } else {
-            syncButton.setText(getString(R.string.preferences_button_sync_immediately));
-            syncButton.setOnClickListener(new View.OnClickListener() {
-                public void onClick(View v) {
-                    GTaskSyncService.startSync(NotesPreferenceActivity.this);
-                }
-            });
-            //若是不同步则设置按钮显示的文本为“立即同步”以及对应监听器
-        }
-        syncButton.setEnabled(!TextUtils.isEmpty(getSyncAccountName(this)));
-        //设置按键可用还是不可用
-
-        // set last sync time
-        // 设置最终同步时间
-        if (GTaskSyncService.isSyncing()) {
-            //若是在同步的情况下
-            lastSyncTimeView.setText(GTaskSyncService.getProgressString());
-            lastSyncTimeView.setVisibility(View.VISIBLE);
-            // 根据当前同步服务器设置时间显示框的文本以及可见性
-        } else {
-            //若是非同步情况
-            long lastSyncTime = getLastSyncTime(this);
-            if (lastSyncTime != 0) {
-                lastSyncTimeView.setText(getString(R.string.preferences_last_sync_time,
-                        DateFormat.format(getString(R.string.preferences_last_sync_time_format),
-                                lastSyncTime)));
-                lastSyncTimeView.setVisibility(View.VISIBLE);
-                //则根据最后同步时间的信息来编辑时间显示框的文本内容和可见性
-            } else {
-                //若时间为空直接设置为不可见状态
-                lastSyncTimeView.setVisibility(View.GONE);
-            }
-        }
-    }
-    /*
-     *函数功能：刷新标签界面
-     *函数实现：调用上文设置账号和设置按键两个函数来实现
-     */
-    private void refreshUI() {
-        loadAccountPreference();
-        loadSyncButton();
-    }
-
-    /*
-     * 函数功能：显示账户选择的对话框并进行账户的设置
-     * 函数实现：如下注释
-     */
-    private void showSelectAccountAlertDialog() {
-        AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
-        //创建一个新的对话框
-
-        View titleView = LayoutInflater.from(this).inflate(R.layout.account_dialog_title, null);
-        TextView titleTextView = (TextView) titleView.findViewById(R.id.account_dialog_title);
-        titleTextView.setText(getString(R.string.preferences_dialog_select_account_title));
-        TextView subtitleTextView = (TextView) titleView.findViewById(R.id.account_dialog_subtitle);
-        subtitleTextView.setText(getString(R.string.preferences_dialog_select_account_tips));
-        //设置标题以及子标题的内容
-        dialogBuilder.setCustomTitle(titleView);
-        dialogBuilder.setPositiveButton(null, null);
-        //设置对话框的自定义标题，建立一个YES的按钮
-        Account[] accounts = getGoogleAccounts();
-        String defAccount = getSyncAccountName(this);
-        //获取同步账户信息
-        mOriAccounts = accounts;
-        mHasAddedAccount = false;
-
-        if (accounts.length > 0) {
-            //若账户不为空
-            CharSequence[] items = new CharSequence[accounts.length];
-            final CharSequence[] itemMapping = items;
-            int checkedItem = -1;
-            int index = 0;
-            for (Account account : accounts) {
-                if (TextUtils.equals(account.name, defAccount)) {
-                    checkedItem = index;
-                    //在账户列表中查询到所需账户
-                }
-                items[index++] = account.name;
-            }
-            dialogBuilder.setSingleChoiceItems(items, checkedItem,
-                    //在对话框建立一个单选的复选框
-                    new DialogInterface.OnClickListener() {
-                        public void onClick(DialogInterface dialog, int which) {
-                            setSyncAccount(itemMapping[which].toString());
-                            dialog.dismiss();
-                            //取消对话框
-                            refreshUI();
-                        }
-                        //设置点击后执行的事件，包括检录新同步账户和刷新标签界面
-                    });
-            //建立对话框网络版的监听器
-        }
-
-        View addAccountView = LayoutInflater.from(this).inflate(R.layout.add_account_text, null);
-        dialogBuilder.setView(addAccountView);
-        //给新加账户对话框设置自定义样式
-
-        final AlertDialog dialog = dialogBuilder.show();
-        //显示对话框
-        addAccountView.setOnClickListener(new View.OnClickListener() {
-            public void onClick(View v) {
-                mHasAddedAccount = true;
-                //将新加账户的hash置true
-                Intent intent = new Intent("android.settings.ADD_ACCOUNT_SETTINGS");
-                //建立网络建立组件
-                intent.putExtra(AUTHORITIES_FILTER_KEY, new String[] {
-                        "gmail-ls"
-                });
-                startActivityForResult(intent, -1);
-                //跳回上一个选项
-                dialog.dismiss();
-            }
-        });
-        //建立新加账户对话框的监听器
-    }
-
-    /*
-     * 函数功能：显示账户选择对话框和相关账户操作
-     * 函数实现：如下注释
-     */
-    private void showChangeAccountConfirmAlertDialog() {
-        AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
-        //创建一个新的对话框
-        View titleView = LayoutInflater.from(this).inflate(R.layout.account_dialog_title, null);
-        TextView titleTextView = (TextView) titleView.findViewById(R.id.account_dialog_title);
-        titleTextView.setText(getString(R.string.preferences_dialog_change_account_title,
-                getSyncAccountName(this)));
-        TextView subtitleTextView = (TextView) titleView.findViewById(R.id.account_dialog_subtitle);
-        subtitleTextView.setText(getString(R.string.preferences_dialog_change_account_warn_msg));
-        //根据同步修改的账户信息设置标题以及子标题的内容
-        dialogBuilder.setCustomTitle(titleView);
-        //设置对话框的自定义标题
-        CharSequence[] menuItemArray = new CharSequence[] {
-                getString(R.string.preferences_menu_change_account),
-                getString(R.string.preferences_menu_remove_account),
-                getString(R.string.preferences_menu_cancel)
-        };
-        //定义一些标记字符串
-        dialogBuilder.setItems(menuItemArray, new DialogInterface.OnClickListener() {
-            //设置对话框要显示的一个list，用于显示几个命令时,即change，remove，cancel
-            public void onClick(DialogInterface dialog, int which) {
-                //按键功能，由which来决定
-                if (which == 0) {
-                    //进入账户选择对话框
-                    showSelectAccountAlertDialog();
-                } else if (which == 1) {
-                    //删除账户并且跟新便签界面
-                    removeSyncAccount();
-                    refreshUI();
-                }
-            }
-        });
-        dialogBuilder.show();
-        //显示对话框
-    }
-
-    /*
-     *函数功能：获取谷歌账户
-     *函数实现：通过账户管理器直接获取
-     */
-    private Account[] getGoogleAccounts() {
-        AccountManager accountManager = AccountManager.get(this);
-        return accountManager.getAccountsByType("com.google");
-    }
-
-    /*
-     * 函数功能：设置同步账户
-     * 函数实现：如下注释：
-     */
-    private void setSyncAccount(String account) {
-        if (!getSyncAccountName(this).equals(account)) {
-            //假如该账号不在同步账号列表中
-            SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
-            SharedPreferences.Editor editor = settings.edit();
-            //编辑共享的首选项
-            if (account != null) {
-                editor.putString(PREFERENCE_SYNC_ACCOUNT_NAME, account);
-            } else {
-                editor.putString(PREFERENCE_SYNC_ACCOUNT_NAME, "");
-            }
-            //将该账号加入到首选项中
-
-            editor.commit();
-            //提交修改的数据
-
-
-            setLastSyncTime(this, 0);
-            //将最后同步时间清零
-
-            // clean up local gtask related info
-            new Thread(new Runnable() {
-                public void run() {
-                    ContentValues values = new ContentValues();
-                    values.put(NoteColumns.GTASK_ID, "");
-                    values.put(NoteColumns.SYNC_ID, 0);
-                    getContentResolver().update(Notes.CONTENT_NOTE_URI, values, null, null);
-                }
-            }).start();
-            //重置当地同步任务的信息
-
-            Toast.makeText(NotesPreferenceActivity.this,
-                    getString(R.string.preferences_toast_success_set_accout, account),
-                    Toast.LENGTH_SHORT).show();
-            //将toast的文本信息置为“设置账户成功”并显示出来
-        }
-    }
-    /*
-     * 函数功能：删除同步账户
-     * 函数实现：如下注释：
-     */
-    private void removeSyncAccount() {
-        SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
-        SharedPreferences.Editor editor = settings.edit();
-        //设置共享首选项
-
-        if (settings.contains(PREFERENCE_SYNC_ACCOUNT_NAME)) {
-            editor.remove(PREFERENCE_SYNC_ACCOUNT_NAME);
-            //假如当前首选项中有账户就删除
-        }
-        if (settings.contains(PREFERENCE_LAST_SYNC_TIME)) {
-            editor.remove(PREFERENCE_LAST_SYNC_TIME);
-            //删除当前首选项中有账户时间
-        }
-        editor.commit();
-        //提交更新后的数据
-
-        // clean up local gtask related info
-        new Thread(new Runnable() {
-            public void run() {
-                ContentValues values = new ContentValues();
-                values.put(NoteColumns.GTASK_ID, "");
-                values.put(NoteColumns.SYNC_ID, 0);
-                getContentResolver().update(Notes.CONTENT_NOTE_URI, values, null, null);
-            }
-        }).start();
-        //重置当地同步任务的信息
-    }
-
-    /*
-     * 函数功能：获取同步账户名称
-     * 函数实现：通过共享的首选项里的信息直接获取
-     */
-    public static String getSyncAccountName(Context context) {
-        SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME,
-                Context.MODE_PRIVATE);
-        return settings.getString(PREFERENCE_SYNC_ACCOUNT_NAME, "");
-    }
-
-    /*
-     * 函数功能：设置最终同步的时间
-     * 函数实现：如下注释
-     */
-    public static void setLastSyncTime(Context context, long time) {
-        SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME,
-                Context.MODE_PRIVATE);
-        SharedPreferences.Editor editor = settings.edit();
-        // 从共享首选项中找到相关账户并获取其编辑器
-        editor.putLong(PREFERENCE_LAST_SYNC_TIME, time);
-        editor.commit();
-        //编辑最终同步时间并提交更新
-    }
-    /*
-     * 函数功能：获取最终同步时间
-     * 函数实现：通过共享的首选项里的信息直接获取
-     */
-    public static long getLastSyncTime(Context context) {
-        SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME,
-                Context.MODE_PRIVATE);
-        return settings.getLong(PREFERENCE_LAST_SYNC_TIME, 0);
-    }
-
-    /*
-     * 函数功能：接受同步信息
-     * 函数实现：继承BroadcastReceiver
-     */
-    private class GTaskReceiver extends BroadcastReceiver {
-
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            refreshUI();
-            if (intent.getBooleanExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_IS_SYNCING, false)) {
-                //获取随广播而来的Intent中的同步服务的数据
-                TextView syncStatus = (TextView) findViewById(R.id.prefenerece_sync_status_textview);
-                syncStatus.setText(intent
-                        .getStringExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_PROGRESS_MSG));
-                //通过获取的数据在设置系统的状态
-            }
-
-        }
-    }
-
-    /*
-     * 函数功能：处理菜单的选项
-     * 函数实现：如下注释
-     * 参数:MenuItem菜单选项
-     */
-    public boolean onOptionsItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            //根据选项的id选择，这里只有一个主页
-            case android.R.id.home:
-                Intent intent = new Intent(this, NotesListActivity.class);
-                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-                startActivity(intent);
-                return true;
-            //在主页情况下在创建连接组件intent，发出清空的信号并开始一个相应的activity
-            default:
-                return false;
-        }
-    }
-}
- 
diff --git a/doc/data/MetaData.java b/doc/data/MetaData.java
deleted file mode 100644
index e591aee..0000000
--- a/doc/data/MetaData.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.gtask.data;
-
-import android.database.Cursor;
-import android.util.Log;
-
-import net.micode.notes.tool.GTaskStringUtils;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-
-//创建继承自Task的类
-public class MetaData extends Task {
-    private final static String TAG = MetaData.class.getSimpleName();//调用getSimpleName()函数
-
-    private String mRelatedGid = null;//初始化mRelatedGid为null
-    //函数：设置meta,用put方法将gid传给GTaskStringUtils.META_HEAD_GTASK_ID，用catch来在出现错误时报错
-    public void setMeta(String gid, JSONObject metaInfo) {
-        try {
-            metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid);
-        } catch (JSONException e) {
-            Log.e(TAG, "failed to put related gid");//catch异常处理
-        }
-        setNotes(metaInfo.toString());
-        setName(GTaskStringUtils.META_NOTE_NAME);
-    }
-    //获取相关的gid
-    public String getRelatedGid() {
-        return mRelatedGid;
-    }
-
-    //函数判断getNotes（）是否为空，并返回
-    @Override
-    public boolean isWorthSaving() {
-        return getNotes() != null;
-    }
-
-    //调用父类Task中的setContentByRemoteJSON ()函数，使用远程json数据对象设置元数据内容
-    @Override
-    public void setContentByRemoteJSON(JSONObject js) {
-        super.setContentByRemoteJSON(js);
-        if (getNotes() != null) {
-            try {
-                JSONObject metaInfo = new JSONObject(getNotes().trim());
-                mRelatedGid = metaInfo.getString(GTaskStringUtils.META_HEAD_GTASK_ID);
-            } catch (JSONException e) {
-                Log.w(TAG, "failed to get related gid");
-                mRelatedGid = null;
-            }
-        }
-    }
-
-    //函数：函数覆盖，将错误抛出
-    @Override
-    public void setContentByLocalJSON(JSONObject js) {
-        // this function should not be called
-        throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called");
-    }
-
-    //函数：从元数据库中获得本地JSON对象，并抛出错误
-    @Override
-    public JSONObject getLocalJSONFromContent() {
-        throw new IllegalAccessError("MetaData:getLocalJSONFromContent should not be called");
-    }
-
-    //函数：获取同步动作状态，并抛出错误
-    @Override
-    public int getSyncAction(Cursor c) {
-        throw new IllegalAccessError("MetaData:getSyncAction should not be called");
-    }
-
-}
diff --git a/doc/data/Node.java b/doc/data/Node.java
deleted file mode 100644
index 3bb770a..0000000
--- a/doc/data/Node.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.gtask.data;   //包名，依赖关系
-
-import android.database.Cursor; //引用cursor，此公用接口提供对数据库查询返回的结果集的随机读写访问。
-
-import org.json.JSONObject;//引用 JSONObject，一组可修改的名称/值映射集。
-
-public abstract class Node {
-    public static final int SYNC_ACTION_NONE = 0;
-
-    public static final int SYNC_ACTION_ADD_REMOTE = 1;//需要在远程云端增加内容
-
-    public static final int SYNC_ACTION_ADD_LOCAL = 2;//需要在本地增加内容
-
-    public static final int SYNC_ACTION_DEL_REMOTE = 3; //需要在远程云端删除内容
-
-    public static final int SYNC_ACTION_DEL_LOCAL = 4;//需要在本地删除内容
-
-    public static final int SYNC_ACTION_UPDATE_REMOTE = 5;//需要将本地内容更新到远程云端
-
-    public static final int SYNC_ACTION_UPDATE_LOCAL = 6;//需要将远程云端内容更新到本地
-
-    public static final int SYNC_ACTION_UPDATE_CONFLICT = 7; //同步出现冲突
-
-    public static final int SYNC_ACTION_ERROR = 8;//同步出现错误
-
-    private String mGid; //记录最后一次修改时间
-
-    private String mName;//bool类型，表明表征是否被删除
-
-    private long mLastModified;//记录最后一次修改时间
-
-    private boolean mDeleted;//判断 表征是否被删除
-
-    //构造函数，进行初始化，界面没有，名字为空，最后一次修改时间为0（没有修改），表征是否删除。
-    public Node() {
-        mGid = null;
-        mName = "";
-        mLastModified = 0;
-        mDeleted = false;
-    }
-
-    // 创建JSONObject对象，创建操作和更新操作，形参是操作号
-    public abstract JSONObject getCreateAction(int actionId);
-
-    public abstract JSONObject getUpdateAction(int actionId);//获取需要更新活动的ID
-
-    public abstract void setContentByRemoteJSON(JSONObject js);//都是JSONObject和Curson中的一些操作，主要是创建相应的对象进行远端和本地同步操作
-
-    public abstract void setContentByLocalJSON(JSONObject js);//声明JSONObject对象抽象类，从本地JSON中同步设置目录
-
-
-    public abstract JSONObject getLocalJSONFromContent();//声明JSONObject对象抽象类，从目录中获取本地JSON
-
-    public abstract int getSyncAction(Cursor c);//声明int抽象类，获取同步行为代号
-
-    public void setGid(String gid) {
-        this.mGid = gid;
-    } //对构造函数中的对象进行赋值或者获取对象的具体内容将gid赋给mGid，以下均为Node函数参数的输入与赋值
-
-    public void setName(String name) {
-        this.mName = name;
-    } //设置名字
-
-    public void setLastModified(long lastModified) {
-        this.mLastModified = lastModified;
-    }//时间标识
-
-    public void setDeleted(boolean deleted) {
-        this.mDeleted = deleted;
-    }//删除标识
-
-    public String getGid() {
-        return this.mGid;
-    }//返回git
-
-    public String getName() {
-        return this.mName;
-    }//返回mname
-
-    public long getLastModified() {
-        return this.mLastModified;
-    }//获取时间标识
-
-    public boolean getDeleted() {
-        return this.mDeleted;
-    }//获取删除标识
-
-}
diff --git a/doc/data/SqlData.java b/doc/data/SqlData.java
deleted file mode 100644
index 0c04274..0000000
--- a/doc/data/SqlData.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.gtask.data;
-
-import android.content.ContentResolver;
-import android.content.ContentUris;
-import android.content.ContentValues;
-import android.content.Context;
-import android.database.Cursor;
-import android.net.Uri;
-import android.util.Log;
-
-import net.micode.notes.data.Notes;
-import net.micode.notes.data.Notes.DataColumns;
-import net.micode.notes.data.Notes.DataConstants;
-import net.micode.notes.data.Notes.NoteColumns;
-import net.micode.notes.data.NotesDatabaseHelper.TABLE;
-import net.micode.notes.gtask.exception.ActionFailureException;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-
-public class SqlData {
-    //得到类的简写名称存入字符串TAG中
-    private static final String TAG = SqlData.class.getSimpleName();//调用getSimpleName ()函数
-
-    private static final int INVALID_ID = -99999;//为mDataId置初始值-99999
-
-    //来自Notes类中定义的DataColumn中的一些常量
-    // 集合了interface DataColumns中所有SF常量
-    public static final String[] PROJECTION_DATA = new String[] {
-            DataColumns.ID, DataColumns.MIME_TYPE, DataColumns.CONTENT, DataColumns.DATA1,
-            DataColumns.DATA3
-    };
-    //以下五个变量作为sql表中5列的编号
-    public static final int DATA_ID_COLUMN = 0;
-
-    public static final int DATA_MIME_TYPE_COLUMN = 1;
-
-    public static final int DATA_CONTENT_COLUMN = 2;
-
-    public static final int DATA_CONTENT_DATA_1_COLUMN = 3;
-
-    public static final int DATA_CONTENT_DATA_3_COLUMN = 4;
-
-    private ContentResolver mContentResolver;
-    //判断是否直接用Content生成，是为true，否则为false
-    private boolean mIsCreate;
-
-    private long mDataId;
-
-    private String mDataMimeType;
-
-    private String mDataContent;
-
-    private long mDataContentData1;
-
-    private String mDataContentData3;
-
-    private ContentValues mDiffDataValues;
-
-    public SqlData(Context context) {
-        mContentResolver = context.getContentResolver();//mContentResolver用于获取ContentProvider提供的数据
-        mIsCreate = true;
-        mDataId = INVALID_ID;
-        mDataMimeType = DataConstants.NOTE;
-        mDataContent = "";
-        mDataContentData1 = 0;
-        mDataContentData3 = "";
-        mDiffDataValues = new ContentValues();
-    }
-    /*
-     * 功能描述：构造函数，初始化数据
-     * 参数注解：mContentResolver用于获取ContentProvider提供的数据
-     * 参数注解： mIsCreate表征当前数据是用哪种方式创建（两种构造函数的参数不同）
-     */
-    public SqlData(Context context, Cursor c) {
-        mContentResolver = context.getContentResolver();
-        mIsCreate = false;
-        loadFromCursor(c);
-        mDiffDataValues = new ContentValues();
-    }
-    //从光标处加载数据
-    private void loadFromCursor(Cursor c) {
-        mDataId = c.getLong(DATA_ID_COLUMN);
-        mDataMimeType = c.getString(DATA_MIME_TYPE_COLUMN);
-        mDataContent = c.getString(DATA_CONTENT_COLUMN);
-        mDataContentData1 = c.getLong(DATA_CONTENT_DATA_1_COLUMN);
-        mDataContentData3 = c.getString(DATA_CONTENT_DATA_3_COLUMN);
-    }
-    //功能描述：设置用于共享的数据，并提供异常抛出与处理机制
-    public void setContent(JSONObject js) throws JSONException {
-        //JSONObject对象中有DataColumns.ID这一项，则设置，否则设为INVALID_ID
-        long dataId = js.has(DataColumns.ID) ? js.getLong(DataColumns.ID) : INVALID_ID;
-        if (mIsCreate || mDataId != dataId) {
-            mDiffDataValues.put(DataColumns.ID, dataId);
-        }
-        mDataId = dataId;
-
-        String dataMimeType = js.has(DataColumns.MIME_TYPE) ? js.getString(DataColumns.MIME_TYPE)
-                : DataConstants.NOTE;
-        if (mIsCreate || !mDataMimeType.equals(dataMimeType)) {
-            mDiffDataValues.put(DataColumns.MIME_TYPE, dataMimeType);
-        }
-        mDataMimeType = dataMimeType;
-
-        String dataContent = js.has(DataColumns.CONTENT) ? js.getString(DataColumns.CONTENT) : "";
-        if (mIsCreate || !mDataContent.equals(dataContent)) {
-            mDiffDataValues.put(DataColumns.CONTENT, dataContent);
-        }
-        mDataContent = dataContent;
-
-        long dataContentData1 = js.has(DataColumns.DATA1) ? js.getLong(DataColumns.DATA1) : 0;
-        if (mIsCreate || mDataContentData1 != dataContentData1) {
-            mDiffDataValues.put(DataColumns.DATA1, dataContentData1);
-        }
-        mDataContentData1 = dataContentData1;
-
-        String dataContentData3 = js.has(DataColumns.DATA3) ? js.getString(DataColumns.DATA3) : "";
-        if (mIsCreate || !mDataContentData3.equals(dataContentData3)) {
-            mDiffDataValues.put(DataColumns.DATA3, dataContentData3);
-        }
-        mDataContentData3 = dataContentData3;
-    }
-    //功能描述：获取共享的数据内容，并提供异常抛出与处理机制
-    public JSONObject getContent() throws JSONException {
-        if (mIsCreate) {
-            Log.e(TAG, "it seems that we haven't created this in database yet");
-            return null;
-        }
-        //创建JSONObject对象。并将相关数据放入其中，并返回
-        JSONObject js = new JSONObject();
-        js.put(DataColumns.ID, mDataId);
-        js.put(DataColumns.MIME_TYPE, mDataMimeType);
-        js.put(DataColumns.CONTENT, mDataContent);
-        js.put(DataColumns.DATA1, mDataContentData1);
-        js.put(DataColumns.DATA3, mDataContentData3);
-        return js;
-    }
-    //commit函数用于把当前造作所做的修改保存到数据库
-    public void commit(long noteId, boolean validateVersion, long version) {
-
-        if (mIsCreate) {
-            if (mDataId == INVALID_ID && mDiffDataValues.containsKey(DataColumns.ID)) {
-                mDiffDataValues.remove(DataColumns.ID);
-            }
-
-            mDiffDataValues.put(DataColumns.NOTE_ID, noteId);
-            Uri uri = mContentResolver.insert(Notes.CONTENT_DATA_URI, mDiffDataValues);
-            try {
-                mDataId = Long.valueOf(uri.getPathSegments().get(1));
-            } catch (NumberFormatException e) {
-                Log.e(TAG, "Get note id error :" + e.toString());
-                throw new ActionFailureException("create note failed");
-            }
-        } else {
-            if (mDiffDataValues.size() > 0) {
-                int result = 0;
-                if (!validateVersion) {
-                    result = mContentResolver.update(ContentUris.withAppendedId(
-                            Notes.CONTENT_DATA_URI, mDataId), mDiffDataValues, null, null);
-                } else {
-                    result = mContentResolver.update(ContentUris.withAppendedId(
-                            Notes.CONTENT_DATA_URI, mDataId), mDiffDataValues,
-                            " ? in (SELECT " + NoteColumns.ID + " FROM " + TABLE.NOTE
-                                    + " WHERE " + NoteColumns.VERSION + "=?)", new String[] {
-                                    String.valueOf(noteId), String.valueOf(version)
-                            });
-                }
-                if (result == 0) {
-                    Log.w(TAG, "there is no update. maybe user updates note when syncing");
-                }
-            }
-        }
-
-        mDiffDataValues.clear();
-        mIsCreate = false;
-    }
-    //获取当前id
-    public long getId() {
-        return mDataId;
-    }
-}
diff --git a/doc/data/SqlNote.java b/doc/data/SqlNote.java
deleted file mode 100644
index 36854e7..0000000
--- a/doc/data/SqlNote.java
+++ /dev/null
@@ -1,527 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.gtask.data;
-
-import android.appwidget.AppWidgetManager;
-import android.content.ContentResolver;
-import android.content.ContentValues;
-import android.content.Context;
-import android.database.Cursor;
-import android.net.Uri;
-import android.util.Log;
-
-import net.micode.notes.data.Notes;
-import net.micode.notes.data.Notes.DataColumns;
-import net.micode.notes.data.Notes.NoteColumns;
-import net.micode.notes.gtask.exception.ActionFailureException;
-import net.micode.notes.tool.GTaskStringUtils;
-import net.micode.notes.tool.ResourceParser;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.util.ArrayList;
-
-
-public class SqlNote {
-    //调用getSimpleName(),类名简称存入TAG
-    private static final String TAG = SqlNote.class.getSimpleName();
-
-    private static final int INVALID_ID = -99999;
-
-    public static final String[] PROJECTION_NOTE = new String[] {
-            NoteColumns.ID, NoteColumns.ALERTED_DATE, NoteColumns.BG_COLOR_ID,
-            NoteColumns.CREATED_DATE, NoteColumns.HAS_ATTACHMENT, NoteColumns.MODIFIED_DATE,
-            NoteColumns.NOTES_COUNT, NoteColumns.PARENT_ID, NoteColumns.SNIPPET, NoteColumns.TYPE,
-            NoteColumns.WIDGET_ID, NoteColumns.WIDGET_TYPE, NoteColumns.SYNC_ID,
-            NoteColumns.LOCAL_MODIFIED, NoteColumns.ORIGIN_PARENT_ID, NoteColumns.GTASK_ID,
-            NoteColumns.VERSION
-    };
-
-    public static final int ID_COLUMN = 0;
-
-    public static final int ALERTED_DATE_COLUMN = 1;
-
-    public static final int BG_COLOR_ID_COLUMN = 2;
-
-    public static final int CREATED_DATE_COLUMN = 3;
-
-    public static final int HAS_ATTACHMENT_COLUMN = 4;
-
-    public static final int MODIFIED_DATE_COLUMN = 5;
-
-    public static final int NOTES_COUNT_COLUMN = 6;
-
-    public static final int PARENT_ID_COLUMN = 7;
-
-    public static final int SNIPPET_COLUMN = 8;
-
-    public static final int TYPE_COLUMN = 9;
-
-    public static final int WIDGET_ID_COLUMN = 10;
-
-    public static final int WIDGET_TYPE_COLUMN = 11;
-
-    public static final int SYNC_ID_COLUMN = 12;
-
-    public static final int LOCAL_MODIFIED_COLUMN = 13;
-
-    public static final int ORIGIN_PARENT_ID_COLUMN = 14;
-
-    public static final int GTASK_ID_COLUMN = 15;
-
-    public static final int VERSION_COLUMN = 16;
-
-    private Context mContext;
-
-    private ContentResolver mContentResolver;
-
-    private boolean mIsCreate;
-
-    private long mId;
-
-    private long mAlertDate;
-
-    private int mBgColorId;
-
-    private long mCreatedDate;
-
-    private int mHasAttachment;
-
-    private long mModifiedDate;
-
-    private long mParentId;
-
-    private String mSnippet;
-
-    private int mType;
-
-    private int mWidgetId;
-
-    private int mWidgetType;
-
-    private long mOriginParent;
-
-    private long mVersion;
-
-    private ContentValues mDiffNoteValues;
-
-    private ArrayList<SqlData> mDataList;
-
-    //构造函数只有context，对所有的变量进行初始化
-    public SqlNote(Context context) {
-        mContext = context;
-        mContentResolver = context.getContentResolver();
-        mIsCreate = true;
-        mId = INVALID_ID;
-        mAlertDate = 0;
-        mBgColorId = ResourceParser.getDefaultBgId(context);
-        mCreatedDate = System.currentTimeMillis();//调用系统函数获得创建时间
-        mHasAttachment = 0;
-        mModifiedDate = System.currentTimeMillis();//最后一次修改时间初始化为创建时间
-        mParentId = 0;
-        mSnippet = "";
-        mType = Notes.TYPE_NOTE;
-        mWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
-        mWidgetType = Notes.TYPE_WIDGET_INVALIDE;
-        mOriginParent = 0;
-        mVersion = 0;
-        mDiffNoteValues = new ContentValues();
-        mDataList = new ArrayList<SqlData>();
-    }
-
-    //构造函数有context和一个数据库的cursor，多数变量通过cursor指向的一条记录直接进行初始化
-    public SqlNote(Context context, Cursor c) {
-        mContext = context;
-        mContentResolver = context.getContentResolver();
-        mIsCreate = false;
-        loadFromCursor(c);
-        mDataList = new ArrayList<SqlData>();
-        //
-        if (mType == Notes.TYPE_NOTE)
-            loadDataContent();
-        mDiffNoteValues = new ContentValues();
-    }
-
-
-    //  mIsCreate用于标示构造方式
-    public SqlNote(Context context, long id) {
-        mContext = context;
-        mContentResolver = context.getContentResolver();
-        mIsCreate = false;
-        loadFromCursor(id);
-        mDataList = new ArrayList<SqlData>();
-        if (mType == Notes.TYPE_NOTE)
-            loadDataContent();
-        mDiffNoteValues = new ContentValues();
-
-    }
-
-    //功能描述：通过id从光标处加载数据
-
-    private void loadFromCursor(long id) {
-        Cursor c = null;
-        try {
-            c = mContentResolver.query(Notes.CONTENT_NOTE_URI, PROJECTION_NOTE, "(_id=?)",
-                    new String[] {
-                            String.valueOf(id)
-                    }, null);//通过id获得对应的ContentResolver中的cursor
-            if (c != null) {
-                c.moveToNext();
-                loadFromCursor(c);//然后加载数据进行初始化，这样函数
-                //SqlNote(Context context, long id)与SqlNote(Context context, long id)的实现方式基本相同
-            } else {
-                Log.w(TAG, "loadFromCursor: cursor = null");
-            }
-        } finally {
-            if (c != null)
-                c.close();
-        }
-    }
-
-    // 功能描述：通过游标从光标处加载数据
-    private void loadFromCursor(Cursor c) {
-        //直接从一条记录中的获得以下变量的初始值
-        mId = c.getLong(ID_COLUMN);
-        mAlertDate = c.getLong(ALERTED_DATE_COLUMN);
-        mBgColorId = c.getInt(BG_COLOR_ID_COLUMN);
-        mCreatedDate = c.getLong(CREATED_DATE_COLUMN);
-        mHasAttachment = c.getInt(HAS_ATTACHMENT_COLUMN);
-        mModifiedDate = c.getLong(MODIFIED_DATE_COLUMN);
-        mParentId = c.getLong(PARENT_ID_COLUMN);
-        mSnippet = c.getString(SNIPPET_COLUMN);
-        mType = c.getInt(TYPE_COLUMN);
-        mWidgetId = c.getInt(WIDGET_ID_COLUMN);
-        mWidgetType = c.getInt(WIDGET_TYPE_COLUMN);
-        mVersion = c.getLong(VERSION_COLUMN);
-    }
-
-    // 功能描述：通过content机制获取共享数据并加载到数据库当前游标
-    private void loadDataContent() {
-        Cursor c = null;
-        mDataList.clear();
-        try {
-            c = mContentResolver.query(Notes.CONTENT_DATA_URI, SqlData.PROJECTION_DATA,
-                    "(note_id=?)", new String[] {
-                            String.valueOf(mId)
-                    }, null);
-            if (c != null) {
-                if (c.getCount() == 0) {
-                    Log.w(TAG, "it seems that the note has not data");
-                    return;
-                }
-                while (c.moveToNext()) {
-                    SqlData data = new SqlData(mContext, c);
-                    mDataList.add(data);
-                }
-            } else {
-                Log.w(TAG, "loadDataContent: cursor = null");
-            }
-        } finally {
-            if (c != null)
-                c.close();
-        }
-    }
-
-    // 功能描述：设置通过content机制用于共享的数据信息
-    public boolean setContent(JSONObject js) {
-        try {
-            JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE);
-            if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_SYSTEM) {
-                Log.w(TAG, "cannot set system folder");
-            } else if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_FOLDER) {
-                // for folder we can only update the snnipet and type
-                String snippet = note.has(NoteColumns.SNIPPET) ? note
-                        .getString(NoteColumns.SNIPPET) : "";
-                if (mIsCreate || !mSnippet.equals(snippet)) {
-                    mDiffNoteValues.put(NoteColumns.SNIPPET, snippet);
-                }
-                mSnippet = snippet;
-
-                int type = note.has(NoteColumns.TYPE) ? note.getInt(NoteColumns.TYPE)
-                        : Notes.TYPE_NOTE;
-                if (mIsCreate || mType != type) {
-                    mDiffNoteValues.put(NoteColumns.TYPE, type);
-                }
-                mType = type;
-            } else if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_NOTE) {
-                JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA);
-                long id = note.has(NoteColumns.ID) ? note.getLong(NoteColumns.ID) : INVALID_ID;
-                if (mIsCreate || mId != id) {
-                    mDiffNoteValues.put(NoteColumns.ID, id);
-                }
-                mId = id;
-
-                long alertDate = note.has(NoteColumns.ALERTED_DATE) ? note
-                        .getLong(NoteColumns.ALERTED_DATE) : 0;
-                if (mIsCreate || mAlertDate != alertDate) {
-                    mDiffNoteValues.put(NoteColumns.ALERTED_DATE, alertDate);
-                }
-                mAlertDate = alertDate;
-
-                int bgColorId = note.has(NoteColumns.BG_COLOR_ID) ? note
-                        .getInt(NoteColumns.BG_COLOR_ID) : ResourceParser.getDefaultBgId(mContext);
-                if (mIsCreate || mBgColorId != bgColorId) {
-                    mDiffNoteValues.put(NoteColumns.BG_COLOR_ID, bgColorId);
-                }
-                mBgColorId = bgColorId;
-                long createDate = note.has(NoteColumns.CREATED_DATE) ? note
-                        .getLong(NoteColumns.CREATED_DATE) : System.currentTimeMillis();
-                if (mIsCreate || mCreatedDate != createDate) {
-                    mDiffNoteValues.put(NoteColumns.CREATED_DATE, createDate);
-                }
-                mCreatedDate = createDate;
-
-                int hasAttachment = note.has(NoteColumns.HAS_ATTACHMENT) ? note
-                        .getInt(NoteColumns.HAS_ATTACHMENT) : 0;
-                if (mIsCreate || mHasAttachment != hasAttachment) {
-                    mDiffNoteValues.put(NoteColumns.HAS_ATTACHMENT, hasAttachment);
-                }
-                mHasAttachment = hasAttachment;
-
-                long modifiedDate = note.has(NoteColumns.MODIFIED_DATE) ? note
-                        .getLong(NoteColumns.MODIFIED_DATE) : System.currentTimeMillis();
-                if (mIsCreate || mModifiedDate != modifiedDate) {
-                    mDiffNoteValues.put(NoteColumns.MODIFIED_DATE, modifiedDate);
-                }
-                mModifiedDate = modifiedDate;
-
-                long parentId = note.has(NoteColumns.PARENT_ID) ? note
-                        .getLong(NoteColumns.PARENT_ID) : 0;
-                if (mIsCreate || mParentId != parentId) {
-                    mDiffNoteValues.put(NoteColumns.PARENT_ID, parentId);
-                }
-                mParentId = parentId;
-
-                String snippet = note.has(NoteColumns.SNIPPET) ? note
-                        .getString(NoteColumns.SNIPPET) : "";
-                if (mIsCreate || !mSnippet.equals(snippet)) {
-                    mDiffNoteValues.put(NoteColumns.SNIPPET, snippet);
-                }
-                mSnippet = snippet;
-
-                int type = note.has(NoteColumns.TYPE) ? note.getInt(NoteColumns.TYPE)
-                        : Notes.TYPE_NOTE;
-                if (mIsCreate || mType != type) {
-                    mDiffNoteValues.put(NoteColumns.TYPE, type);
-                }
-                mType = type;
-
-                int widgetId = note.has(NoteColumns.WIDGET_ID) ? note.getInt(NoteColumns.WIDGET_ID)
-                        : AppWidgetManager.INVALID_APPWIDGET_ID;
-                if (mIsCreate || mWidgetId != widgetId) {
-                    mDiffNoteValues.put(NoteColumns.WIDGET_ID, widgetId);
-                }
-                mWidgetId = widgetId;
-
-                int widgetType = note.has(NoteColumns.WIDGET_TYPE) ? note
-                        .getInt(NoteColumns.WIDGET_TYPE) : Notes.TYPE_WIDGET_INVALIDE;
-                if (mIsCreate || mWidgetType != widgetType) {
-                    mDiffNoteValues.put(NoteColumns.WIDGET_TYPE, widgetType);
-                }
-                mWidgetType = widgetType;
-
-                long originParent = note.has(NoteColumns.ORIGIN_PARENT_ID) ? note
-                        .getLong(NoteColumns.ORIGIN_PARENT_ID) : 0;
-                if (mIsCreate || mOriginParent != originParent) {
-                    mDiffNoteValues.put(NoteColumns.ORIGIN_PARENT_ID, originParent);
-                }
-                mOriginParent = originParent;
-
-                for (int i = 0; i < dataArray.length(); i++) {
-                    JSONObject data = dataArray.getJSONObject(i);
-                    SqlData sqlData = null;
-                    if (data.has(DataColumns.ID)) {
-                        long dataId = data.getLong(DataColumns.ID);
-                        for (SqlData temp : mDataList) {
-                            if (dataId == temp.getId()) {
-                                sqlData = temp;
-                            }
-                        }
-                    }
-
-                    if (sqlData == null) {
-                        sqlData = new SqlData(mContext);
-                        mDataList.add(sqlData);
-                    }
-
-                    sqlData.setContent(data);
-                }
-            }
-        } catch (JSONException e) {
-            Log.e(TAG, e.toString());
-            e.printStackTrace();
-            return false;
-        }
-        return true;
-    }
-
-    // 功能描述：获取content机制提供的数据并加载到note中
-    public JSONObject getContent() {
-        try {
-            JSONObject js = new JSONObject();
-
-            if (mIsCreate) {
-                Log.e(TAG, "it seems that we haven't created this in database yet");
-                return null;
-            }
-
-            JSONObject note = new JSONObject();
-            if (mType == Notes.TYPE_NOTE) {//类型为note时
-                note.put(NoteColumns.ID, mId);
-                note.put(NoteColumns.ALERTED_DATE, mAlertDate);
-                note.put(NoteColumns.BG_COLOR_ID, mBgColorId);
-                note.put(NoteColumns.CREATED_DATE, mCreatedDate);
-                note.put(NoteColumns.HAS_ATTACHMENT, mHasAttachment);
-                note.put(NoteColumns.MODIFIED_DATE, mModifiedDate);
-                note.put(NoteColumns.PARENT_ID, mParentId);
-                note.put(NoteColumns.SNIPPET, mSnippet);
-                note.put(NoteColumns.TYPE, mType);
-                note.put(NoteColumns.WIDGET_ID, mWidgetId);
-                note.put(NoteColumns.WIDGET_TYPE, mWidgetType);
-                note.put(NoteColumns.ORIGIN_PARENT_ID, mOriginParent);
-                js.put(GTaskStringUtils.META_HEAD_NOTE, note);
-
-                JSONArray dataArray = new JSONArray();
-                for (SqlData sqlData : mDataList) {
-                    JSONObject data = sqlData.getContent();
-                    if (data != null) {
-                        dataArray.put(data);
-                    }
-                }
-                js.put(GTaskStringUtils.META_HEAD_DATA, dataArray);
-            } else if (mType == Notes.TYPE_FOLDER || mType == Notes.TYPE_SYSTEM) {//类型为文件夹或者
-                note.put(NoteColumns.ID, mId);
-                note.put(NoteColumns.TYPE, mType);
-                note.put(NoteColumns.SNIPPET, mSnippet);
-                js.put(GTaskStringUtils.META_HEAD_NOTE, note);
-            }
-
-            return js;
-        } catch (JSONException e) {
-            Log.e(TAG, e.toString());
-            e.printStackTrace();
-        }
-        return null;
-    }
-
-    // 功能描述：给当前id设置父id
-    public void setParentId(long id) {
-        mParentId = id;
-        mDiffNoteValues.put(NoteColumns.PARENT_ID, id);
-    }
-
-    //功能描述：给当前id设置Gtaskid
-    public void setGtaskId(String gid) {
-        mDiffNoteValues.put(NoteColumns.GTASK_ID, gid);
-    }
-
-    // 功能描述：给当前id设置同步id
-    public void setSyncId(long syncId) {
-        mDiffNoteValues.put(NoteColumns.SYNC_ID, syncId);
-    }
-
-    // 功能描述：初始化本地修改，即撤销所有当前修改
-    public void resetLocalModified() {
-        mDiffNoteValues.put(NoteColumns.LOCAL_MODIFIED, 0);
-    }
-
-    // 功能描述：获得当前id
-    public long getId() {
-        return mId;
-    }
-
-    //获得当前id的父id
-    public long getParentId() {
-        return mParentId;
-    }
-
-    //获取小片段即用于显示的部分便签内容
-    public String getSnippet() {
-        return mSnippet;
-    }
-
-    //判断是否为便签类型
-    public boolean isNoteType() {
-        return mType == Notes.TYPE_NOTE;
-    }
-
-    //commit函数用于把当前造作所做的修改保存到数据库
-    public void commit(boolean validateVersion) {
-        if (mIsCreate) {
-            if (mId == INVALID_ID && mDiffNoteValues.containsKey(NoteColumns.ID)) {
-                mDiffNoteValues.remove(NoteColumns.ID);
-            }
-
-            Uri uri = mContentResolver.insert(Notes.CONTENT_NOTE_URI, mDiffNoteValues);
-            try {
-                mId = Long.valueOf(uri.getPathSegments().get(1));
-            } catch (NumberFormatException e) {
-                Log.e(TAG, "Get note id error :" + e.toString());
-                throw new ActionFailureException("create note failed");
-            }
-            if (mId == 0) {
-                throw new IllegalStateException("Create thread id failed");
-            }
-
-            if (mType == Notes.TYPE_NOTE) {
-                for (SqlData sqlData : mDataList) {//直接使用sqldata中的实现
-                    sqlData.commit(mId, false, -1);
-                }
-            }
-        } else {
-            if (mId <= 0 && mId != Notes.ID_ROOT_FOLDER && mId != Notes.ID_CALL_RECORD_FOLDER) {
-                Log.e(TAG, "No such note");
-                throw new IllegalStateException("Try to update note with invalid id");
-            }
-            if (mDiffNoteValues.size() > 0) {
-                mVersion ++;
-                int result = 0;
-                if (!validateVersion) {  //构造字符串
-                    result = mContentResolver.update(Notes.CONTENT_NOTE_URI, mDiffNoteValues, "("
-                            + NoteColumns.ID + "=?)", new String[] {
-                            String.valueOf(mId)
-                    });
-                } else {
-                    result = mContentResolver.update(Notes.CONTENT_NOTE_URI, mDiffNoteValues, "("
-                                    + NoteColumns.ID + "=?) AND (" + NoteColumns.VERSION + "<=?)",
-                            new String[] {
-                                    String.valueOf(mId), String.valueOf(mVersion)
-                            });
-                }
-                if (result == 0) {
-                    Log.w(TAG, "there is no update. maybe user updates note when syncing");
-                }
-            }
-
-            if (mType == Notes.TYPE_NOTE) {
-                for (SqlData sqlData : mDataList) {
-                    sqlData.commit(mId, validateVersion, mVersion);
-                }
-            }
-        }
-
-        // refresh local info
-        loadFromCursor(mId);
-        if (mType == Notes.TYPE_NOTE)
-            loadDataContent();
-
-        mDiffNoteValues.clear();
-        mIsCreate = false;
-    }
-}
\ No newline at end of file
diff --git a/doc/data/Task.java b/doc/data/Task.java
deleted file mode 100644
index 14edea4..0000000
--- a/doc/data/Task.java
+++ /dev/null
@@ -1,361 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.gtask.data;
-
-import android.database.Cursor;
-import android.text.TextUtils;
-import android.util.Log;
-
-import net.micode.notes.data.Notes;
-import net.micode.notes.data.Notes.DataColumns;
-import net.micode.notes.data.Notes.DataConstants;
-import net.micode.notes.data.Notes.NoteColumns;
-import net.micode.notes.gtask.exception.ActionFailureException;
-import net.micode.notes.tool.GTaskStringUtils;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-
-public class  Task extends Node {
-    private static final String TAG = Task.class.getSimpleName();
-    // 任务是否已完成
-    private boolean mCompleted;
-
-    // 与任务关联的备注
-    private String mNotes;
-
-    // 与任务关联的元信息
-    private JSONObject mMetaInfo;
-
-    // 在列表中位于该任务前面的任务
-    private Task mPriorSibling;
-
-    // 该任务所属的父任务列表
-    private TaskList mParent;
-
-    //创建一个新的空任务的构造函数
-    public Task() {
-        super();
-        mCompleted = false;
-        mNotes = null;
-        mPriorSibling = null;
-        mParent = null;
-        mMetaInfo = null;
-    }
-
-    //从JSON对象创建任务的构造函数
-    //如果JSON对象不符合预期的格式，则抛出异常。
-    public Task(JSONObject jsonObject) throws JSONException {
-        super(jsonObject);
-        mCompleted = jsonObject.getBoolean(GTaskStringUtils.STATUS);
-        mNotes = jsonObject.optString(GTaskStringUtils.NOTES);
-        mMetaInfo = jsonObject.optJSONObject(GTaskStringUtils.META_DATA);
-    }
-
-    public JSONObject getCreateAction(int actionId) {
-        JSONObject js = new JSONObject();
-
-        try {
-            // action_id 操作ID
-            js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId);
-
-            // index 任务在父任务列表中的位置
-            js.put(GTaskStringUtils.GTASK_JSON_INDEX, mParent.getChildTaskIndex(this));
-
-            // entity_delta 任务实体信息
-            JSONObject entity = new JSONObject();
-            entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); // 任务名称
-            entity.put(GTaskStringUtils.GTASK_JSON_CREATOR_ID, "null"); // 创建者ID
-            entity.put(GTaskStringUtils.GTASK_JSON_ENTITY_TYPE,
-                    GTaskStringUtils.GTASK_JSON_TYPE_TASK); // 实体类型为任务
-            if (getNotes() != null) {
-                entity.put(GTaskStringUtils.GTASK_JSON_NOTES, getNotes()); // 关联的备注信息
-            }
-            js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity);
-
-            // parent_id 父任务列表ID
-            js.put(GTaskStringUtils.GTASK_JSON_PARENT_ID, mParent.getGid());
-
-            // dest_parent_type 目标父实体类型
-            js.put(GTaskStringUtils.GTASK_JSON_DEST_PARENT_TYPE,
-                    GTaskStringUtils.GTASK_JSON_TYPE_GROUP);
-
-            // list_id 任务列表ID
-            js.put(GTaskStringUtils.GTASK_JSON_LIST_ID, mParent.getGid());
-
-            // prior_sibling_id 前置任务ID
-            if (mPriorSibling != null) {
-                js.put(GTaskStringUtils.GTASK_JSON_PRIOR_SIBLING_ID, mPriorSibling.getGid());
-            }
-
-
-        } catch (JSONException e) {
-            Log.e(TAG, e.toString());
-            e.printStackTrace();
-            throw new ActionFailureException("fail to generate task-create jsonobject");
-        }
-
-        return js;
-    }
-
-    public JSONObject getUpdateAction(int actionId) {
-        JSONObject js = new JSONObject();
-
-        try {
-            // action_id 操作ID
-            js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId);
-
-            // id 任务ID
-            js.put(GTaskStringUtils.GTASK_JSON_ID, getGid());
-
-            // entity_delta 任务实体信息
-            JSONObject entity = new JSONObject();
-            entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); // 任务名称
-            if (getNotes() != null) {
-                entity.put(GTaskStringUtils.GTASK_JSON_NOTES, getNotes()); // 关联的备注信息
-            }
-            entity.put(GTaskStringUtils.GTASK_JSON_DELETED, getDeleted()); // 是否被删除
-            js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity);
-
-        } catch (JSONException e) {
-            Log.e(TAG, e.toString());
-            e.printStackTrace();
-            throw new ActionFailureException("fail to generate task-update jsonobject");
-        }
-
-        return js;
-    }
-
-    public void setContentByRemoteJSON(JSONObject js) {
-        if (js != null) {
-            try {
-                // id
-                if (js.has(GTaskStringUtils.GTASK_JSON_ID)) {
-                    setGid(js.getString(GTaskStringUtils.GTASK_JSON_ID));
-                }
-
-                // last_modified 最近修改时间
-                if (js.has(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)) {
-                    setLastModified(js.getLong(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED));
-                }
-
-                // name 任务名称
-                if (js.has(GTaskStringUtils.GTASK_JSON_NAME)) {
-                    setName(js.getString(GTaskStringUtils.GTASK_JSON_NAME));
-                }
-
-                // notes 关联的备注信息
-                if (js.has(GTaskStringUtils.GTASK_JSON_NOTES)) {
-                    setNotes(js.getString(GTaskStringUtils.GTASK_JSON_NOTES));
-                }
-
-                // deleted 是否被删除
-                if (js.has(GTaskStringUtils.GTASK_JSON_DELETED)) {
-                    setDeleted(js.getBoolean(GTaskStringUtils.GTASK_JSON_DELETED));
-                }
-
-                // completed 是否已完成
-                if (js.has(GTaskStringUtils.GTASK_JSON_COMPLETED)) {
-                    setCompleted(js.getBoolean(GTaskStringUtils.GTASK_JSON_COMPLETED));
-                }
-            } catch (JSONException e) {
-                Log.e(TAG, e.toString());
-                e.printStackTrace();
-                throw new ActionFailureException("fail to get task content from jsonobject");
-            }
-        }
-
-    }
-    //将本地存储的JSON对象中的内容设置到任务对象中。
-    public void setContentByLocalJSON(JSONObject js) {
-        if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE)
-                || !js.has(GTaskStringUtils.META_HEAD_DATA)) {
-            Log.w(TAG, "setContentByLocalJSON: nothing is avaiable");
-        }
-
-        try {
-            JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE);
-            JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA);
-
-            if (note.getInt(NoteColumns.TYPE) != Notes.TYPE_NOTE) {
-                Log.e(TAG, "invalid type");
-                return;
-            }
-
-            for (int i = 0; i < dataArray.length(); i++) {
-                JSONObject data = dataArray.getJSONObject(i);
-                if (TextUtils.equals(data.getString(DataColumns.MIME_TYPE), DataConstants.NOTE)) {
-                    setName(data.getString(DataColumns.CONTENT));   // 设置任务名称为备注内容
-                    break;
-                }
-            }
-
-        } catch (JSONException e) {
-            Log.e(TAG, e.toString());
-            e.printStackTrace();
-        }
-    }
-    //从任务对象中获取本地存储的JSON对象。
-    public JSONObject getLocalJSONFromContent() {
-        String name = getName();
-        try {
-            if (mMetaInfo == null) {
-                // 从Web创建的新任务
-                if (name == null) {
-                    Log.w(TAG, "the note seems to be an empty one");
-                    return null;
-                }
-
-                JSONObject js = new JSONObject();
-                JSONObject note = new JSONObject();
-                JSONArray dataArray = new JSONArray();
-                JSONObject data = new JSONObject();
-                data.put(DataColumns.CONTENT, name);
-                dataArray.put(data);
-                js.put(GTaskStringUtils.META_HEAD_DATA, dataArray);
-                note.put(NoteColumns.TYPE, Notes.TYPE_NOTE);
-                js.put(GTaskStringUtils.META_HEAD_NOTE, note);
-                return js;
-            } else {
-                // 已同步的任务
-                JSONObject note = mMetaInfo.getJSONObject(GTaskStringUtils.META_HEAD_NOTE);
-                JSONArray dataArray = mMetaInfo.getJSONArray(GTaskStringUtils.META_HEAD_DATA);
-
-                for (int i = 0; i < dataArray.length(); i++) {
-                    JSONObject data = dataArray.getJSONObject(i);
-                    if (TextUtils.equals(data.getString(DataColumns.MIME_TYPE), DataConstants.NOTE)) {
-                        data.put(DataColumns.CONTENT, getName()); // 更新备注内容为任务名称
-                        break;
-                    }
-                }
-
-                note.put(NoteColumns.TYPE, Notes.TYPE_NOTE);
-                return mMetaInfo;
-            }
-        } catch (JSONException e) {
-            Log.e(TAG, e.toString());
-            e.printStackTrace();
-            return null;
-        }
-    }
-
-    public void setMetaInfo(MetaData metaData) {
-        if (metaData != null && metaData.getNotes() != null) {
-            try {
-                mMetaInfo = new JSONObject(metaData.getNotes());
-            } catch (JSONException e) {
-                Log.w(TAG, e.toString());
-                mMetaInfo = null;
-            }
-        }
-    }
-    //根据传入的Cursor对象获取同步任务的操作类型。
-    public int getSyncAction(Cursor c) {
-        try {
-            JSONObject noteInfo = null;
-            if (mMetaInfo != null && mMetaInfo.has(GTaskStringUtils.META_HEAD_NOTE)) {
-                noteInfo = mMetaInfo.getJSONObject(GTaskStringUtils.META_HEAD_NOTE);
-            }
-
-            if (noteInfo == null) {
-                Log.w(TAG, "it seems that note meta has been deleted");
-                return SYNC_ACTION_UPDATE_REMOTE;
-            }
-
-            if (!noteInfo.has(NoteColumns.ID)) {
-                Log.w(TAG, "remote note id seems to be deleted");
-                return SYNC_ACTION_UPDATE_LOCAL;
-            }
-
-            // 验证笔记ID是否匹配
-            if (c.getLong(SqlNote.ID_COLUMN) != noteInfo.getLong(NoteColumns.ID)) {
-                Log.w(TAG, "note id doesn't match");
-                return SYNC_ACTION_UPDATE_LOCAL;
-            }
-
-            if (c.getInt(SqlNote.LOCAL_MODIFIED_COLUMN) == 0) {
-                // 本地没有更新
-                if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) {
-                    // 双方都没有更新
-                    return SYNC_ACTION_NONE;
-                } else {
-                    // 应用远程更新到本地
-                    return SYNC_ACTION_UPDATE_LOCAL;
-                }
-            } else {
-                // 验证gtask id是否匹配
-                if (!c.getString(SqlNote.GTASK_ID_COLUMN).equals(getGid())) {
-                    Log.e(TAG, "gtask id doesn't match");
-                    return SYNC_ACTION_ERROR;
-                }
-                if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) {
-                    // 仅有本地修改
-                    return SYNC_ACTION_UPDATE_REMOTE;
-                } else {
-                    // 本地和远程都有修改
-                    return SYNC_ACTION_UPDATE_CONFLICT;
-                }
-            }
-        } catch (Exception e) {
-            Log.e(TAG, e.toString());
-            e.printStackTrace();
-        }
-
-        return SYNC_ACTION_ERROR;
-    }
-    //判断是否值得保存。
-    // 如果有元数据、名称或笔记内容，则返回true，否则返回false
-    public boolean isWorthSaving() {
-        return mMetaInfo != null || (getName() != null && getName().trim().length() > 0)
-                || (getNotes() != null && getNotes().trim().length() > 0);
-    }
-    //设置任务是否已完成
-    public void setCompleted(boolean completed) {
-        this.mCompleted = completed;
-    }
-    //设置笔记内容
-    public void setNotes(String notes) {
-        this.mNotes = notes;
-    }
-    //设置前一个同级任务。
-    public void setPriorSibling(Task priorSibling) {
-        this.mPriorSibling = priorSibling;
-    }
-    //设置所属任务列表
-    public void setParent(TaskList parent) {
-        this.mParent = parent;
-    }
-   // 获取任务是否已完成
-    public boolean getCompleted() {
-        return this.mCompleted;
-    }
-    //获取笔记内容
-    public String getNotes() {
-        return this.mNotes;
-    }
-    //获取前一个同级任务。
-    public Task getPriorSibling() {
-        return this.mPriorSibling;
-    }
-    //获取所属任务列表
-    public TaskList getParent() {
-        return this.mParent;
-    }
-
-}
diff --git a/doc/data/TaskList.java b/doc/data/TaskList.java
deleted file mode 100644
index 81ac4d8..0000000
--- a/doc/data/TaskList.java
+++ /dev/null
@@ -1,357 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.gtask.data;
-
-import android.database.Cursor;
-import android.util.Log;
-
-import net.micode.notes.data.Notes;
-import net.micode.notes.data.Notes.NoteColumns;
-import net.micode.notes.gtask.exception.ActionFailureException;
-import net.micode.notes.tool.GTaskStringUtils;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.util.ArrayList;
-
-
-public class TaskList extends Node {
-    private static final String TAG = TaskList.class.getSimpleName();//tag标记
-
-    private int mIndex;//当前TaskList的指针
-
-    private ArrayList<Task> mChildren;//类中主要的保存数据的单元，用来实现一个以Task为元素的ArrayList
-
-    public TaskList() {
-        super();
-        mChildren = new ArrayList<Task>();
-        mIndex = 1;
-    }
-
-    // 生成并返回一个包含了一定数据的JSONObject实体
-    public JSONObject getCreateAction(int actionId) {
-        JSONObject js = new JSONObject();
-
-        try {
-            // action_type
-            js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE,
-                    GTaskStringUtils.GTASK_JSON_ACTION_TYPE_CREATE);
-
-            // action_id
-            js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId);
-
-            // index
-            js.put(GTaskStringUtils.GTASK_JSON_INDEX, mIndex);
-
-            // entity_delta
-            JSONObject entity = new JSONObject();//entity实体
-            entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName());
-            entity.put(GTaskStringUtils.GTASK_JSON_CREATOR_ID, "null");
-            entity.put(GTaskStringUtils.GTASK_JSON_ENTITY_TYPE,
-                    GTaskStringUtils.GTASK_JSON_TYPE_GROUP);
-            js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity);
-
-        } catch (JSONException e) {
-            Log.e(TAG, e.toString());
-            e.printStackTrace();
-            throw new ActionFailureException("fail to generate tasklist-create jsonobject");
-        }
-
-        return js;
-    }
-
-    //生成并返回一个包含了一定数据的JSONObject实体
-    public JSONObject getUpdateAction(int actionId) {
-        JSONObject js = new JSONObject();
-
-        try {
-            // action_type
-            js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE,
-                    GTaskStringUtils.GTASK_JSON_ACTION_TYPE_UPDATE);
-
-            // action_id
-            js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId);
-
-            // id
-            js.put(GTaskStringUtils.GTASK_JSON_ID, getGid());
-
-            // entity_delta
-            JSONObject entity = new JSONObject();
-            entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName());
-            entity.put(GTaskStringUtils.GTASK_JSON_DELETED, getDeleted());
-            js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity);
-
-        } catch (JSONException e) {
-            Log.e(TAG, e.toString());
-            e.printStackTrace();
-            throw new ActionFailureException("fail to generate tasklist-update jsonobject");
-        }
-
-        return js;
-    }
-
-    public void setContentByRemoteJSON(JSONObject js) {
-        if (js != null) {
-            try {
-                // id
-                if (js.has(GTaskStringUtils.GTASK_JSON_ID)) {
-                    setGid(js.getString(GTaskStringUtils.GTASK_JSON_ID));
-                }
-
-                // last_modified
-                if (js.has(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)) {
-                    setLastModified(js.getLong(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED));
-                }
-
-                // name
-                if (js.has(GTaskStringUtils.GTASK_JSON_NAME)) {
-                    setName(js.getString(GTaskStringUtils.GTASK_JSON_NAME));
-                }
-
-            } catch (JSONException e) {
-                Log.e(TAG, e.toString());
-                e.printStackTrace();
-                throw new ActionFailureException("fail to get tasklist content from jsonobject");
-            }
-        }
-    }
-
-    public void setContentByLocalJSON(JSONObject js) {
-        if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE)) {
-            Log.w(TAG, "setContentByLocalJSON: nothing is avaiable");
-        }
-
-        try {
-            JSONObject folder = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE);
-
-            if (folder.getInt(NoteColumns.TYPE) == Notes.TYPE_FOLDER) {
-                String name = folder.getString(NoteColumns.SNIPPET);
-                setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + name);
-            } else if (folder.getInt(NoteColumns.TYPE) == Notes.TYPE_SYSTEM) {
-                if (folder.getLong(NoteColumns.ID) == Notes.ID_ROOT_FOLDER)
-                    setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT);
-                else if (folder.getLong(NoteColumns.ID) == Notes.ID_CALL_RECORD_FOLDER)
-                    setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX
-                            + GTaskStringUtils.FOLDER_CALL_NOTE);
-                else
-                    Log.e(TAG, "invalid system folder");
-            } else {
-                Log.e(TAG, "error type");
-            }
-        } catch (JSONException e) {
-            Log.e(TAG, e.toString());
-            e.printStackTrace();
-        }
-    }
-
-    public JSONObject getLocalJSONFromContent() {
-        try {
-            JSONObject js = new JSONObject();
-            JSONObject folder = new JSONObject();
-
-            String folderName = getName();
-            if (getName().startsWith(GTaskStringUtils.MIUI_FOLDER_PREFFIX))
-                folderName = folderName.substring(GTaskStringUtils.MIUI_FOLDER_PREFFIX.length(),
-                        folderName.length());
-            folder.put(NoteColumns.SNIPPET, folderName);
-            if (folderName.equals(GTaskStringUtils.FOLDER_DEFAULT)
-                    || folderName.equals(GTaskStringUtils.FOLDER_CALL_NOTE))
-                folder.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
-            else
-                folder.put(NoteColumns.TYPE, Notes.TYPE_FOLDER);
-
-            js.put(GTaskStringUtils.META_HEAD_NOTE, folder);
-
-            return js;
-        } catch (JSONException e) {
-            Log.e(TAG, e.toString());
-            e.printStackTrace();
-            return null;
-        }
-    }
-
-    public int getSyncAction(Cursor c) {
-        try {
-            if (c.getInt(SqlNote.LOCAL_MODIFIED_COLUMN) == 0) {
-                // there is no local update
-                if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) {
-                    // no update both side
-                    return SYNC_ACTION_NONE;
-                } else {
-                    // apply remote to local
-                    return SYNC_ACTION_UPDATE_LOCAL;
-                }
-            } else {
-                // validate gtask id
-                if (!c.getString(SqlNote.GTASK_ID_COLUMN).equals(getGid())) {
-                    Log.e(TAG, "gtask id doesn't match");
-                    return SYNC_ACTION_ERROR;
-                }
-                if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) {
-                    // local modification only
-                    return SYNC_ACTION_UPDATE_REMOTE;
-                } else {
-                    // for folder conflicts, just apply local modification
-                    return SYNC_ACTION_UPDATE_REMOTE;
-                }
-            }
-        } catch (Exception e) {
-            Log.e(TAG, e.toString());
-            e.printStackTrace();
-        }
-
-        return SYNC_ACTION_ERROR;
-    }
-
-    //获得TaskList的大小，即mChildren的大小
-    public int getChildTaskCount() {
-        return mChildren.size();
-    }
-
-    //在当前任务表末尾添加新的任务
-    public boolean addChildTask(Task task) {
-        boolean ret = false;
-        if (task != null && !mChildren.contains(task)) {
-            ret = mChildren.add(task);
-            if (ret) {
-                // need to set prior sibling and parent
-                task.setPriorSibling(mChildren.isEmpty() ? null : mChildren
-                        .get(mChildren.size() - 1));
-                task.setParent(this);
-                //每一次ArrayList的变化都要紧跟相关Task中PriorSibling
-
-            }
-        }
-        return ret;
-    }
-
-    //在当前任务表的指定位置添加新的任务
-    public boolean addChildTask(Task task, int index) {
-        if (index < 0 || index > mChildren.size()) {
-            Log.e(TAG, "add child task: invalid index");
-            return false;
-        }
-
-        int pos = mChildren.indexOf(task);
-        if (task != null && pos == -1) {
-            mChildren.add(index, task);
-
-            // update the task list
-            Task preTask = null;
-            Task afterTask = null;
-            if (index != 0)
-                preTask = mChildren.get(index - 1);
-            if (index != mChildren.size() - 1)
-                afterTask = mChildren.get(index + 1);
-
-            task.setPriorSibling(preTask);
-            if (afterTask != null)
-                afterTask.setPriorSibling(task);
-        }
-
-        return true;
-    }
-
-    //删除TaskList中的一个Task
-    public boolean removeChildTask(Task task) {
-        boolean ret = false;
-        int index = mChildren.indexOf(task);
-        if (index != -1) {
-            ret = mChildren.remove(task);
-
-            if (ret) {
-                // reset prior sibling and parent
-                task.setPriorSibling(null);
-                task.setParent(null);
-
-                // update the task list
-                if (index != mChildren.size()) {
-                    mChildren.get(index).setPriorSibling(
-                            index == 0 ? null : mChildren.get(index - 1));
-                }
-            }
-        }
-        return ret;
-    }
-
-    //将当前TaskList中含有的某个Task移到index位置
-    public boolean moveChildTask(Task task, int index) {
-
-        if (index < 0 || index >= mChildren.size()) {
-            Log.e(TAG, "move child task: invalid index");
-            return false;
-        }
-
-        int pos = mChildren.indexOf(task);
-        if (pos == -1) {
-            Log.e(TAG, "move child task: the task should in the list");
-            return false;
-        }
-
-        if (pos == index)
-            return true;
-        return (removeChildTask(task) && addChildTask(task, index));
-        //利用已实现好的功能完成当下功能；
-    }
-
-    //功能：按gid寻找Task
-    public Task findChildTaskByGid(String gid) {
-        for (int i = 0; i < mChildren.size(); i++) {
-            Task t = mChildren.get(i);
-            if (t.getGid().equals(gid)) {
-                return t;
-            }
-        }
-        return null;
-    }
-
-    //返回指定Task的index
-    public int getChildTaskIndex(Task task) {
-        return mChildren.indexOf(task);
-    }
-
-    //返回指定index的Task
-    public Task getChildTaskByIndex(int index) {
-        if (index < 0 || index >= mChildren.size()) {
-            Log.e(TAG, "getTaskByIndex: invalid index");
-            return null;
-        }
-        return mChildren.get(index);
-    }
-
-    //返回指定gid的Task
-    public Task getChilTaskByGid(String gid) {
-        for (Task task : mChildren) {//一种常见的ArrayList的遍历方法（四种，见精读笔记）
-            if (task.getGid().equals(gid))
-                return task;
-        }
-        return null;
-    }
-
-    public ArrayList<Task> getChildTaskList() {
-        return this.mChildren;
-    }
-
-    public void setIndex(int index) {
-        this.mIndex = index;
-    }
-
-    public int getIndex() {
-        return this.mIndex;
-    }
-}
\ No newline at end of file
diff --git a/doc/remote/GTaskASyncTask.java b/doc/remote/GTaskASyncTask.java
deleted file mode 100644
index d7bd6da..0000000
--- a/doc/remote/GTaskASyncTask.java
+++ /dev/null
@@ -1,123 +0,0 @@
-
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.gtask.remote;
-
-import android.app.Notification;
-import android.app.NotificationManager;
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.Intent;
-import android.os.AsyncTask;
-
-import net.micode.notes.R;//引入android自动生成的R类
-import net.micode.notes.ui.NotesListActivity;
-import net.micode.notes.ui.NotesPreferenceActivity;
-
-//类：扩展于AysyncTask类，是用来处理GTask的异步任务的类
-public class GTaskASyncTask extends AsyncTask<Void, String, Integer> {
-
-    private static int GTASK_SYNC_NOTIFICATION_ID = 5234235;
-
-    public interface OnCompleteListener {//通过interface实现多个接口，接口为OnCompleteListener，用来初始化异步的功能
-        void onComplete();
-    }
-
-    private Context mContext;
-
-    private NotificationManager mNotifiManager;
-
-    private GTaskManager mTaskManager;
-    //函数： GTaskASyncTask类的构造函数
-    private OnCompleteListener mOnCompleteListener;
-
-    public GTaskASyncTask(Context context, OnCompleteListener listener) {
-        mContext = context;
-        mOnCompleteListener = listener;
-        mNotifiManager = (NotificationManager) mContext
-                .getSystemService(Context.NOTIFICATION_SERVICE);
-        mTaskManager = GTaskManager.getInstance();
-    }
-    //方法：中断同步操作
-    public void cancelSync() {
-        mTaskManager.cancelSync();
-    }
-    //方法： 提交后台进度，并调用onProgressUpdate方法来更新进度条
-    public void publishProgess(String message) {
-        publishProgress(new String[] {
-            message
-        });
-    }
-    //方法：显示通知消息，在这里主要用于向用户通知同步的进程
-    private void showNotification(int tickerId, String content) {
-        Notification notification = new Notification(R.drawable.notification, mContext
-                .getString(tickerId), System.currentTimeMillis());
-        notification.defaults = Notification.DEFAULT_LIGHTS;
-        notification.flags = Notification.FLAG_AUTO_CANCEL;
-        PendingIntent pendingIntent;
-        if (tickerId != R.string.ticker_success) {
-            pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext,
-                    NotesPreferenceActivity.class), 0);
-
-        } else {
-            pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext,
-                    NotesListActivity.class), 0);
-        }
-        /*notification.setLatestEventInfo(mContext, mContext.getString(R.string.app_name), content,
-                pendingIntent);*/
-        mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification);
-    }
-    //方法：异步执行后台线程将要完成的任务
-    @Override
-    protected Integer doInBackground(Void... unused) {
-        publishProgess(mContext.getString(R.string.sync_progress_login, NotesPreferenceActivity
-                .getSyncAccountName(mContext)));
-        return mTaskManager.sync(mContext, this);
-    }
-    //方法：在调用publishProgress时，该方法被执行，并将进度信息更新到UI组件中
-    @Override
-    protected void onProgressUpdate(String... progress) {
-        showNotification(R.string.ticker_syncing, progress[0]);
-        if (mContext instanceof GTaskSyncService) {
-            ((GTaskSyncService) mContext).sendBroadcast(progress[0]);
-        }
-    }
-    //方法： 在dolnBackground执行完成后，该方法会被UI线程调用，将后台的计算结果传递到UI进程，并在界面上展示出来
-    @Override
-    protected void onPostExecute(Integer result) {
-        if (result == GTaskManager.STATE_SUCCESS) {
-            showNotification(R.string.ticker_success, mContext.getString(
-                    R.string.success_sync_account, mTaskManager.getSyncAccount()));
-            NotesPreferenceActivity.setLastSyncTime(mContext, System.currentTimeMillis());
-        } else if (result == GTaskManager.STATE_NETWORK_ERROR) {
-            showNotification(R.string.ticker_fail, mContext.getString(R.string.error_sync_network));
-        } else if (result == GTaskManager.STATE_INTERNAL_ERROR) {
-            showNotification(R.string.ticker_fail, mContext.getString(R.string.error_sync_internal));
-        } else if (result == GTaskManager.STATE_SYNC_CANCELLED) {
-            showNotification(R.string.ticker_cancel, mContext
-                    .getString(R.string.error_sync_cancelled));
-        }
-        if (mOnCompleteListener != null) {
-            new Thread(new Runnable() {
-
-                public void run() {
-                    mOnCompleteListener.onComplete();
-                }
-            }).start();
-        }
-    }
-}
diff --git a/doc/remote/GTaskClient.java b/doc/remote/GTaskClient.java
deleted file mode 100644
index c9c8bf6..0000000
--- a/doc/remote/GTaskClient.java
+++ /dev/null
@@ -1,662 +0,0 @@
- /*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.gtask.remote;
-
-import android.accounts.Account;
-import android.accounts.AccountManager;
-import android.accounts.AccountManagerFuture;
-import android.app.Activity;
-import android.os.Bundle;
-import android.text.TextUtils;
-import android.util.Log;
-
-import net.micode.notes.gtask.data.Node;
-import net.micode.notes.gtask.data.Task;
-import net.micode.notes.gtask.data.TaskList;
-import net.micode.notes.gtask.exception.ActionFailureException;
-import net.micode.notes.gtask.exception.NetworkFailureException;
-import net.micode.notes.tool.GTaskStringUtils;
-import net.micode.notes.ui.NotesPreferenceActivity;
-
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.ClientProtocolException;
-import org.apache.http.client.entity.UrlEncodedFormEntity;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.cookie.Cookie;
-import org.apache.http.impl.client.BasicCookieStore;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.message.BasicNameValuePair;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpConnectionParams;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.HttpProtocolParams;
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.zip.GZIPInputStream;
-import java.util.zip.Inflater;
-import java.util.zip.InflaterInputStream;
-
-
- public class GTaskClient {
-     private static final String TAG = GTaskClient.class.getSimpleName();
-
-     private static final String GTASK_URL = "https://mail.google.com/tasks/";
-
-     private static final String GTASK_GET_URL = "https://mail.google.com/tasks/ig";
-
-     private static final String GTASK_POST_URL = "https://mail.google.com/tasks/r/ig";
-
-     private static GTaskClient mInstance = null;
-
-     private DefaultHttpClient mHttpClient;
-
-     private String mGetUrl;
-
-     private String mPostUrl;
-
-     private long mClientVersion;
-
-     private boolean mLoggedin;
-
-     private long mLastLoginTime;
-
-     private int mActionId;
-
-     private Account mAccount;
-
-     private JSONArray mUpdateArray;
-
-     private GTaskClient() {
-         mHttpClient = null;
-         mGetUrl = GTASK_GET_URL;
-         mPostUrl = GTASK_POST_URL;
-         mClientVersion = -1;
-         mLoggedin = false;
-         mLastLoginTime = 0;
-         mActionId = 1;
-         mAccount = null;
-         mUpdateArray = null;
-     }
-
-     /*用来获取的实例化对象
-      * 使用 getInstance()
-      * 返回mInstance这个实例化对象
-      */
-     public static synchronized GTaskClient getInstance() {
-         if (mInstance == null) {
-             mInstance = new GTaskClient();
-         }
-         return mInstance;
-     }
-
-     //用来实现登录操作的函数，传入Activity
-     public boolean login(Activity activity) {
-         // we suppose that the cookie would expire after 5 minutes
-         // then we need to re-login
-         //判断距离最后一次登录操作是否超过5分钟
-         final long interval = 1000 * 60 * 5;
-         if (mLastLoginTime + interval < System.currentTimeMillis()) {
-             mLoggedin = false;
-         }
-
-         // need to re-login after account switch  重新登录操作
-         if (mLoggedin
-                 && !TextUtils.equals(getSyncAccount().name, NotesPreferenceActivity
-                 .getSyncAccountName(activity))) {
-             mLoggedin = false;
-         }
-
-         //如果没超过时间，则不需要重新登录
-         if (mLoggedin) {
-             Log.d(TAG, "already logged in");
-             return true;
-         }
-
-         mLastLoginTime = System.currentTimeMillis();//更新最后登录时间，改为系统当前的时间
-         String authToken = loginGoogleAccount(activity, false);//判断是否登录到谷歌账户
-         if (authToken == null) {
-             Log.e(TAG, "login google account failed");
-             return false;
-         }
-
-         // login with custom domain if necessary
-         //尝试使用用户自己的域名登录
-         if (!(mAccount.name.toLowerCase().endsWith("gmail.com") || mAccount.name.toLowerCase() //将用户账号名改为统一格式（小写）后判断是否为一个谷歌账号地址
-                 .endsWith("googlemail.com"))) {
-             StringBuilder url = new StringBuilder(GTASK_URL).append("a/");
-             int index = mAccount.name.indexOf('@') + 1;
-             String suffix = mAccount.name.substring(index);
-             url.append(suffix + "/");
-             mGetUrl = url.toString() + "ig";  //设置用户对应的getUrl
-             mPostUrl = url.toString() + "r/ig";  //设置用户对应的postUrl
-
-             if (tryToLoginGtask(activity, authToken)) {
-                 mLoggedin = true;
-             }
-         }
-
-         // try to login with google official url
-         //如果用户账户无法登录，则使用谷歌官方的URI进行登录
-         if (!mLoggedin) {
-             mGetUrl = GTASK_GET_URL;
-             mPostUrl = GTASK_POST_URL;
-             if (!tryToLoginGtask(activity, authToken)) {
-                 return false;
-             }
-         }
-
-         mLoggedin = true;
-         return true;
-     }
-
-     //具体实现登录谷歌账户
-
-     private String loginGoogleAccount(Activity activity, boolean invalidateToken) {
-         String authToken;  //令牌，是登录操作保证安全性的一个方法
-         AccountManager accountManager = AccountManager.get(activity);//AccountManager这个类给用户提供了集中注册账号的接口
-         Account[] accounts = accountManager.getAccountsByType("com.google");//获取全部以com.google结尾的account
-
-         if (accounts.length == 0) {
-             Log.e(TAG, "there is no available google account");
-             return null;
-         }
-
-         String accountName = NotesPreferenceActivity.getSyncAccountName(activity);
-         Account account = null;
-         //遍历获得的accounts信息，寻找已经记录过的账户信息
-         for (Account a : accounts) {
-             if (a.name.equals(accountName)) {
-                 account = a;
-                 break;
-             }
-         }
-         if (account != null) {
-             mAccount = account;
-         } else {
-             Log.e(TAG, "unable to get an account with the same name in the settings");
-             return null;
-         }
-
-         // get the token now
-         //获取选中账号的令牌
-         AccountManagerFuture<Bundle> accountManagerFuture = accountManager.getAuthToken(account,
-                 "goanna_mobile", null, activity, null, null);
-         try {
-             Bundle authTokenBundle = accountManagerFuture.getResult();
-             authToken = authTokenBundle.getString(AccountManager.KEY_AUTHTOKEN);
-             //如果是invalidateToken，那么需要调用invalidateAuthToken(String, String)方法废除这个无效token
-             if (invalidateToken) {
-                 accountManager.invalidateAuthToken("com.google", authToken);
-                 loginGoogleAccount(activity, false);
-             }
-         } catch (Exception e) {
-             Log.e(TAG, "get auth token failed");
-             authToken = null;
-         }
-
-         return authToken;
-     }
-
-     //尝试登陆Gtask，这只是一个预先判断令牌是否是有效以及是否能登上GTask的方法,而不是具体实现登陆的方法
-     private boolean tryToLoginGtask(Activity activity, String authToken) {
-         if (!loginGtask(authToken)) {
-             // maybe the auth token is out of authTokedate, now let's invalidate the
-             // token and try again
-             //删除过一个无效的authToken，申请一个新的后再次尝试登陆
-             authToken = loginGoogleAccount(activity, true);
-             if (authToken == null) {
-                 Log.e(TAG, "login google account failed");
-                 return false;
-             }
-
-             if (!loginGtask(authToken)) {
-                 Log.e(TAG, "login gtask failed");
-                 return false;
-             }
-         }
-         return true;
-     }
-
-     //实现登录GTask的具体操作
-     private boolean loginGtask(String authToken) {
-         int timeoutConnection = 10000;
-         int timeoutSocket = 15000;  //socket是一种通信连接实现数据的交换的端口
-         HttpParams httpParameters = new BasicHttpParams(); //实例化一个新的HTTP参数类
-         HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);//设置连接超时时间
-         HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);//设置设置端口超时时间
-         mHttpClient = new DefaultHttpClient(httpParameters);
-         BasicCookieStore localBasicCookieStore = new BasicCookieStore(); //设置本地cookie
-         mHttpClient.setCookieStore(localBasicCookieStore);
-         HttpProtocolParams.setUseExpectContinue(mHttpClient.getParams(), false);
-
-         // login gtask
-         try {
-             String loginUrl = mGetUrl + "?auth=" + authToken;  //设置登录的url
-             HttpGet httpGet = new HttpGet(loginUrl);  //通过登录的uri实例化网页上资源的查找
-             HttpResponse response = null;
-             response = mHttpClient.execute(httpGet);
-
-             // get the cookie now
-             //获取CookieStore里存放的cookie,看如果存有“GTL(不知道什么意思)”，则说明有验证成功的有效的cookie
-             List<Cookie> cookies = mHttpClient.getCookieStore().getCookies();
-             boolean hasAuthCookie = false;
-             for (Cookie cookie : cookies) {
-                 if (cookie.getName().contains("GTL")) {
-                     hasAuthCookie = true;
-                 }
-             }
-             if (!hasAuthCookie) {
-                 Log.w(TAG, "it seems that there is no auth cookie");
-             }
-
-             // get the client version
-             //获取client的内容，具体操作是在返回的Content中截取从_setup(开始到)}</script>中间的字符串内容，也就是gtask_url的内容
-             String resString = getResponseContent(response.getEntity());
-             String jsBegin = "_setup(";
-             String jsEnd = ")}</script>";
-             int begin = resString.indexOf(jsBegin);
-             int end = resString.lastIndexOf(jsEnd);
-             String jsString = null;
-             if (begin != -1 && end != -1 && begin < end) {
-                 jsString = resString.substring(begin + jsBegin.length(), end);
-             }
-             JSONObject js = new JSONObject(jsString);
-             mClientVersion = js.getLong("v");
-         } catch (JSONException e) {
-             Log.e(TAG, e.toString());
-             e.printStackTrace();
-             return false;
-         } catch (Exception e) {
-             // simply catch all exceptions
-             Log.e(TAG, "httpget gtask_url failed");
-             return false;
-         }
-
-         return true;
-     }
-
-     private int getActionId() {
-         return mActionId++;
-     }
-
-     /*实例化创建一个用于向网络传输数据的对象
-      * 使用HttpPost类
-      * 返回一个httpPost实例化对象，但里面还没有内容
-      */
-     private HttpPost createHttpPost() {
-         HttpPost httpPost = new HttpPost(mPostUrl);
-         httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
-         httpPost.setHeader("AT", "1");
-         return httpPost;
-     }
-
-     /*通过URL获取响应后返回的数据，也就是网络上的数据和资源
-      * 使用getContentEncoding()获取网络上的资源和数据
-      * 返回值就是获取到的资源
-      */
-     private String getResponseContent(HttpEntity entity) throws IOException {
-         String contentEncoding = null;
-         if (entity.getContentEncoding() != null) {//通过URL得到HttpEntity对象，如果不为空则使用getContent（）方法创建一个流将数据从网络都过来
-             contentEncoding = entity.getContentEncoding().getValue();
-             Log.d(TAG, "encoding: " + contentEncoding);
-         }
-
-         InputStream input = entity.getContent();
-         if (contentEncoding != null && contentEncoding.equalsIgnoreCase("gzip")) {//GZIP是使用DEFLATE进行压缩数据的另一个压缩库
-             input = new GZIPInputStream(entity.getContent());
-         } else if (contentEncoding != null && contentEncoding.equalsIgnoreCase("deflate")) {//DEFLATE是一个无专利的压缩算法，它可以实现无损数据压缩
-             Inflater inflater = new Inflater(true);
-             input = new InflaterInputStream(entity.getContent(), inflater);
-         }
-
-         try {
-             InputStreamReader isr = new InputStreamReader(input);
-             BufferedReader br = new BufferedReader(isr);//是一个包装类，它可以包装字符流，将字符流放入缓存里，先把字符读到缓存里，到缓存满了时候，再读入内存，是为了提供读的效率而设计的
-             StringBuilder sb = new StringBuilder();
-
-             while (true) {
-                 String buff = br.readLine();
-                 if (buff == null) {
-                     return sb.toString();
-                 }
-                 sb = sb.append(buff);
-             }
-         } finally {
-             input.close();
-         }
-     }
-
-     /*通过JSON发送请求
-      * 请求的具体内容在json的实例化对象js中然后传入
-      * 利用UrlEncodedFormEntity entity和httpPost.setEntity(entity)方法把js中的内容放置到httpPost中
-      * 执行请求后使用getResponseContent方法得到返回的数据和资源
-      * 将资源再次放入json后返回
-      */
-     private JSONObject postRequest(JSONObject js) throws NetworkFailureException {
-         if (!mLoggedin) {//未登录
-             Log.e(TAG, "please login first");
-             throw new ActionFailureException("not logged in");
-         }
-
-         //实例化一个httpPost的对象用来向服务器传输数据，在这里就是发送请求，而请求的内容在js里
-         HttpPost httpPost = createHttpPost();
-         try {
-             LinkedList<BasicNameValuePair> list = new LinkedList<BasicNameValuePair>();
-             list.add(new BasicNameValuePair("r", js.toString()));
-             UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, "UTF-8"); //UrlEncodedFormEntity()的形式比较单一，是普通的键值对
-             httpPost.setEntity(entity);
-
-             // execute the post
-             //执行这个请求
-             HttpResponse response = mHttpClient.execute(httpPost);
-             String jsString = getResponseContent(response.getEntity());
-             return new JSONObject(jsString);
-
-         } catch (ClientProtocolException e) {
-             Log.e(TAG, e.toString());
-             e.printStackTrace();
-             throw new NetworkFailureException("postRequest failed");
-         } catch (IOException e) {
-             Log.e(TAG, e.toString());
-             e.printStackTrace();
-             throw new NetworkFailureException("postRequest failed");
-         } catch (JSONException e) {
-             Log.e(TAG, e.toString());
-             e.printStackTrace();
-             throw new ActionFailureException("unable to convert response content to jsonobject");
-         } catch (Exception e) {
-             Log.e(TAG, e.toString());
-             e.printStackTrace();
-             throw new ActionFailureException("error occurs when posting request");
-         }
-     }
-
-     /*创建单个任务
-      * 传入参数是一个.gtask.data.Task包里Task类的对象
-      * 利用json获取Task里的内容,并且创建相应的jsPost
-      * 利用postRequest得到任务的返回信息
-      * 使用task.setGid设置task的new_ID
-      */
-     public void createTask(Task task) throws NetworkFailureException {
-         commitUpdate();
-         try {
-             JSONObject jsPost = new JSONObject();
-             JSONArray actionList = new JSONArray();
-
-             // action_list
-             actionList.put(task.getCreateAction(getActionId()));
-             jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList);
-
-             // client_version
-             jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion);
-
-             // post
-             JSONObject jsResponse = postRequest(jsPost);
-             JSONObject jsResult = (JSONObject) jsResponse.getJSONArray(
-                     GTaskStringUtils.GTASK_JSON_RESULTS).get(0);
-             task.setGid(jsResult.getString(GTaskStringUtils.GTASK_JSON_NEW_ID));
-
-         } catch (JSONException e) {
-             Log.e(TAG, e.toString());
-             e.printStackTrace();
-             throw new ActionFailureException("create task: handing jsonobject failed");
-         }
-     }
-
-     /*
-      * 创建一个任务列表，与createTask几乎一样，区别就是最后设置的是tasklist的gid
-      */
-     public void createTaskList(TaskList tasklist) throws NetworkFailureException {
-         commitUpdate();
-         try {
-             JSONObject jsPost = new JSONObject();
-             JSONArray actionList = new JSONArray();
-
-             // action_list
-             actionList.put(tasklist.getCreateAction(getActionId()));
-             jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList);
-
-             // client version
-             jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion);
-
-             // post
-             JSONObject jsResponse = postRequest(jsPost);
-             JSONObject jsResult = (JSONObject) jsResponse.getJSONArray(
-                     GTaskStringUtils.GTASK_JSON_RESULTS).get(0);
-             tasklist.setGid(jsResult.getString(GTaskStringUtils.GTASK_JSON_NEW_ID));
-
-         } catch (JSONException e) {
-             Log.e(TAG, e.toString());
-             e.printStackTrace();
-             throw new ActionFailureException("create tasklist: handing jsonobject failed");
-         }
-     }
-
-     /*
-      * 同步更新操作
-      * 使用JSONObject进行数据存储，使用jsPost.put，Put的信息包括UpdateArray和ClientVersion
-      * 使用postRequest发送这个jspost,进行处理
-      */
-     public void commitUpdate() throws NetworkFailureException {
-         if (mUpdateArray != null) {
-             try {
-                 JSONObject jsPost = new JSONObject();
-
-                 // action_list
-                 jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, mUpdateArray);
-
-                 // client_version
-                 jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion);
-
-                 postRequest(jsPost);
-                 mUpdateArray = null;
-             } catch (JSONException e) {
-                 Log.e(TAG, e.toString());
-                 e.printStackTrace();
-                 throw new ActionFailureException("commit update: handing jsonobject failed");
-             }
-         }
-     }
-
-     /*
-      * 添加更新的事项
-      * 调用commitUpdate()实现
-      */
-     public void addUpdateNode(Node node) throws NetworkFailureException {
-         if (node != null) {
-             // too many update items may result in an error
-             // set max to 10 items
-             if (mUpdateArray != null && mUpdateArray.length() > 10) {
-                 commitUpdate();
-             }
-
-             if (mUpdateArray == null)
-                 mUpdateArray = new JSONArray();
-             mUpdateArray.put(node.getUpdateAction(getActionId()));
-         }
-     }
-
-     /*
-      * 移动task,比如讲task移动到不同的task列表中去
-      * 通过getGid获取task所属列表的gid
-      * 通过JSONObject.put(String name, Object value)函数设置移动后的task的相关属性值，从而达到移动的目的
-      * 最后还是通过postRequest进行更新后的发送
-      */
-     public void moveTask(Task task, TaskList preParent, TaskList curParent)
-             throws NetworkFailureException {
-         commitUpdate();
-         try {
-             JSONObject jsPost = new JSONObject();
-             JSONArray actionList = new JSONArray();
-             JSONObject action = new JSONObject();
-
-             // action_list
-             action.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE,
-                     GTaskStringUtils.GTASK_JSON_ACTION_TYPE_MOVE);
-             action.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, getActionId());
-             action.put(GTaskStringUtils.GTASK_JSON_ID, task.getGid());
-             if (preParent == curParent && task.getPriorSibling() != null) {
-                 // put prioring_sibing_id only if moving within the tasklist and
-                 // it is not the first one
-                 //设置优先级ID，只有当移动是发生在文件中
-                 action.put(GTaskStringUtils.GTASK_JSON_PRIOR_SIBLING_ID, task.getPriorSibling());
-             }
-             action.put(GTaskStringUtils.GTASK_JSON_SOURCE_LIST, preParent.getGid());  //设置移动前所属列表
-             action.put(GTaskStringUtils.GTASK_JSON_DEST_PARENT, curParent.getGid());  //设置当前所属列表
-             if (preParent != curParent) {
-                 // put the dest_list only if moving between tasklists
-                 action.put(GTaskStringUtils.GTASK_JSON_DEST_LIST, curParent.getGid());
-             }
-             actionList.put(action);
-             //最后将ACTION_LIST加入到jsPost中
-             jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList);
-
-             // client_version
-             jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion);
-
-             postRequest(jsPost);
-
-         } catch (JSONException e) {
-             Log.e(TAG, e.toString());
-             e.printStackTrace();
-             throw new ActionFailureException("move task: handing jsonobject failed");
-         }
-     }
-
-     /*
-      * 删除操作节点
-      * 还是利用JSON
-      * 删除过后使用postRequest发送删除后的结果
-      */
-     public void deleteNode(Node node) throws NetworkFailureException {
-         commitUpdate();
-         try {
-             JSONObject jsPost = new JSONObject();
-             JSONArray actionList = new JSONArray();
-
-             // action_list
-             node.setDeleted(true);
-             actionList.put(node.getUpdateAction(getActionId()));  //这里会获取到删除操作的ID，加入到actionLiast中
-             jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList);
-
-             // client_version
-             jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion);
-
-             postRequest(jsPost);
-             mUpdateArray = null;
-         } catch (JSONException e) {
-             Log.e(TAG, e.toString());
-             e.printStackTrace();
-             throw new ActionFailureException("delete node: handing jsonobject failed");
-         }
-     }
-
-     /*
-      * 获取任务列表
-      * 首先通过GetURI使用getResponseContent从网上获取数据
-      * 然后筛选出"_setup("到)}</script>的部分，并且从中获取GTASK_JSON_LISTS的内容返回
-      */
-     public JSONArray getTaskLists() throws NetworkFailureException {
-         if (!mLoggedin) {
-             Log.e(TAG, "please login first");
-             throw new ActionFailureException("not logged in");
-         }
-
-         try {
-             HttpGet httpGet = new HttpGet(mGetUrl);
-             HttpResponse response = null;
-             response = mHttpClient.execute(httpGet);
-
-             // get the task list
-             //筛选工作，把筛选出的字符串放入jsString
-             String resString = getResponseContent(response.getEntity());
-             String jsBegin = "_setup(";
-             String jsEnd = ")}</script>";
-             int begin = resString.indexOf(jsBegin);
-             int end = resString.lastIndexOf(jsEnd);
-             String jsString = null;
-             if (begin != -1 && end != -1 && begin < end) {
-                 jsString = resString.substring(begin + jsBegin.length(), end);
-             }
-             JSONObject js = new JSONObject(jsString);
-             //获取GTASK_JSON_LISTS
-             return js.getJSONObject("t").getJSONArray(GTaskStringUtils.GTASK_JSON_LISTS);
-         } catch (ClientProtocolException e) {
-             Log.e(TAG, e.toString());
-             e.printStackTrace();
-             throw new NetworkFailureException("gettasklists: httpget failed");
-         } catch (IOException e) {
-             Log.e(TAG, e.toString());
-             e.printStackTrace();
-             throw new NetworkFailureException("gettasklists: httpget failed");
-         } catch (JSONException e) {
-             Log.e(TAG, e.toString());
-             e.printStackTrace();
-             throw new ActionFailureException("get task lists: handing jasonobject failed");
-         }
-     }
-
-     /*
-      * 通过传入的TASKList的gid,从网络上获取相应属于这个任务列表的任务
-      */
-     public JSONArray getTaskList(String listGid) throws NetworkFailureException {
-         commitUpdate();
-         try {
-             JSONObject jsPost = new JSONObject();
-             JSONArray actionList = new JSONArray();
-             JSONObject action = new JSONObject();
-
-             // action_list
-             action.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE,
-                     GTaskStringUtils.GTASK_JSON_ACTION_TYPE_GETALL);
-             action.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, getActionId());
-             action.put(GTaskStringUtils.GTASK_JSON_LIST_ID, listGid);    //这里设置为传入的listGid
-             action.put(GTaskStringUtils.GTASK_JSON_GET_DELETED, false);
-             actionList.put(action);
-             jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList);
-
-             // client_version
-             jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion);
-
-             JSONObject jsResponse = postRequest(jsPost);
-             return jsResponse.getJSONArray(GTaskStringUtils.GTASK_JSON_TASKS);
-         } catch (JSONException e) {
-             Log.e(TAG, e.toString());
-             e.printStackTrace();
-             throw new ActionFailureException("get task list: handing jsonobject failed");
-         }
-     }
-
-     public Account getSyncAccount() {
-         return mAccount;
-     }
-
-     //重置更新的内容
-     public void resetUpdateArray() {
-         mUpdateArray = null;
-     }
- }
\ No newline at end of file
diff --git a/doc/remote/GTaskManager.java b/doc/remote/GTaskManager.java
deleted file mode 100644
index d2b4082..0000000
--- a/doc/remote/GTaskManager.java
+++ /dev/null
@@ -1,800 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.gtask.remote;
-
-import android.app.Activity;
-import android.content.ContentResolver;
-import android.content.ContentUris;
-import android.content.ContentValues;
-import android.content.Context;
-import android.database.Cursor;
-import android.util.Log;
-
-import net.micode.notes.R;
-import net.micode.notes.data.Notes;
-import net.micode.notes.data.Notes.DataColumns;
-import net.micode.notes.data.Notes.NoteColumns;
-import net.micode.notes.gtask.data.MetaData;
-import net.micode.notes.gtask.data.Node;
-import net.micode.notes.gtask.data.SqlNote;
-import net.micode.notes.gtask.data.Task;
-import net.micode.notes.gtask.data.TaskList;
-import net.micode.notes.gtask.exception.ActionFailureException;
-import net.micode.notes.gtask.exception.NetworkFailureException;
-import net.micode.notes.tool.DataUtils;
-import net.micode.notes.tool.GTaskStringUtils;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-
-
-public class GTaskManager {
-    private static final String TAG = GTaskManager.class.getSimpleName();
-
-    public static final int STATE_SUCCESS = 0;
-
-    public static final int STATE_NETWORK_ERROR = 1;
-
-    public static final int STATE_INTERNAL_ERROR = 2;
-
-    public static final int STATE_SYNC_IN_PROGRESS = 3;
-
-    public static final int STATE_SYNC_CANCELLED = 4;
-
-    private static GTaskManager mInstance = null;
-
-    private Activity mActivity;
-
-    private Context mContext;
-
-    private ContentResolver mContentResolver;
-
-    private boolean mSyncing;
-
-    private boolean mCancelled;
-
-    private HashMap<String, TaskList> mGTaskListHashMap;
-
-    private HashMap<String, Node> mGTaskHashMap;
-
-    private HashMap<String, MetaData> mMetaHashMap;
-
-    private TaskList mMetaList;
-
-    private HashSet<Long> mLocalDeleteIdMap;
-
-    private HashMap<String, Long> mGidToNid;
-
-    private HashMap<Long, String> mNidToGid;
-
-    private GTaskManager() {
-        mSyncing = false;
-        mCancelled = false;
-        mGTaskListHashMap = new HashMap<String, TaskList>();
-        mGTaskHashMap = new HashMap<String, Node>();
-        mMetaHashMap = new HashMap<String, MetaData>();
-        mMetaList = null;
-        mLocalDeleteIdMap = new HashSet<Long>();
-        mGidToNid = new HashMap<String, Long>();
-        mNidToGid = new HashMap<Long, String>();
-    }
-
-    public static synchronized GTaskManager getInstance() {
-        if (mInstance == null) {
-            mInstance = new GTaskManager();
-        }
-        return mInstance;
-    }
-
-    public synchronized void setActivityContext(Activity activity) {
-        // used for getting authtoken
-        mActivity = activity;
-    }
-
-    public int sync(Context context, GTaskASyncTask asyncTask) {
-        if (mSyncing) {
-            Log.d(TAG, "Sync is in progress");
-            return STATE_SYNC_IN_PROGRESS;
-        }
-        mContext = context;
-        mContentResolver = mContext.getContentResolver();
-        mSyncing = true;
-        mCancelled = false;
-        mGTaskListHashMap.clear();
-        mGTaskHashMap.clear();
-        mMetaHashMap.clear();
-        mLocalDeleteIdMap.clear();
-        mGidToNid.clear();
-        mNidToGid.clear();
-
-        try {
-            GTaskClient client = GTaskClient.getInstance();
-            client.resetUpdateArray();
-
-            // login google task
-            if (!mCancelled) {
-                if (!client.login(mActivity)) {
-                    throw new NetworkFailureException("login google task failed");
-                }
-            }
-
-            // get the task list from google
-            asyncTask.publishProgess(mContext.getString(R.string.sync_progress_init_list));
-            initGTaskList();
-
-            // do content sync work
-            asyncTask.publishProgess(mContext.getString(R.string.sync_progress_syncing));
-            syncContent();
-        } catch (NetworkFailureException e) {
-            Log.e(TAG, e.toString());
-            return STATE_NETWORK_ERROR;
-        } catch (ActionFailureException e) {
-            Log.e(TAG, e.toString());
-            return STATE_INTERNAL_ERROR;
-        } catch (Exception e) {
-            Log.e(TAG, e.toString());
-            e.printStackTrace();
-            return STATE_INTERNAL_ERROR;
-        } finally {
-            mGTaskListHashMap.clear();
-            mGTaskHashMap.clear();
-            mMetaHashMap.clear();
-            mLocalDeleteIdMap.clear();
-            mGidToNid.clear();
-            mNidToGid.clear();
-            mSyncing = false;
-        }
-
-        return mCancelled ? STATE_SYNC_CANCELLED : STATE_SUCCESS;
-    }
-
-    private void initGTaskList() throws NetworkFailureException {
-        if (mCancelled)
-            return;
-        GTaskClient client = GTaskClient.getInstance();
-        try {
-            JSONArray jsTaskLists = client.getTaskLists();
-
-            // init meta list first
-            mMetaList = null;
-            for (int i = 0; i < jsTaskLists.length(); i++) {
-                JSONObject object = jsTaskLists.getJSONObject(i);
-                String gid = object.getString(GTaskStringUtils.GTASK_JSON_ID);
-                String name = object.getString(GTaskStringUtils.GTASK_JSON_NAME);
-
-                if (name
-                        .equals(GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_META)) {
-                    mMetaList = new TaskList();
-                    mMetaList.setContentByRemoteJSON(object);
-
-                    // load meta data
-                    JSONArray jsMetas = client.getTaskList(gid);
-                    for (int j = 0; j < jsMetas.length(); j++) {
-                        object = (JSONObject) jsMetas.getJSONObject(j);
-                        MetaData metaData = new MetaData();
-                        metaData.setContentByRemoteJSON(object);
-                        if (metaData.isWorthSaving()) {
-                            mMetaList.addChildTask(metaData);
-                            if (metaData.getGid() != null) {
-                                mMetaHashMap.put(metaData.getRelatedGid(), metaData);
-                            }
-                        }
-                    }
-                }
-            }
-
-            // create meta list if not existed
-            if (mMetaList == null) {
-                mMetaList = new TaskList();
-                mMetaList.setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX
-                        + GTaskStringUtils.FOLDER_META);
-                GTaskClient.getInstance().createTaskList(mMetaList);
-            }
-
-            // init task list
-            for (int i = 0; i < jsTaskLists.length(); i++) {
-                JSONObject object = jsTaskLists.getJSONObject(i);
-                String gid = object.getString(GTaskStringUtils.GTASK_JSON_ID);
-                String name = object.getString(GTaskStringUtils.GTASK_JSON_NAME);
-
-                if (name.startsWith(GTaskStringUtils.MIUI_FOLDER_PREFFIX)
-                        && !name.equals(GTaskStringUtils.MIUI_FOLDER_PREFFIX
-                                + GTaskStringUtils.FOLDER_META)) {
-                    TaskList tasklist = new TaskList();
-                    tasklist.setContentByRemoteJSON(object);
-                    mGTaskListHashMap.put(gid, tasklist);
-                    mGTaskHashMap.put(gid, tasklist);
-
-                    // load tasks
-                    JSONArray jsTasks = client.getTaskList(gid);
-                    for (int j = 0; j < jsTasks.length(); j++) {
-                        object = (JSONObject) jsTasks.getJSONObject(j);
-                        gid = object.getString(GTaskStringUtils.GTASK_JSON_ID);
-                        Task task = new Task();
-                        task.setContentByRemoteJSON(object);
-                        if (task.isWorthSaving()) {
-                            task.setMetaInfo(mMetaHashMap.get(gid));
-                            tasklist.addChildTask(task);
-                            mGTaskHashMap.put(gid, task);
-                        }
-                    }
-                }
-            }
-        } catch (JSONException e) {
-            Log.e(TAG, e.toString());
-            e.printStackTrace();
-            throw new ActionFailureException("initGTaskList: handing JSONObject failed");
-        }
-    }
-
-    private void syncContent() throws NetworkFailureException {
-        int syncType;
-        Cursor c = null;
-        String gid;
-        Node node;
-
-        mLocalDeleteIdMap.clear();
-
-        if (mCancelled) {
-            return;
-        }
-
-        // for local deleted note
-        try {
-            c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE,
-                    "(type<>? AND parent_id=?)", new String[] {
-                            String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLER)
-                    }, null);
-            if (c != null) {
-                while (c.moveToNext()) {
-                    gid = c.getString(SqlNote.GTASK_ID_COLUMN);
-                    node = mGTaskHashMap.get(gid);
-                    if (node != null) {
-                        mGTaskHashMap.remove(gid);
-                        doContentSync(Node.SYNC_ACTION_DEL_REMOTE, node, c);
-                    }
-
-                    mLocalDeleteIdMap.add(c.getLong(SqlNote.ID_COLUMN));
-                }
-            } else {
-                Log.w(TAG, "failed to query trash folder");
-            }
-        } finally {
-            if (c != null) {
-                c.close();
-                c = null;
-            }
-        }
-
-        // sync folder first
-        syncFolder();
-
-        // for note existing in database
-        try {
-            c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE,
-                    "(type=? AND parent_id<>?)", new String[] {
-                            String.valueOf(Notes.TYPE_NOTE), String.valueOf(Notes.ID_TRASH_FOLER)
-                    }, NoteColumns.TYPE + " DESC");
-            if (c != null) {
-                while (c.moveToNext()) {
-                    gid = c.getString(SqlNote.GTASK_ID_COLUMN);
-                    node = mGTaskHashMap.get(gid);
-                    if (node != null) {
-                        mGTaskHashMap.remove(gid);
-                        mGidToNid.put(gid, c.getLong(SqlNote.ID_COLUMN));
-                        mNidToGid.put(c.getLong(SqlNote.ID_COLUMN), gid);
-                        syncType = node.getSyncAction(c);
-                    } else {
-                        if (c.getString(SqlNote.GTASK_ID_COLUMN).trim().length() == 0) {
-                            // local add
-                            syncType = Node.SYNC_ACTION_ADD_REMOTE;
-                        } else {
-                            // remote delete
-                            syncType = Node.SYNC_ACTION_DEL_LOCAL;
-                        }
-                    }
-                    doContentSync(syncType, node, c);
-                }
-            } else {
-                Log.w(TAG, "failed to query existing note in database");
-            }
-
-        } finally {
-            if (c != null) {
-                c.close();
-                c = null;
-            }
-        }
-
-        // go through remaining items
-        Iterator<Map.Entry<String, Node>> iter = mGTaskHashMap.entrySet().iterator();
-        while (iter.hasNext()) {
-            Map.Entry<String, Node> entry = iter.next();
-            node = entry.getValue();
-            doContentSync(Node.SYNC_ACTION_ADD_LOCAL, node, null);
-        }
-
-        // mCancelled can be set by another thread, so we neet to check one by
-        // one
-        // clear local delete table
-        if (!mCancelled) {
-            if (!DataUtils.batchDeleteNotes(mContentResolver, mLocalDeleteIdMap)) {
-                throw new ActionFailureException("failed to batch-delete local deleted notes");
-            }
-        }
-
-        // refresh local sync id
-        if (!mCancelled) {
-            GTaskClient.getInstance().commitUpdate();
-            refreshLocalSyncId();
-        }
-
-    }
-
-    private void syncFolder() throws NetworkFailureException {
-        Cursor c = null;
-        String gid;
-        Node node;
-        int syncType;
-
-        if (mCancelled) {
-            return;
-        }
-
-        // for root folder
-        try {
-            c = mContentResolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI,
-                    Notes.ID_ROOT_FOLDER), SqlNote.PROJECTION_NOTE, null, null, null);
-            if (c != null) {
-                c.moveToNext();
-                gid = c.getString(SqlNote.GTASK_ID_COLUMN);
-                node = mGTaskHashMap.get(gid);
-                if (node != null) {
-                    mGTaskHashMap.remove(gid);
-                    mGidToNid.put(gid, (long) Notes.ID_ROOT_FOLDER);
-                    mNidToGid.put((long) Notes.ID_ROOT_FOLDER, gid);
-                    // for system folder, only update remote name if necessary
-                    if (!node.getName().equals(
-                            GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT))
-                        doContentSync(Node.SYNC_ACTION_UPDATE_REMOTE, node, c);
-                } else {
-                    doContentSync(Node.SYNC_ACTION_ADD_REMOTE, node, c);
-                }
-            } else {
-                Log.w(TAG, "failed to query root folder");
-            }
-        } finally {
-            if (c != null) {
-                c.close();
-                c = null;
-            }
-        }
-
-        // for call-note folder
-        try {
-            c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, "(_id=?)",
-                    new String[] {
-                        String.valueOf(Notes.ID_CALL_RECORD_FOLDER)
-                    }, null);
-            if (c != null) {
-                if (c.moveToNext()) {
-                    gid = c.getString(SqlNote.GTASK_ID_COLUMN);
-                    node = mGTaskHashMap.get(gid);
-                    if (node != null) {
-                        mGTaskHashMap.remove(gid);
-                        mGidToNid.put(gid, (long) Notes.ID_CALL_RECORD_FOLDER);
-                        mNidToGid.put((long) Notes.ID_CALL_RECORD_FOLDER, gid);
-                        // for system folder, only update remote name if
-                        // necessary
-                        if (!node.getName().equals(
-                                GTaskStringUtils.MIUI_FOLDER_PREFFIX
-                                        + GTaskStringUtils.FOLDER_CALL_NOTE))
-                            doContentSync(Node.SYNC_ACTION_UPDATE_REMOTE, node, c);
-                    } else {
-                        doContentSync(Node.SYNC_ACTION_ADD_REMOTE, node, c);
-                    }
-                }
-            } else {
-                Log.w(TAG, "failed to query call note folder");
-            }
-        } finally {
-            if (c != null) {
-                c.close();
-                c = null;
-            }
-        }
-
-        // for local existing folders
-        try {
-            c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE,
-                    "(type=? AND parent_id<>?)", new String[] {
-                            String.valueOf(Notes.TYPE_FOLDER), String.valueOf(Notes.ID_TRASH_FOLER)
-                    }, NoteColumns.TYPE + " DESC");
-            if (c != null) {
-                while (c.moveToNext()) {
-                    gid = c.getString(SqlNote.GTASK_ID_COLUMN);
-                    node = mGTaskHashMap.get(gid);
-                    if (node != null) {
-                        mGTaskHashMap.remove(gid);
-                        mGidToNid.put(gid, c.getLong(SqlNote.ID_COLUMN));
-                        mNidToGid.put(c.getLong(SqlNote.ID_COLUMN), gid);
-                        syncType = node.getSyncAction(c);
-                    } else {
-                        if (c.getString(SqlNote.GTASK_ID_COLUMN).trim().length() == 0) {
-                            // local add
-                            syncType = Node.SYNC_ACTION_ADD_REMOTE;
-                        } else {
-                            // remote delete
-                            syncType = Node.SYNC_ACTION_DEL_LOCAL;
-                        }
-                    }
-                    doContentSync(syncType, node, c);
-                }
-            } else {
-                Log.w(TAG, "failed to query existing folder");
-            }
-        } finally {
-            if (c != null) {
-                c.close();
-                c = null;
-            }
-        }
-
-        // for remote add folders
-        Iterator<Map.Entry<String, TaskList>> iter = mGTaskListHashMap.entrySet().iterator();
-        while (iter.hasNext()) {
-            Map.Entry<String, TaskList> entry = iter.next();
-            gid = entry.getKey();
-            node = entry.getValue();
-            if (mGTaskHashMap.containsKey(gid)) {
-                mGTaskHashMap.remove(gid);
-                doContentSync(Node.SYNC_ACTION_ADD_LOCAL, node, null);
-            }
-        }
-
-        if (!mCancelled)
-            GTaskClient.getInstance().commitUpdate();
-    }
-
-    private void doContentSync(int syncType, Node node, Cursor c) throws NetworkFailureException {
-        if (mCancelled) {
-            return;
-        }
-
-        MetaData meta;
-        switch (syncType) {
-            case Node.SYNC_ACTION_ADD_LOCAL:
-                addLocalNode(node);
-                break;
-            case Node.SYNC_ACTION_ADD_REMOTE:
-                addRemoteNode(node, c);
-                break;
-            case Node.SYNC_ACTION_DEL_LOCAL:
-                meta = mMetaHashMap.get(c.getString(SqlNote.GTASK_ID_COLUMN));
-                if (meta != null) {
-                    GTaskClient.getInstance().deleteNode(meta);
-                }
-                mLocalDeleteIdMap.add(c.getLong(SqlNote.ID_COLUMN));
-                break;
-            case Node.SYNC_ACTION_DEL_REMOTE:
-                meta = mMetaHashMap.get(node.getGid());
-                if (meta != null) {
-                    GTaskClient.getInstance().deleteNode(meta);
-                }
-                GTaskClient.getInstance().deleteNode(node);
-                break;
-            case Node.SYNC_ACTION_UPDATE_LOCAL:
-                updateLocalNode(node, c);
-                break;
-            case Node.SYNC_ACTION_UPDATE_REMOTE:
-                updateRemoteNode(node, c);
-                break;
-            case Node.SYNC_ACTION_UPDATE_CONFLICT:
-                // merging both modifications maybe a good idea
-                // right now just use local update simply
-                updateRemoteNode(node, c);
-                break;
-            case Node.SYNC_ACTION_NONE:
-                break;
-            case Node.SYNC_ACTION_ERROR:
-            default:
-                throw new ActionFailureException("unkown sync action type");
-        }
-    }
-
-    private void addLocalNode(Node node) throws NetworkFailureException {
-        if (mCancelled) {
-            return;
-        }
-
-        SqlNote sqlNote;
-        if (node instanceof TaskList) {
-            if (node.getName().equals(
-                    GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT)) {
-                sqlNote = new SqlNote(mContext, Notes.ID_ROOT_FOLDER);
-            } else if (node.getName().equals(
-                    GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_CALL_NOTE)) {
-                sqlNote = new SqlNote(mContext, Notes.ID_CALL_RECORD_FOLDER);
-            } else {
-                sqlNote = new SqlNote(mContext);
-                sqlNote.setContent(node.getLocalJSONFromContent());
-                sqlNote.setParentId(Notes.ID_ROOT_FOLDER);
-            }
-        } else {
-            sqlNote = new SqlNote(mContext);
-            JSONObject js = node.getLocalJSONFromContent();
-            try {
-                if (js.has(GTaskStringUtils.META_HEAD_NOTE)) {
-                    JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE);
-                    if (note.has(NoteColumns.ID)) {
-                        long id = note.getLong(NoteColumns.ID);
-                        if (DataUtils.existInNoteDatabase(mContentResolver, id)) {
-                            // the id is not available, have to create a new one
-                            note.remove(NoteColumns.ID);
-                        }
-                    }
-                }
-
-                if (js.has(GTaskStringUtils.META_HEAD_DATA)) {
-                    JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA);
-                    for (int i = 0; i < dataArray.length(); i++) {
-                        JSONObject data = dataArray.getJSONObject(i);
-                        if (data.has(DataColumns.ID)) {
-                            long dataId = data.getLong(DataColumns.ID);
-                            if (DataUtils.existInDataDatabase(mContentResolver, dataId)) {
-                                // the data id is not available, have to create
-                                // a new one
-                                data.remove(DataColumns.ID);
-                            }
-                        }
-                    }
-
-                }
-            } catch (JSONException e) {
-                Log.w(TAG, e.toString());
-                e.printStackTrace();
-            }
-            sqlNote.setContent(js);
-
-            Long parentId = mGidToNid.get(((Task) node).getParent().getGid());
-            if (parentId == null) {
-                Log.e(TAG, "cannot find task's parent id locally");
-                throw new ActionFailureException("cannot add local node");
-            }
-            sqlNote.setParentId(parentId.longValue());
-        }
-
-        // create the local node
-        sqlNote.setGtaskId(node.getGid());
-        sqlNote.commit(false);
-
-        // update gid-nid mapping
-        mGidToNid.put(node.getGid(), sqlNote.getId());
-        mNidToGid.put(sqlNote.getId(), node.getGid());
-
-        // update meta
-        updateRemoteMeta(node.getGid(), sqlNote);
-    }
-
-    private void updateLocalNode(Node node, Cursor c) throws NetworkFailureException {
-        if (mCancelled) {
-            return;
-        }
-
-        SqlNote sqlNote;
-        // update the note locally
-        sqlNote = new SqlNote(mContext, c);
-        sqlNote.setContent(node.getLocalJSONFromContent());
-
-        Long parentId = (node instanceof Task) ? mGidToNid.get(((Task) node).getParent().getGid())
-                : new Long(Notes.ID_ROOT_FOLDER);
-        if (parentId == null) {
-            Log.e(TAG, "cannot find task's parent id locally");
-            throw new ActionFailureException("cannot update local node");
-        }
-        sqlNote.setParentId(parentId.longValue());
-        sqlNote.commit(true);
-
-        // update meta info
-        updateRemoteMeta(node.getGid(), sqlNote);
-    }
-
-    private void addRemoteNode(Node node, Cursor c) throws NetworkFailureException {
-        if (mCancelled) {
-            return;
-        }
-
-        SqlNote sqlNote = new SqlNote(mContext, c);
-        Node n;
-
-        // update remotely
-        if (sqlNote.isNoteType()) {
-            Task task = new Task();
-            task.setContentByLocalJSON(sqlNote.getContent());
-
-            String parentGid = mNidToGid.get(sqlNote.getParentId());
-            if (parentGid == null) {
-                Log.e(TAG, "cannot find task's parent tasklist");
-                throw new ActionFailureException("cannot add remote task");
-            }
-            mGTaskListHashMap.get(parentGid).addChildTask(task);
-
-            GTaskClient.getInstance().createTask(task);
-            n = (Node) task;
-
-            // add meta
-            updateRemoteMeta(task.getGid(), sqlNote);
-        } else {
-            TaskList tasklist = null;
-
-            // we need to skip folder if it has already existed
-            String folderName = GTaskStringUtils.MIUI_FOLDER_PREFFIX;
-            if (sqlNote.getId() == Notes.ID_ROOT_FOLDER)
-                folderName += GTaskStringUtils.FOLDER_DEFAULT;
-            else if (sqlNote.getId() == Notes.ID_CALL_RECORD_FOLDER)
-                folderName += GTaskStringUtils.FOLDER_CALL_NOTE;
-            else
-                folderName += sqlNote.getSnippet();
-
-            Iterator<Map.Entry<String, TaskList>> iter = mGTaskListHashMap.entrySet().iterator();
-            while (iter.hasNext()) {
-                Map.Entry<String, TaskList> entry = iter.next();
-                String gid = entry.getKey();
-                TaskList list = entry.getValue();
-
-                if (list.getName().equals(folderName)) {
-                    tasklist = list;
-                    if (mGTaskHashMap.containsKey(gid)) {
-                        mGTaskHashMap.remove(gid);
-                    }
-                    break;
-                }
-            }
-
-            // no match we can add now
-            if (tasklist == null) {
-                tasklist = new TaskList();
-                tasklist.setContentByLocalJSON(sqlNote.getContent());
-                GTaskClient.getInstance().createTaskList(tasklist);
-                mGTaskListHashMap.put(tasklist.getGid(), tasklist);
-            }
-            n = (Node) tasklist;
-        }
-
-        // update local note
-        sqlNote.setGtaskId(n.getGid());
-        sqlNote.commit(false);
-        sqlNote.resetLocalModified();
-        sqlNote.commit(true);
-
-        // gid-id mapping
-        mGidToNid.put(n.getGid(), sqlNote.getId());
-        mNidToGid.put(sqlNote.getId(), n.getGid());
-    }
-
-    private void updateRemoteNode(Node node, Cursor c) throws NetworkFailureException {
-        if (mCancelled) {
-            return;
-        }
-
-        SqlNote sqlNote = new SqlNote(mContext, c);
-
-        // update remotely
-        node.setContentByLocalJSON(sqlNote.getContent());
-        GTaskClient.getInstance().addUpdateNode(node);
-
-        // update meta
-        updateRemoteMeta(node.getGid(), sqlNote);
-
-        // move task if necessary
-        if (sqlNote.isNoteType()) {
-            Task task = (Task) node;
-            TaskList preParentList = task.getParent();
-
-            String curParentGid = mNidToGid.get(sqlNote.getParentId());
-            if (curParentGid == null) {
-                Log.e(TAG, "cannot find task's parent tasklist");
-                throw new ActionFailureException("cannot update remote task");
-            }
-            TaskList curParentList = mGTaskListHashMap.get(curParentGid);
-
-            if (preParentList != curParentList) {
-                preParentList.removeChildTask(task);
-                curParentList.addChildTask(task);
-                GTaskClient.getInstance().moveTask(task, preParentList, curParentList);
-            }
-        }
-
-        // clear local modified flag
-        sqlNote.resetLocalModified();
-        sqlNote.commit(true);
-    }
-
-    private void updateRemoteMeta(String gid, SqlNote sqlNote) throws NetworkFailureException {
-        if (sqlNote != null && sqlNote.isNoteType()) {
-            MetaData metaData = mMetaHashMap.get(gid);
-            if (metaData != null) {
-                metaData.setMeta(gid, sqlNote.getContent());
-                GTaskClient.getInstance().addUpdateNode(metaData);
-            } else {
-                metaData = new MetaData();
-                metaData.setMeta(gid, sqlNote.getContent());
-                mMetaList.addChildTask(metaData);
-                mMetaHashMap.put(gid, metaData);
-                GTaskClient.getInstance().createTask(metaData);
-            }
-        }
-    }
-
-    private void refreshLocalSyncId() throws NetworkFailureException {
-        if (mCancelled) {
-            return;
-        }
-
-        // get the latest gtask list
-        mGTaskHashMap.clear();
-        mGTaskListHashMap.clear();
-        mMetaHashMap.clear();
-        initGTaskList();
-
-        Cursor c = null;
-        try {
-            c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE,
-                    "(type<>? AND parent_id<>?)", new String[] {
-                            String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLER)
-                    }, NoteColumns.TYPE + " DESC");
-            if (c != null) {
-                while (c.moveToNext()) {
-                    String gid = c.getString(SqlNote.GTASK_ID_COLUMN);
-                    Node node = mGTaskHashMap.get(gid);
-                    if (node != null) {
-                        mGTaskHashMap.remove(gid);
-                        ContentValues values = new ContentValues();
-                        values.put(NoteColumns.SYNC_ID, node.getLastModified());
-                        mContentResolver.update(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI,
-                                c.getLong(SqlNote.ID_COLUMN)), values, null, null);
-                    } else {
-                        Log.e(TAG, "something is missed");
-                        throw new ActionFailureException(
-                                "some local items don't have gid after sync");
-                    }
-                }
-            } else {
-                Log.w(TAG, "failed to query local note to refresh sync id");
-            }
-        } finally {
-            if (c != null) {
-                c.close();
-                c = null;
-            }
-        }
-    }
-
-    public String getSyncAccount() {
-        return GTaskClient.getInstance().getSyncAccount().name;
-    }
-
-    public void cancelSync() {
-        mCancelled = true;
-    }
-}
diff --git a/doc/remote/GTaskSyncService.java b/doc/remote/GTaskSyncService.java
deleted file mode 100644
index cca36f7..0000000
--- a/doc/remote/GTaskSyncService.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.gtask.remote;
-
-import android.app.Activity;
-import android.app.Service;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.IBinder;
-
-public class GTaskSyncService extends Service {
-    public final static String ACTION_STRING_NAME = "sync_action_type";
-
-    public final static int ACTION_START_SYNC = 0;
-
-    public final static int ACTION_CANCEL_SYNC = 1;
-
-    public final static int ACTION_INVALID = 2;
-
-    public final static String GTASK_SERVICE_BROADCAST_NAME = "net.micode.notes.gtask.remote.gtask_sync_service";
-
-    public final static String GTASK_SERVICE_BROADCAST_IS_SYNCING = "isSyncing";
-
-    public final static String GTASK_SERVICE_BROADCAST_PROGRESS_MSG = "progressMsg";
-
-    private static GTaskASyncTask mSyncTask = null;
-
-    private static String mSyncProgress = "";
-
-    private void startSync() {
-        if (mSyncTask == null) {
-            mSyncTask = new GTaskASyncTask(this, new GTaskASyncTask.OnCompleteListener() {
-                public void onComplete() {
-                    mSyncTask = null;
-                    sendBroadcast("");
-                    stopSelf();
-                }
-            });
-            sendBroadcast("");
-            mSyncTask.execute();
-        }
-    }
-
-    private void cancelSync() {
-        if (mSyncTask != null) {
-            mSyncTask.cancelSync();
-        }
-    }
-
-    @Override
-    public void onCreate() {
-        mSyncTask = null;
-    }
-
-    @Override
-    public int onStartCommand(Intent intent, int flags, int startId) {
-        Bundle bundle = intent.getExtras();
-        if (bundle != null && bundle.containsKey(ACTION_STRING_NAME)) {
-            switch (bundle.getInt(ACTION_STRING_NAME, ACTION_INVALID)) {
-                case ACTION_START_SYNC:
-                    startSync();
-                    break;
-                case ACTION_CANCEL_SYNC:
-                    cancelSync();
-                    break;
-                default:
-                    break;
-            }
-            return START_STICKY;
-        }
-        return super.onStartCommand(intent, flags, startId);
-    }
-
-    @Override
-    public void onLowMemory() {
-        if (mSyncTask != null) {
-            mSyncTask.cancelSync();
-        }
-    }
-
-    public IBinder onBind(Intent intent) {
-        return null;
-    }
-
-    public void sendBroadcast(String msg) {
-        mSyncProgress = msg;
-        Intent intent = new Intent(GTASK_SERVICE_BROADCAST_NAME);
-        intent.putExtra(GTASK_SERVICE_BROADCAST_IS_SYNCING, mSyncTask != null);
-        intent.putExtra(GTASK_SERVICE_BROADCAST_PROGRESS_MSG, msg);
-        sendBroadcast(intent);
-    }
-
-    public static void startSync(Activity activity) {
-        GTaskManager.getInstance().setActivityContext(activity);
-        Intent intent = new Intent(activity, GTaskSyncService.class);
-        intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_START_SYNC);
-        activity.startService(intent);
-    }
-
-    public static void cancelSync(Context context) {
-        Intent intent = new Intent(context, GTaskSyncService.class);
-        intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_CANCEL_SYNC);
-        context.startService(intent);
-    }
-
-    public static boolean isSyncing() {
-        return mSyncTask != null;
-    }
-
-    public static String getProgressString() {
-        return mSyncProgress;
-    }
-}
diff --git a/doc/remote/软件 (D).lnk b/doc/remote/软件 (D).lnk
deleted file mode 100644
index f353aa8..0000000
Binary files a/doc/remote/软件 (D).lnk and /dev/null differ
diff --git a/doc/小米便签开源代码的泛读报告.docx b/doc/小米便签开源代码的泛读报告.docx
deleted file mode 100644
index 37ba709..0000000
Binary files a/doc/小米便签开源代码的泛读报告.docx and /dev/null differ
