Ken Wakasa
c445369732
Fix class names
...
Change-Id: Ib3e15bdf46585976aa5b42132805754fc2e2908b
2013-06-26 23:06:14 +09:00
Keisuke Kuroynagi
6379a4de29
Reduce the number of arguments required to initialize dic_node.
...
Bug: 6669677
Change-Id: I52249b83f72560d8f5ab028da5cfb5c50f6e40b8
2013-06-26 20:55:14 +09:00
Keisuke Kuroynagi
c0d7a376e2
Merge "Move shortcut reading methods."
2013-06-26 05:44:56 +00:00
Keisuke Kuroynagi
5ac44bdc2a
Move shortcut reading methods.
...
Moved form BinaryFormat to BinaryDictionaryTerminalAttributesReadingUtils.
Bug: 6669677
Change-Id: Ia1ab25854effbf61df37837fe26755ac7dc4d020
2013-06-26 14:41:22 +09:00
Keisuke Kuroynagi
5bf1be7162
Add jni methods for dynamically handling a dictionary.
...
Bug: 6669677
Change-Id: I8a26623adbb41a78e3c023c652be635c635e3b47
2013-06-26 12:51:33 +09:00
Keisuke Kuroynagi
3b33656ce3
Add canBeDynamicallyUpdated() in BinaryDictionaryInfo.
...
Bug: 6669677
Change-Id: I7391641253b99bfcb1f9380ebee2037015e7dc14
2013-06-25 16:03:33 +09:00
Keisuke Kuroynagi
f3b62900c7
Allow mmapping dictionary file in writable mode in openNative.
...
Bug: 6669677
Change-Id: I447668932de118b158fa029ddc977b3f3cc06cb8
2013-06-25 16:03:33 +09:00
Keisuke Kuroynagi
46159d5422
Move file and mmap information form Dictionary to BinaryDictionaryInfo.
...
Bug: 6669677
Change-Id: I05d435e0884430f8abbbed6ea2df775005ee8622
2013-06-25 16:03:30 +09:00
Keisuke Kuroynagi
80a4b7c92e
Merge "Extend center point vertically for bottom keys on a keyboard."
2013-06-24 03:26:55 +00:00
Keisuke Kuroynagi
77ec8713ce
Extend center point vertically for bottom keys on a keyboard.
...
Bug: 9505397
Change-Id: Ic415ac4065d23cb832dd3bb85876e2a4dc9e9fc3
2013-06-24 11:58:56 +09:00
Keisuke Kuroynagi
940cca4fa9
Merge "Check adjacent proximity chars for insertion for typing"
2013-06-24 00:52:02 +00:00
Keisuke Kuroynagi
af9d92f590
Rename BinaryDictionaryBigramsReadingUtils to BinaryDictionaryTerminalAttributesReadingUtils and remanme the class methods
...
Bug: 6669677
Change-Id: I960dcf51a950ead2c3d7b9dedcde0a450569cbe9
2013-06-24 09:42:37 +09:00
Keisuke Kuroynagi
be2a172d4e
Merge "Give the best score to the most probable exact match."
2013-06-24 00:28:02 +00:00
Keisuke Kuroynagi
24706f8f5c
Check adjacent proximity chars for insertion for typing
...
Change-Id: I6ce1b065bba055516fca0c8af6f14853a111aa68
2013-06-24 09:25:46 +09:00
Keisuke Kuroynagi
f0dc0b1b74
Give the best score to the most probable exact match.
...
Bug: 9490364
Change-Id: If7fe5da190516d4b5f7a41b752ef5960205a5899
2013-06-21 19:11:39 +09:00
Keisuke Kuroynagi
21dfdcdba8
Merge "Add ByteArrayUtils::readSignedInt24andAdvancePosition to read dynamic dictionaries."
2013-06-21 08:15:05 +00:00
Keisuke Kuroynagi
8a914a66e8
Add ByteArrayUtils::readSignedInt24andAdvancePosition to read dynamic dictionaries.
...
Bug: 6669677
Change-Id: I75eeedbb50868432f6a7ff5fa63624d03e788356
2013-06-21 12:58:18 +09:00
Keisuke Kuroynagi
09858cbde4
Change method name of getDepth and getTotalLength.
...
Change-Id: I4b3aa54e17d7de7c31f956dc9d59941d79856fd7
2013-06-20 20:55:23 +09:00
Keisuke Kuroynagi
ec7457eb7f
Initialize inputStatusG at the constructor.
...
Bug: 9490519
Change-Id: I1806f765f7a0b5335df253b2618b40cfd17aab14
2013-06-19 22:20:25 +09:00
Keisuke Kuroynagi
2d3f2daf12
Check compound distance of node and prune useless node after creating new word.
...
Before:
136309.89 ms
After:
73133.95 ms
Bug: 8591918
Change-Id: If029b768e2b459c0e566188bcf425f71b2df866d
2013-06-18 17:07:23 +09:00
Keisuke Kuroynagi
6bfeeb8694
Support multi words input for gesture.
...
Bug: 8591918
Change-Id: I344f936907a385cc6c3c8a2215a6603938483401
2013-06-17 19:04:29 +09:00
Keisuke Kuroynagi
0052dbda76
Support keys that have uncommon width.
...
Bug: 8591918
Change-Id: I1e01e1560200333f9e35993af0aa7e5a17e6944f
2013-06-14 20:41:39 +09:00
Keisuke Kuroynagi
1ff81e8890
Use bloom filter in multi bigram map.
...
Evaluated with previous word "this".
without bloom filter (use only hash_map):
Total 147792.34 (sum of others 147771.57)
with bloom filter:
Total 145900.64 (sum of others 145874.30)
always read binary dictionary:
Total 148603.14 (sum of others 148579.90)
Bug: 8592527
Change-Id: I821dc39454543826adb73b9eeeef6408fad8ae28
2013-06-14 20:35:41 +09:00
Keisuke Kuroynagi
a71ed8caa2
Introduce BinaryDictionaryBigramsIterator to access bigrams attributes in binary dictionaries.
...
Bug: 6669677
Change-Id: Ifb1adebc5305a930c80396f6b4ec31d84400a9dc
2013-06-14 18:12:56 +09:00
Ken Wakasa
f473f4b1eb
Remove unused macros in defines.h
...
bug: 8550444
Change-Id: I77ae6bd607032def05044e3045aa7cc3746b0a5b
2013-06-11 20:09:07 +09:00
Keisuke Kuroynagi
0b7cd6a0b2
Fix: Android.mk for autocorrection_threshold_utils.
...
Change-Id: I3ea0811ca7c2c1a88351ee2ba5cc13d7096865ba
2013-06-11 18:05:04 +09:00
Keisuke Kuroynagi
527c128309
Remove unused methods.
...
Bug: 8550444
Change-Id: Ie627084143846407ca36df82c2a7f904a0e6f49c
2013-06-11 17:04:40 +09:00
Keisuke Kuroynagi
bd0d1afdb2
Introduce BinaryDictionaryHeader to access binary dictionary header.
...
BinaryDictionaryHeader abstracts header structure and access header information via only its instance.
Bug: 6669677
Change-Id: Ib5ab0e8fef12265ddabc1d0165548b69953bba6a
2013-06-11 12:01:49 +09:00
Ken Wakasa
ad0c6d7b36
Cleanups in JNI related code
...
Removed the malloc version in binary dictionary support -- this has not
really been tested well so far, and the mmap version has been working pretty
well after all.
Several cosmetic fixes etc.
Change-Id: Iad0da58b300b769fb5946a3e73fc96f56215980e
2013-06-04 19:16:47 +09:00
Ken Wakasa
11dc3a371d
Clean up macro variables
...
Change-Id: I0d9983c1a766b97182953328fa45f488e110bc01
2013-06-04 15:40:30 +09:00
Ken Wakasa
156d39303e
Remove a bunch macros that are no longer used
...
bug: 8550444
Change-Id: Ib775c0bed27c499dc131c54dfaff34c5a8169276
2013-06-03 20:00:02 +09:00
Satoshi Kataoka
db0aa747be
Merge "Purge WordsPriorityQueue"
2013-06-03 10:21:29 +00:00
Ken Wakasa
4caf594198
Follow up to I907150be994c4f9ffc030c063de521eeb177d3e1
...
Change-Id: I8779d397b0ebe2abbf7c3fbc1a79a1a0939c04f0
2013-06-03 19:14:02 +09:00
Satoshi Kataoka
04e37fb925
Purge WordsPriorityQueue
...
Change-Id: If14034c09d0dd335c84dd3a6ea2775655eefd38f
2013-06-03 19:04:37 +09:00
Satoshi Kataoka
cbb1ee485c
Fix build
...
Change-Id: I907150be994c4f9ffc030c063de521eeb177d3e1
2013-06-03 18:59:45 +09:00
Satoshi Kataoka
dceebee4b8
Purge UnigramDictionary
...
Bug: 8550444
Change-Id: I899f3bdce977c521515e548ca0c4ee6d29d6450b
2013-06-03 18:54:03 +09:00
Satoshi Kataoka
6c4ad527dc
Migrate used functions in UnigramDicitonary
...
Bug: 8550444
Change-Id: Ic1ed2d85537cd47cf18a8373203f331abb7508f6
2013-06-03 18:28:50 +09:00
Satoshi Kataoka
d858b5815f
Move obsolete files to obsolete dir 2
...
Bug: 8550444
Change-Id: Ia83796d696e04f51adb39867dfd21d1ac993b63c
2013-06-03 17:42:27 +09:00
Satoshi Kataoka
e0bbb98d60
Fix build
...
Change-Id: I2a876df097d59324aeb58eb83698ec622ac6191b
2013-06-03 17:23:25 +09:00
Satoshi Kataoka
01cae939a9
Move obsolete files to obsolete dir
...
Bug: 8550444
Change-Id: Ie65eea25da4c41e1128d1d8d8643fb6afe8f41e4
2013-06-03 17:07:59 +09:00
Satoshi Kataoka
7c92b421ee
Purge DicTraverseWrapper
...
bug: 8550444
Change-Id: Iad017e66ac579c6727b9f60ad9cda64e478200e5
2013-06-03 16:45:51 +09:00
Satoshi Kataoka
d18112046a
Move bigram_dictionary
...
Change-Id: I2c243ac75bc02b912f6b0fabedd372148adf8076
2013-06-03 14:13:39 +09:00
Ken Wakasa
addea83bad
Create "src/utils" directory
...
Change-Id: I0b7c51d181edc4786e343f7a953367b040ee6b66
2013-06-03 12:29:34 +09:00
Ken Wakasa
f497e1e5a0
Move suggest_options.h to suggest/core
...
Change-Id: Ie95872a4c90ee3089183c1ebafb67243bd2688a4
2013-06-03 11:45:06 +09:00
Keisuke Kuroyanagi
712fefd85f
Merge "Use BinaryDictonaryInfo instead of raw pointers."
2013-06-03 00:51:44 +00:00
Keisuke Kuroyanagi
0ecfb94247
Use BinaryDictonaryInfo instead of raw pointers.
...
Bug: 6669677
Change-Id: I9792a872f1609de7c1ba0fc08d916047d6724c0b
2013-06-02 16:34:42 -07:00
Keisuke Kuroyanagi
88ad30f40b
Move dictionary format independent probability calculation methods to ProbabilityUtils.
...
Bug: 6669677
Change-Id: Idc09a2fbb04e4d843e11313011178022177616aa
2013-06-01 14:08:20 -07:00
Ken Wakasa
464d3ba432
Move char_utils to the dictionary directory
...
Change-Id: Id397485407fe63600c9bb5c80d223042942b4d8a
2013-05-31 20:39:34 +09:00
Keisuke Kuroyanagi
f88f9dbbde
Move "#define LOG_TAG" before include defines.h.
...
Change-Id: Iacd2c2ea3878ad2cde5df36b15e1359d10244f60
2013-05-30 22:26:21 -07:00
Ken Wakasa
a65c267b1f
Move some dictionary related implementations to the dictionary directory
...
Change-Id: I6fe71a540ad91ca46755be234abc8894242e2413
2013-05-31 00:02:57 +09:00
Ken Wakasa
94da44e43e
Move additional_proximity_chars to the layout directory
...
Change-Id: Ie892ea9f3199a66e9d62a92a0e1ab2dff62826c3
2013-05-30 20:12:47 +09:00
Ken Wakasa
29432f843a
Create a new directory for layout-related implementations
...
Change-Id: Ia227bb296f20dab0dfc03dfcde3a06c624eca76c
2013-05-30 19:45:53 +09:00
Keisuke Kuroyanagi
338ef65077
Make DicTraverseSession having suggest options.
...
Change-Id: I2b802c06634e5226c763fd838f3fc0918fc4a161
2013-05-29 17:18:03 -07:00
Satoshi Kataoka
599d8778f4
Specify OOV for the OOV word correction
...
Bug: 9127749
Change-Id: I9ff0590428888afe57a009a1cbf8f008011b1544
2013-05-27 17:51:35 -07:00
Keisuke Kuroyanagi
50db5f0fff
Passing options to native suggestion method.
...
Change-Id: I6da180cfa1b9e5aa39600e78e3bc41209a40f583
Signed-off-by: Keisuke Kuroyanagi <ksk@google.com>
2013-05-24 10:21:04 -07:00
Jean Chalard
03f8c6aed3
Be careful about the dictionary size in detection methods
...
Bug: 8857618
Change-Id: I29345ec96d53da601571ba73197a6485643a10a7
2013-05-08 18:55:18 +09:00
Keisuke Kuroynagi
a09f9709e0
Checking key edit distance of candidate words for gesture scoring.
...
bug: 8616704
Change-Id: I98c3248877b1e3e722a6c00a2851e543e5fcbe11
2013-05-07 19:47:20 +09:00
Satoshi Kataoka
5a346afab9
Fix exact match profanity
...
Bug: 8661070
This is a revival version of I421bed14cc71af771510142365
No diff in the test
Change-Id: I96bc9cec531682cce78bcf83223dcd2395b2be77
2013-05-07 15:52:38 +09:00
Ken Wakasa
c5a29fa864
Revert "Fix exact match profanity"
...
This reverts commit df2eae6e69
Change-Id: I42635cc09ad3ea4c177d02e0b7607fb7aa78506c
2013-05-02 14:21:29 +00:00
Satoshi Kataoka
df2eae6e69
Fix exact match profanity
...
Bug: 8661070
Change-Id: I421bed14cc71af7715101423652d706e33958445
2013-05-01 13:34:08 +09:00
Tom Ouyang
8da0c93292
Reduce MAX_NORM_DISTANCE_FOR_EDIT in typing model after recent logic improvements
...
After recent logic improvements we can now safely reduce MAX_NORM_DISTANCE_FOR_EDIT.
This leads to better regression test performance and faster runtime speed.
Bug: 8633962
Change-Id: Ie0db73680b32687ff4d8ea5dfae47dee5c7c66a3
2013-04-29 21:21:26 -07:00
Keisuke Kuroynagi
a107dcaeb6
Fix: Demote first char capitalized new words.
...
Bug: 8680578
Change-Id: I84bcdf3a20428c7561f600332bfef4685c72b67f
Signed-off-by: Keisuke Kuroynagi <ksk@google.com>
2013-04-30 11:28:18 +09:00
Tom Ouyang
9559dd2e30
Improve bigram frequency lookup
...
Bug: 8592527
Change-Id: I1908bcb552279b9acb140fe4d8d26b10ed9eda72
2013-04-26 12:22:23 -07:00
Ken Wakasa
dad23dda9d
A small follow-up to I8d03bae3264974eff7b790e27c073b0a8758d17a
...
Change-Id: Id3727f075e74c0102edcb51eabcfdbef745b94b7
2013-04-27 00:24:34 +09:00
Ken Wakasa
866a6ced57
Just cosmetic cleanups
...
Change-Id: I3dc8a4bb3f89f4a18cfffd5f13a71503738452e6
2013-04-26 19:58:14 +09:00
Tom Ouyang
fd02ec10f0
Always consider corrections of intentional omissions (e.g., apostrophe)
...
Example: "thts" -> "that's"
Bug: 8721815
Change-Id: I8c1efbf651d2569ba3600516cc7447d46bf30fa4
2013-04-25 20:30:15 -07:00
Jean Chalard
99e998286d
[ZF1] Check profanity in Java rather than in native
...
Bug: 7226877
Change-Id: Ib6c32bfee9977c27dbf7e1e590b2b00d9ceb7301
2013-04-25 20:29:11 +09:00
Keisuke Kuroynagi
60a169f0c3
Fix exact match checking for words with digraph.
...
Bug: 8624690
Change-Id: I8946d6618609c8e0cb638aa96992b51b435232c7
2013-04-25 16:47:52 +09:00
Keisuke Kuroynagi
911f326857
Fix proximity/edit correction detection that affects the terminal cost.
...
Bug: 8624690
Change-Id: If59305674a781e0fcc284d236e3d8ba9cdf9ed08
2013-04-24 20:21:18 +09:00
Tom Ouyang
f99f1a757b
Merge "Check bigrams for lowercased previous word if original is not found"
2013-04-24 05:12:02 +00:00
Tom Ouyang
14aa8f1d32
Fix autocompletion lookahead handling
...
Bug: 8689370
Change-Id: I056b1788764bd5c4d8ad9da86e790562d2781f06
2013-04-22 19:36:14 -07:00
Tom Ouyang
5fa33a701d
Check bigrams for lowercased previous word if original is not found
...
Bug: 8592527
Change-Id: I70c4b81263d8b2cb7050364c124589f66900cfce
2013-04-22 18:16:36 -07:00
Jean Chalard
c9688ef267
Fix a small bug
...
Tests results in Ibcd6c110f1d5582425f9592c42e31152131ef80c
Bug: 7226877
Change-Id: I8d03bae3264974eff7b790e27c073b0a8758d17a
2013-04-22 18:30:46 +09:00
Tom Ouyang
90cb956c4f
Remove duplicate new-word bigram cost (part 1)
...
Removes a duplicate application of the new word bigram cost and updates only
the related parameters (those associated with multi-word suggestions).
Note: test results will improve after full optimization.
[Category diff]
+1 357
-1 485
+2 16
-2 20
+3 20
-3 16
+4 198
-4 226
+5 510
-5 443
+6 518
-6 368
+7 394
-7 455
[Weighted category diff]
+1 482
-1 532
+2 22
-2 22
+3 22
-3 22
+4 233
-4 381
+5 578
-5 500
+6 617
-6 498
+7 522
-7 521
Bug: 8633962
Change-Id: I3c3ecc9460e8e03e44925e11b2d4b037a6c3b99e
2013-04-17 19:25:48 -07:00
Tom Ouyang
3970352ea9
Make digraph lookups case insensitive
...
Example: Be able to gesture dictionary words that start with an upper-case
German umlaut (e.g., Übermensch).
Bug: 8493920
Change-Id: I3253bcd236d34c0af60116e5b41e359f2715bf97
2013-04-16 20:08:42 +09:00
Ken Wakasa
2dfaf7a4ac
Update SORTED_CHAR_MAP
...
bug: 7873416
bug: 8493920
Change-Id: Ifddb04cad90da71df5d34dd7076850dbcf51fba4
2013-04-16 19:17:41 +09:00
Satoshi Kataoka
252412d7eb
Use additional multi-word cost per language (for Russian)
...
Bug: 7540133
Change-Id: I7eb7b8399746c15452ed2ed5069955e88fb546d3
2013-04-16 16:42:36 +09:00
Satoshi Kataoka
837f46dcb3
Enable touch coordinate correction for new algorithm
...
Bug: 8505668
Change-Id: I07eb785c74c446777524104a3d2b61f0f591a498
2013-04-15 19:10:27 +09:00
Satoshi Kataoka
a94bb198cf
fix assertion
...
Change-Id: I34ff470122aa0f34c66425d2eeae7590187d3074
2013-04-15 12:03:21 +09:00
Ken Wakasa
2daea19709
am 47bb8d7d: am 4fffa27d: Fix a native crash in AOSP LatinIME
...
* commit '47bb8d7d9cd2dcc8e80f90283e4d9b7d4f68e70b':
Fix a native crash in AOSP LatinIME
2013-04-11 22:21:10 -07:00
Ken Wakasa
4fffa27d3f
Fix a native crash in AOSP LatinIME
...
bug: 8597610
Change-Id: I585c629636a52a1ac45b8cc686bc94427bb601df
2013-04-12 12:53:28 +09:00
Satoshi Kataoka
8b3009ef48
add a debug flag to evaluate the most probable string
...
Change-Id: I34dc08c14feb9cbc0304c1d0ff06922e3b65819d
2013-04-11 11:08:12 +09:00
Tom Ouyang
fd9f3d97ae
Add ability to handle digraphs in gesture and tap typing
...
Example: Gesture the German word "ueber" and the system will now replace
the transliteration "ue" with the correct u-umlaut.
Bug: 8493920
Change-Id: I03e1d6311b4187b6c7f802d8fef43a50eee12721
2013-04-10 22:52:49 +00:00
Tom Ouyang
25e8eda9af
Add mechanism to handle digraphs in DicNode
...
This is needed to support for German umlaut handling for both gesture and typing input.
Bug: 8493920
Change-Id: I292e2a4911c54aa5566c38411016a220bb35a1f4
2013-04-10 14:35:49 -07:00
Keisuke Kuroynagi
87fdde6ec4
Typing double letters via a 'circle' on the key.
...
Bug: 8550980
Change-Id: I5e432dea0e025ccea196f80e90a6bf945488e130
2013-04-10 12:43:13 +09:00
Tom Ouyang
43779c04a9
Merge "Add method to get dictionary flags from DicTraverseSession"
2013-04-09 20:40:24 +00:00
Satoshi Kataoka
a1d84bcf8f
Fix touch coordinate calibration
...
TRT: I3b5f3ed07eabc59306a17
Bug: 8505668
Change-Id: I574d25a4e9886c521f013f9a8ffc09cc145fc0fc
2013-04-09 17:51:53 +09:00
Tom Ouyang
ede2333640
Add method to get dictionary flags from DicTraverseSession
...
This is needed for the traversal algorithm to know which
digraphs (if any) are associated with the current dictionary.
Bug: 8493920
Change-Id: I6ae088b55e50c0c2c7066d045b304c5068e23390
2013-04-08 18:14:38 -07:00
Ken Wakasa
31f42ba0c2
Tiny clean up in Makefile
...
Change-Id: Iff6f363894f01a4c30c795fe88892c2bb8e0a856
2013-04-08 20:22:37 +09:00
Ken Wakasa
b68e734481
Cleanup the include paths
...
Change-Id: Ic93d39e230170cfc9f5be6d81d42006e1a61e347
2013-04-08 18:45:46 +09:00
Satoshi Kataoka
e320789a62
Suppress bigram native log
...
Change-Id: I0b3900e0a205b6925ab9a2be55d375f6b14c803c
2013-04-08 17:33:32 +09:00
Satoshi Kataoka
e67ede12ec
Cleanup suggest interface
...
Change-Id: Ibe334a1d3ab3af69acfa64412c80f0ea24cd2c46
2013-04-08 12:54:04 +09:00
Tom Ouyang
08fd3d95d5
Merge "Add DigraphUtils class"
2013-04-05 03:08:59 +00:00
Tom Ouyang
2fdf5b70ad
Add DigraphUtils class
...
Add a new DigraphUtils class to manage digraph handling for both
gesture and typing input.
Bug: 8493920
Change-Id: I3a509e1311b9039653f9f488d3c28bb54205f416
2013-04-04 19:56:04 -07:00
Ben Cheng
65534ffc4a
am d0c383e1: am 5a4949c2: Merge "Force inlining Correction::isSingleQuote" into jb-mr2-dev
...
* commit 'd0c383e1473c1b302038f4145ba5192fd9af9a5f':
Force inlining Correction::isSingleQuote
2013-04-04 12:20:25 -07:00
Ben Cheng
5a4949c28b
Merge "Force inlining Correction::isSingleQuote" into jb-mr2-dev
2013-04-04 19:13:52 +00:00
Ben Cheng
c2fbd7c64d
Force inlining Correction::isSingleQuote
...
Also, only apply -Winline with GCC 4.6. There are some copy constructors
that GCC 4.7/4.8 fail to inline.
Change-Id: I97906045224e89377e8ea6add07a79fa088648af
2013-04-04 11:26:04 -07:00
Tom Ouyang
609a871da6
Add flag to turn on new suggest implementation for typing
...
Bug: 8277656
Change-Id: I974f560050cc5339d110b97620df1c5b496977fe
2013-04-04 15:37:14 +09:00
Satoshi Kataoka
95fe826795
Move suggest logic to AOSP
...
Bug: 8197301
Change-Id: I2d0ffbbc9d4d57ebfc2fe43e6cb75e8b44dae466
2013-04-03 21:00:57 +09:00
Satoshi Kataoka
a6a4165196
Move typing policy to AOSP
...
Bug: 8197301
Change-Id: Ife9b41a465d7b8d707623a6d3e4c1c88c3c3c4ab
2013-04-02 16:53:53 +09:00