2019-05-19 13:08:55 +01:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-03-31 14:33:13 +11:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-03-19 12:46:40 +11:00
|
|
|
|
2016-11-14 16:30:21 +11:00
|
|
|
|
2009-03-31 14:33:13 +11:00
|
|
|
|
2017-10-10 17:02:41 -04:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
|
|
|
|
|
2009-09-23 18:06:44 +10:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-03-31 14:27:02 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
2015-02-02 17:08:03 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-03-19 12:46:41 +11:00
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2016-05-02 11:50:11 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-03-19 12:46:41 +11:00
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-03-19 12:46:41 +11:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:27 -07:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:45:26 +11:00
|
|
|
|
2005-06-21 17:17:27 -07:00
|
|
|
|
|
|
|
|
|
2012-03-19 12:46:39 +11:00
|
|
|
|
2005-11-08 21:39:31 -08:00
|
|
|
|
2017-07-04 11:20:30 +08:00
|
|
|
|
|
|
|
|
|
2005-09-09 16:23:52 -07:00
|
|
|
|
|
|
|
|
|
2011-01-14 09:14:33 +11:00
|
|
|
|
2005-06-21 17:17:27 -07:00
|
|
|
|
2010-10-27 15:16:40 +11:00
|
|
|
|
2009-05-22 17:17:49 -04:00
|
|
|
|
2016-06-05 14:32:07 -05:00
|
|
|
|
2005-09-09 16:23:52 -07:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2005-09-09 16:23:52 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2005-06-21 17:17:27 -07:00
|
|
|
|
|
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2008-09-01 12:48:13 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-11 13:43:21 +11:00
|
|
|
|
2015-05-20 15:05:09 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-09-01 12:48:13 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-05-20 15:05:09 +10:00
|
|
|
|
2008-09-01 12:48:13 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-11 13:43:21 +11:00
|
|
|
|
2008-09-01 12:48:13 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-05-23 13:58:10 -07:00
|
|
|
|
2005-06-21 17:17:27 -07:00
|
|
|
|
2016-11-18 16:16:11 +11:00
|
|
|
|
2011-01-14 09:14:34 +11:00
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2005-06-21 17:17:27 -07:00
|
|
|
|
2016-11-18 16:16:11 +11:00
|
|
|
|
|
|
|
|
|
2008-09-01 12:48:13 +10:00
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
|
|
|
|
|
2011-01-14 09:14:34 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:11 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-01-14 09:14:34 +11:00
|
|
|
|
2012-05-22 13:55:11 +10:00
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-09-01 12:48:13 +10:00
|
|
|
|
2005-06-21 17:17:27 -07:00
|
|
|
|
2016-11-18 16:16:11 +11:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:27 -07:00
|
|
|
|
2008-07-21 17:05:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:27 -07:00
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2005-06-21 17:17:27 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2007-07-17 04:06:12 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:15 +10:00
|
|
|
|
2007-07-17 04:06:12 -07:00
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
2005-06-21 17:17:27 -07:00
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
2006-01-06 00:20:45 -08:00
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-05 14:31:43 -05:00
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
|
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:29 -07:00
|
|
|
|
2012-05-22 13:55:15 +10:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:15 +10:00
|
|
|
|
|
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
PAGE_CACHE_{SIZE,SHIFT,MASK,ALIGN} macros were introduced *long* time
ago with promise that one day it will be possible to implement page
cache with bigger chunks than PAGE_SIZE.
This promise never materialized. And unlikely will.
We have many places where PAGE_CACHE_SIZE assumed to be equal to
PAGE_SIZE. And it's constant source of confusion on whether
PAGE_CACHE_* or PAGE_* constant should be used in a particular case,
especially on the border between fs and mm.
Global switching to PAGE_CACHE_SIZE != PAGE_SIZE would cause to much
breakage to be doable.
Let's stop pretending that pages in page cache are special. They are
not.
The changes are pretty straight-forward:
- <foo> << (PAGE_CACHE_SHIFT - PAGE_SHIFT) -> <foo>;
- <foo> >> (PAGE_CACHE_SHIFT - PAGE_SHIFT) -> <foo>;
- PAGE_CACHE_{SIZE,SHIFT,MASK,ALIGN} -> PAGE_{SIZE,SHIFT,MASK,ALIGN};
- page_cache_get() -> get_page();
- page_cache_release() -> put_page();
This patch contains automated changes generated with coccinelle using
script below. For some reason, coccinelle doesn't patch header files.
I've called spatch for them manually.
The only adjustment after coccinelle is revert of changes to
PAGE_CAHCE_ALIGN definition: we are going to drop it later.
There are few places in the code where coccinelle didn't reach. I'll
fix them manually in a separate patch. Comments and documentation also
will be addressed with the separate patch.
virtual patch
@@
expression E;
@@
- E << (PAGE_CACHE_SHIFT - PAGE_SHIFT)
+ E
@@
expression E;
@@
- E >> (PAGE_CACHE_SHIFT - PAGE_SHIFT)
+ E
@@
@@
- PAGE_CACHE_SHIFT
+ PAGE_SHIFT
@@
@@
- PAGE_CACHE_SIZE
+ PAGE_SIZE
@@
@@
- PAGE_CACHE_MASK
+ PAGE_MASK
@@
expression E;
@@
- PAGE_CACHE_ALIGN(E)
+ PAGE_ALIGN(E)
@@
expression E;
@@
- page_cache_get(E)
+ get_page(E)
@@
expression E;
@@
- page_cache_release(E)
+ put_page(E)
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-04-01 15:29:47 +03:00
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2005-06-21 17:17:21 -07:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:21 -07:00
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2013-01-23 17:07:38 -05:00
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2011-10-07 14:23:17 +11:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2017-09-27 05:40:16 -06:00
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-06-26 00:27:49 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-05 14:31:43 -05:00
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-06-26 00:27:49 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:15 +10:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2016-11-02 14:16:49 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-04 16:46:03 +11:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2016-11-04 16:46:03 +11:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2016-11-04 16:46:03 +11:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2016-11-04 16:46:03 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-18 16:16:11 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-04 16:46:03 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2011-05-11 14:26:30 +10:00
|
|
|
|
2008-06-28 08:31:22 +10:00
|
|
|
|
|
|
|
|
|
2011-05-11 14:26:30 +10:00
|
|
|
|
2017-11-06 10:11:25 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:26 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-03-29 10:20:02 -05:00
|
|
|
|
2012-05-22 13:55:34 +10:00
|
|
|
|
|
|
|
|
|
2011-11-28 13:25:44 +08:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2016-11-02 14:16:49 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-04 18:56:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-02 14:16:49 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-11-28 13:25:44 +08:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2011-06-08 17:59:30 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2011-06-08 17:59:30 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-07-22 12:09:17 -05:00
|
|
|
|
2012-10-11 13:45:36 +11:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2011-06-08 17:59:30 -05:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2011-06-08 17:59:30 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-11-28 13:25:44 +08:00
|
|
|
|
2016-11-02 14:16:49 +11:00
|
|
|
|
2011-06-08 17:59:30 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-07 12:01:05 +00:00
|
|
|
|
2016-11-02 14:16:49 +11:00
|
|
|
|
2011-06-08 17:59:30 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:15 +10:00
|
|
|
|
2012-05-22 13:55:14 +10:00
|
|
|
|
2011-06-08 17:59:30 -05:00
|
|
|
|
|
|
|
|
|
2015-07-22 12:09:17 -05:00
|
|
|
|
2011-06-08 17:59:30 -05:00
|
|
|
|
2011-11-28 13:25:44 +08:00
|
|
|
|
2011-06-08 17:59:30 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-09-09 16:23:47 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2014-03-29 10:20:02 -05:00
|
|
|
|
2012-05-22 13:55:34 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2015-07-01 12:19:56 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:15 +10:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2014-06-06 11:50:56 -05:00
|
|
|
|
2014-06-06 12:43:49 -05:00
|
|
|
|
|
|
|
|
|
2015-03-03 13:35:31 +11:00
|
|
|
|
2014-06-06 12:43:49 -05:00
|
|
|
|
2015-03-03 13:35:31 +11:00
|
|
|
|
|
|
|
|
|
2015-03-24 11:29:05 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-03-02 17:02:29 +11:00
|
|
|
|
2015-07-01 12:19:56 +10:00
|
|
|
|
2016-11-02 14:16:49 +11:00
|
|
|
|
2015-07-01 12:19:56 +10:00
|
|
|
|
2014-06-06 12:43:49 -05:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
|
|
|
|
|
2007-01-26 00:57:03 -08:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2007-01-26 00:57:03 -08:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2015-07-01 12:19:56 +10:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2017-10-16 19:03:44 -07:00
|
|
|
|
2005-06-21 17:17:27 -07:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2014-06-06 11:50:56 -05:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:53 +11:00
|
|
|
|
2005-09-09 16:23:47 -07:00
|
|
|
|
2012-05-22 13:55:34 +10:00
|
|
|
|
2015-08-19 07:35:54 +10:00
|
|
|
|
|
|
|
|
|
2015-07-22 12:09:17 -05:00
|
|
|
|
2015-08-19 07:35:54 +10:00
|
|
|
|
2015-07-22 12:09:17 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-11-08 21:39:32 -08:00
|
|
|
|
2015-08-19 07:35:54 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2009-03-31 14:27:02 +11:00
|
|
|
|
2006-01-06 00:20:39 -08:00
|
|
|
|
2011-06-08 18:01:10 -05:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2009-12-14 12:49:53 +11:00
|
|
|
|
2006-01-06 00:20:39 -08:00
|
|
|
|
2005-09-09 16:23:47 -07:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2016-11-02 14:16:49 +11:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-03-19 12:46:40 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-02 14:16:49 +11:00
|
|
|
|
|
|
|
|
|
2012-03-19 12:46:40 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-06-06 11:50:56 -05:00
|
|
|
|
2016-11-02 14:16:49 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:15 +10:00
|
|
|
|
2012-03-19 12:46:40 +11:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-03-19 12:46:40 +11:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2006-10-21 10:24:09 -07:00
|
|
|
|
2005-11-08 21:39:32 -08:00
|
|
|
|
2012-05-22 13:55:15 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2014-03-30 00:42:49 -05:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2014-06-06 11:50:56 -05:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2011-11-28 13:25:44 +08:00
|
|
|
|
2017-03-15 16:14:53 +08:00
|
|
|
|
2014-06-06 12:43:49 -05:00
|
|
|
|
2015-07-22 12:09:16 -05:00
|
|
|
|
2014-06-06 11:50:56 -05:00
|
|
|
|
|
|
|
|
|
2016-11-02 14:16:49 +11:00
|
|
|
|
|
|
|
|
|
2014-06-06 11:50:56 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2012-05-22 13:55:15 +10:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-03-29 10:20:02 -05:00
|
|
|
|
2012-05-22 13:55:34 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-06-06 11:50:56 -05:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2014-06-06 12:43:49 -05:00
|
|
|
|
2014-06-06 11:50:56 -05:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2011-07-27 11:00:37 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
2014-05-28 13:39:23 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:12 +10:00
|
|
|
|
2014-06-06 11:50:56 -05:00
|
|
|
|
2012-05-22 13:55:12 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-02 11:50:13 -04:00
|
|
|
|
2012-05-22 13:55:12 +10:00
|
|
|
|
treewide: kmalloc() -> kmalloc_array()
The kmalloc() function has a 2-factor argument form, kmalloc_array(). This
patch replaces cases of:
kmalloc(a * b, gfp)
with:
kmalloc_array(a * b, gfp)
as well as handling cases of:
kmalloc(a * b * c, gfp)
with:
kmalloc(array3_size(a, b, c), gfp)
as it's slightly less ugly than:
kmalloc_array(array_size(a, b), c, gfp)
This does, however, attempt to ignore constant size factors like:
kmalloc(4 * 1024, gfp)
though any constants defined via macros get caught up in the conversion.
Any factors with a sizeof() of "unsigned char", "char", and "u8" were
dropped, since they're redundant.
The tools/ directory was manually excluded, since it has its own
implementation of kmalloc().
The Coccinelle script used for this was:
// Fix redundant parens around sizeof().
@@
type TYPE;
expression THING, E;
@@
(
kmalloc(
- (sizeof(TYPE)) * E
+ sizeof(TYPE) * E
, ...)
|
kmalloc(
- (sizeof(THING)) * E
+ sizeof(THING) * E
, ...)
)
// Drop single-byte sizes and redundant parens.
@@
expression COUNT;
typedef u8;
typedef __u8;
@@
(
kmalloc(
- sizeof(u8) * (COUNT)
+ COUNT
, ...)
|
kmalloc(
- sizeof(__u8) * (COUNT)
+ COUNT
, ...)
|
kmalloc(
- sizeof(char) * (COUNT)
+ COUNT
, ...)
|
kmalloc(
- sizeof(unsigned char) * (COUNT)
+ COUNT
, ...)
|
kmalloc(
- sizeof(u8) * COUNT
+ COUNT
, ...)
|
kmalloc(
- sizeof(__u8) * COUNT
+ COUNT
, ...)
|
kmalloc(
- sizeof(char) * COUNT
+ COUNT
, ...)
|
kmalloc(
- sizeof(unsigned char) * COUNT
+ COUNT
, ...)
)
// 2-factor product with sizeof(type/expression) and identifier or constant.
@@
type TYPE;
expression THING;
identifier COUNT_ID;
constant COUNT_CONST;
@@
(
- kmalloc
+ kmalloc_array
(
- sizeof(TYPE) * (COUNT_ID)
+ COUNT_ID, sizeof(TYPE)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(TYPE) * COUNT_ID
+ COUNT_ID, sizeof(TYPE)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(TYPE) * (COUNT_CONST)
+ COUNT_CONST, sizeof(TYPE)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(TYPE) * COUNT_CONST
+ COUNT_CONST, sizeof(TYPE)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(THING) * (COUNT_ID)
+ COUNT_ID, sizeof(THING)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(THING) * COUNT_ID
+ COUNT_ID, sizeof(THING)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(THING) * (COUNT_CONST)
+ COUNT_CONST, sizeof(THING)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(THING) * COUNT_CONST
+ COUNT_CONST, sizeof(THING)
, ...)
)
// 2-factor product, only identifiers.
@@
identifier SIZE, COUNT;
@@
- kmalloc
+ kmalloc_array
(
- SIZE * COUNT
+ COUNT, SIZE
, ...)
// 3-factor product with 1 sizeof(type) or sizeof(expression), with
// redundant parens removed.
@@
expression THING;
identifier STRIDE, COUNT;
type TYPE;
@@
(
kmalloc(
- sizeof(TYPE) * (COUNT) * (STRIDE)
+ array3_size(COUNT, STRIDE, sizeof(TYPE))
, ...)
|
kmalloc(
- sizeof(TYPE) * (COUNT) * STRIDE
+ array3_size(COUNT, STRIDE, sizeof(TYPE))
, ...)
|
kmalloc(
- sizeof(TYPE) * COUNT * (STRIDE)
+ array3_size(COUNT, STRIDE, sizeof(TYPE))
, ...)
|
kmalloc(
- sizeof(TYPE) * COUNT * STRIDE
+ array3_size(COUNT, STRIDE, sizeof(TYPE))
, ...)
|
kmalloc(
- sizeof(THING) * (COUNT) * (STRIDE)
+ array3_size(COUNT, STRIDE, sizeof(THING))
, ...)
|
kmalloc(
- sizeof(THING) * (COUNT) * STRIDE
+ array3_size(COUNT, STRIDE, sizeof(THING))
, ...)
|
kmalloc(
- sizeof(THING) * COUNT * (STRIDE)
+ array3_size(COUNT, STRIDE, sizeof(THING))
, ...)
|
kmalloc(
- sizeof(THING) * COUNT * STRIDE
+ array3_size(COUNT, STRIDE, sizeof(THING))
, ...)
)
// 3-factor product with 2 sizeof(variable), with redundant parens removed.
@@
expression THING1, THING2;
identifier COUNT;
type TYPE1, TYPE2;
@@
(
kmalloc(
- sizeof(TYPE1) * sizeof(TYPE2) * COUNT
+ array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))
, ...)
|
kmalloc(
- sizeof(TYPE1) * sizeof(THING2) * (COUNT)
+ array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))
, ...)
|
kmalloc(
- sizeof(THING1) * sizeof(THING2) * COUNT
+ array3_size(COUNT, sizeof(THING1), sizeof(THING2))
, ...)
|
kmalloc(
- sizeof(THING1) * sizeof(THING2) * (COUNT)
+ array3_size(COUNT, sizeof(THING1), sizeof(THING2))
, ...)
|
kmalloc(
- sizeof(TYPE1) * sizeof(THING2) * COUNT
+ array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))
, ...)
|
kmalloc(
- sizeof(TYPE1) * sizeof(THING2) * (COUNT)
+ array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))
, ...)
)
// 3-factor product, only identifiers, with redundant parens removed.
@@
identifier STRIDE, SIZE, COUNT;
@@
(
kmalloc(
- (COUNT) * STRIDE * SIZE
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kmalloc(
- COUNT * (STRIDE) * SIZE
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kmalloc(
- COUNT * STRIDE * (SIZE)
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kmalloc(
- (COUNT) * (STRIDE) * SIZE
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kmalloc(
- COUNT * (STRIDE) * (SIZE)
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kmalloc(
- (COUNT) * STRIDE * (SIZE)
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kmalloc(
- (COUNT) * (STRIDE) * (SIZE)
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kmalloc(
- COUNT * STRIDE * SIZE
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
)
// Any remaining multi-factor products, first at least 3-factor products,
// when they're not all constants...
@@
expression E1, E2, E3;
constant C1, C2, C3;
@@
(
kmalloc(C1 * C2 * C3, ...)
|
kmalloc(
- (E1) * E2 * E3
+ array3_size(E1, E2, E3)
, ...)
|
kmalloc(
- (E1) * (E2) * E3
+ array3_size(E1, E2, E3)
, ...)
|
kmalloc(
- (E1) * (E2) * (E3)
+ array3_size(E1, E2, E3)
, ...)
|
kmalloc(
- E1 * E2 * E3
+ array3_size(E1, E2, E3)
, ...)
)
// And then all remaining 2 factors products when they're not all constants,
// keeping sizeof() as the second factor argument.
@@
expression THING, E1, E2;
type TYPE;
constant C1, C2, C3;
@@
(
kmalloc(sizeof(THING) * C2, ...)
|
kmalloc(sizeof(TYPE) * C2, ...)
|
kmalloc(C1 * C2 * C3, ...)
|
kmalloc(C1 * C2, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(TYPE) * (E2)
+ E2, sizeof(TYPE)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(TYPE) * E2
+ E2, sizeof(TYPE)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(THING) * (E2)
+ E2, sizeof(THING)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(THING) * E2
+ E2, sizeof(THING)
, ...)
|
- kmalloc
+ kmalloc_array
(
- (E1) * E2
+ E1, E2
, ...)
|
- kmalloc
+ kmalloc_array
(
- (E1) * (E2)
+ E1, E2
, ...)
|
- kmalloc
+ kmalloc_array
(
- E1 * E2
+ E1, E2
, ...)
)
Signed-off-by: Kees Cook <keescook@chromium.org>
2018-06-12 13:55:00 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:12 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
2012-05-22 13:55:12 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-06-06 11:50:56 -05:00
|
|
|
|
2012-05-22 13:55:12 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-06-06 11:50:56 -05:00
|
|
|
|
2012-05-22 13:55:12 +10:00
|
|
|
|
2014-06-06 11:50:56 -05:00
|
|
|
|
2012-05-22 13:55:12 +10:00
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
2012-05-22 13:55:12 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-06-06 11:50:56 -05:00
|
|
|
|
2012-05-22 13:55:12 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:21 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:21 +10:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:21 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
2013-01-23 17:07:38 -05:00
|
|
|
|
2007-02-10 01:45:39 -08:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:15 +10:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
|
|
|
|
|
2015-06-19 10:29:13 +02:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2008-05-23 13:04:34 -07:00
|
|
|
|
2016-11-02 14:16:49 +11:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
|
|
|
|
|
2016-11-02 14:16:49 +11:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:27 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
2011-09-21 15:37:46 +10:00
|
|
|
|
|
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:09 +10:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:22 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:09 +10:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:22 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:22 +10:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:22 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2011-07-27 11:00:37 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2016-05-02 11:50:14 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2011-07-27 11:00:37 +10:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2011-07-27 11:00:37 +10:00
|
|
|
|
2011-11-28 13:25:44 +08:00
|
|
|
|
2012-05-22 13:55:15 +10:00
|
|
|
|
2011-07-27 11:00:37 +10:00
|
|
|
|
|
|
|
|
|
2013-04-24 11:42:41 +10:00
|
|
|
|
2011-11-28 13:25:44 +08:00
|
|
|
|
2011-10-07 14:23:17 +11:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2016-05-02 11:50:14 -04:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2016-05-02 11:50:14 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2012-05-22 13:55:15 +10:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
2013-04-24 11:42:41 +10:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2016-05-02 11:50:14 -04:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2014-06-07 00:36:26 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:19 +10:00
|
|
|
|
2006-06-26 00:27:45 -07:00
|
|
|
|
2016-11-04 16:46:03 +11:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:21 +10:00
|
|
|
|
|
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2012-05-22 13:55:22 +10:00
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
2012-05-22 13:55:22 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-14 16:30:21 +11:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2016-11-14 16:30:21 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:09 +10:00
|
|
|
|
2012-05-22 13:55:22 +10:00
|
|
|
|
2016-11-04 16:46:03 +11:00
|
|
|
|
2012-05-22 13:55:22 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2016-11-04 16:46:03 +11:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2014-09-09 14:13:51 +10:00
|
|
|
|
2012-05-22 13:55:15 +10:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-09-09 16:23:44 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2014-06-06 11:50:56 -05:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2012-05-22 13:55:12 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:12 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:34 -08:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:15 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2016-11-02 14:16:49 +11:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:12 +10:00
|
|
|
|
2016-11-02 14:16:49 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2005-06-21 17:17:17 -07:00
|
|
|
|
2012-05-22 13:55:12 +10:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2012-05-22 13:55:12 +10:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2014-06-06 11:50:56 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2005-11-08 21:39:32 -08:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:12 +10:00
|
|
|
|
|
|
|
|
|
2006-06-26 00:27:48 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-06-06 11:50:56 -05:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
2005-06-21 17:17:27 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2011-11-28 13:25:44 +08:00
|
|
|
|
2006-01-06 00:20:34 -08:00
|
|
|
|
2005-09-09 16:23:44 -07:00
|
|
|
|
2011-11-28 13:25:44 +08:00
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:15 +10:00
|
|
|
|
|
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2011-11-28 13:25:44 +08:00
|
|
|
|
2012-05-22 13:55:15 +10:00
|
|
|
|
2006-01-06 00:20:34 -08:00
|
|
|
|
2005-11-08 21:39:32 -08:00
|
|
|
|
2011-03-23 16:42:13 -07:00
|
|
|
|
2011-11-28 13:25:44 +08:00
|
|
|
|
2005-11-08 21:39:32 -08:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2009-05-07 12:49:06 +10:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2016-11-02 14:16:49 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
2016-11-02 14:16:49 +11:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-06-26 00:27:45 -07:00
|
|
|
|
2005-06-21 17:17:27 -07:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2012-05-22 13:55:09 +10:00
|
|
|
|
2006-06-26 00:27:45 -07:00
|
|
|
|
2011-09-21 15:37:46 +10:00
|
|
|
|
2005-06-21 17:17:27 -07:00
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-03-19 12:46:41 +11:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:06 +10:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2012-05-22 13:55:06 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2009-12-14 12:49:46 +11:00
|
|
|
|
2005-06-21 17:17:22 -07:00
|
|
|
|
2012-05-22 13:55:06 +10:00
|
|
|
|
2010-10-19 10:03:39 +11:00
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2009-12-14 12:49:46 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:52 +11:00
|
|
|
|
2009-12-14 12:49:46 +11:00
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:52 +11:00
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
2009-12-14 12:49:46 +11:00
|
|
|
|
2009-12-14 12:49:53 +11:00
|
|
|
|
2011-12-23 10:17:50 +11:00
|
|
|
|
2008-03-10 11:43:48 -07:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2008-03-04 14:29:30 -08:00
|
|
|
|
2011-12-23 10:17:50 +11:00
|
|
|
|
2009-12-14 12:49:46 +11:00
|
|
|
|
2008-03-04 14:29:30 -08:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2016-11-14 16:30:21 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:06 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2012-05-22 13:55:22 +10:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:09 +10:00
|
|
|
|
2012-05-22 13:55:06 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:09 +10:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:06 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:06 +10:00
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2011-07-27 11:00:37 +10:00
|
|
|
|
2012-05-22 13:55:06 +10:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2012-05-22 13:55:06 +10:00
|
|
|
|
2005-06-21 17:17:22 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:06 +10:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2012-05-22 13:55:06 +10:00
|
|
|
|
2011-09-21 15:37:46 +10:00
|
|
|
|
2012-05-22 13:55:06 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:06 +10:00
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2012-05-22 13:55:06 +10:00
|
|
|
|
2011-09-21 15:37:46 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2012-05-22 13:55:06 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:21 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:09 +10:00
|
|
|
|
2012-05-22 13:55:06 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:22 +10:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-10 11:43:48 -07:00
|
|
|
|
2008-03-04 14:29:30 -08:00
|
|
|
|
2011-12-23 10:17:50 +11:00
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:52 +11:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-09-23 18:06:44 +10:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-03-19 12:46:41 +11:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-06-01 19:37:33 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2010-06-01 19:37:33 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-03-19 12:46:41 +11:00
|
|
|
|
2010-06-01 19:37:33 +10:00
|
|
|
|
|
|
|
|
|
2012-03-19 12:46:41 +11:00
|
|
|
|
2010-06-01 19:37:33 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2010-06-01 19:37:33 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-06-01 19:37:33 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
|
|
|
|
|
2005-09-09 16:23:47 -07:00
|
|
|
|
|
|
|
|
|
2010-03-08 16:02:37 +11:00
|
|
|
|
2005-09-09 16:23:47 -07:00
|
|
|
|
2010-03-08 16:02:37 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-07 14:23:17 +11:00
|
|
|
|
|
|
|
|
|
2005-09-09 16:23:47 -07:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2010-10-19 10:03:39 +11:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-06-09 11:42:57 +10:00
|
|
|
|
2007-02-08 14:20:37 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2012-08-02 08:33:20 +10:00
|
|
|
|
2007-02-08 14:20:37 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-02-08 14:20:37 -08:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
|
|
|
|
|
2005-09-09 16:23:47 -07:00
|
|
|
|
2010-03-31 11:21:44 +11:00
|
|
|
|
|
|
|
|
|
2011-10-07 14:23:17 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-09-09 16:23:47 -07:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2010-10-19 10:03:39 +11:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-23 09:57:48 +11:00
|
|
|
|
2008-06-28 08:31:22 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-06-01 19:37:32 +10:00
|
|
|
|
2008-06-28 08:31:22 +10:00
|
|
|
|
|
|
|
|
|
2011-06-09 11:42:57 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2011-06-09 11:42:57 +10:00
|
|
|
|
2007-02-08 14:20:37 -08:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2011-09-21 15:37:46 +10:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2011-09-21 15:37:46 +10:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2010-10-19 10:03:39 +11:00
|
|
|
|
2009-03-31 14:27:02 +11:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-15 03:56:35 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
|
|
|
|
|
2009-03-31 14:27:02 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-10-19 10:03:39 +11:00
|
|
|
|
2009-03-31 14:27:02 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2009-03-31 14:27:02 +11:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-09-21 15:37:46 +10:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2011-09-21 15:37:46 +10:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-10-19 10:03:39 +11:00
|
|
|
|
2008-02-06 01:39:50 -08:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2008-02-06 01:39:50 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2008-02-06 01:39:50 -08:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2008-02-06 01:39:50 -08:00
|
|
|
|
|
|
|
|
|
2010-10-19 10:03:39 +11:00
|
|
|
|
2008-02-06 01:39:50 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-08-19 08:14:42 +10:00
|
|
|
|
2009-12-14 12:49:53 +11:00
|
|
|
|
2008-02-06 01:39:50 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-01-14 09:14:34 +11:00
|
|
|
|
2016-12-08 15:48:19 -08:00
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2008-02-06 01:39:50 -08:00
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2008-02-06 01:39:50 -08:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2008-02-06 01:39:50 -08:00
|
|
|
|
2009-04-14 16:28:34 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2016-05-02 11:50:12 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2016-05-02 11:50:12 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2016-05-02 11:50:12 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2016-05-02 11:50:12 -04:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2005-08-04 12:53:33 -07:00
|
|
|
|
2010-10-19 10:03:39 +11:00
|
|
|
|
2005-08-04 12:53:33 -07:00
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-08-04 12:53:33 -07:00
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2005-08-04 12:53:33 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
2014-06-07 00:36:26 -05:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
|
|
|
|
|
2011-09-21 15:37:46 +10:00
|
|
|
|
2005-08-04 12:53:33 -07:00
|
|
|
|
2014-06-07 00:36:26 -05:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2006-10-03 01:15:49 -07:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2006-10-03 01:15:49 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-10-03 01:15:49 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-08-04 12:53:35 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-08-04 12:53:35 -07:00
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:53 +11:00
|
|
|
|
2005-08-04 12:53:35 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:53 +11:00
|
|
|
|
2009-12-14 12:49:53 +11:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2009-12-14 12:49:53 +11:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2009-12-14 12:49:53 +11:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
|
|
|
|
|
2005-08-04 12:53:35 -07:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-01 17:08:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-06-06 12:43:49 -05:00
|
|
|
|
|
|
|
|
|
2014-06-06 11:50:56 -05:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:21 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2009-12-14 12:49:46 +11:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2017-03-14 09:40:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-09-09 16:23:50 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2019-06-14 17:10:38 +08:00
|
|
|
|
|
|
|
|
|
2017-03-14 09:40:20 +08:00
|
|
|
|
2009-12-14 12:49:52 +11:00
|
|
|
|
2014-12-15 12:56:58 +11:00
|
|
|
|
2005-09-09 16:23:50 -07:00
|
|
|
|
2014-12-15 12:56:58 +11:00
|
|
|
|
2009-12-14 12:49:52 +11:00
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
|
|
|
|
|
2005-09-09 16:23:50 -07:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-09-09 16:23:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-01 17:08:49 +08:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
|
|
|
|
|
2009-04-20 11:50:24 +10:00
|
|
|
|
2009-12-14 12:49:52 +11:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2013-12-11 14:11:53 -05:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2006-10-11 01:22:26 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2009-12-14 12:49:52 +11:00
|
|
|
|
2005-06-21 17:17:27 -07:00
|
|
|
|
2017-10-17 14:24:09 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 00:20:32 -08:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2014-06-06 12:43:49 -05:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2006-06-26 00:27:49 -07:00
|
|
|
|
|
|
|
|
|
2007-02-08 14:20:37 -08:00
|
|
|
|
2010-03-31 11:21:44 +11:00
|
|
|
|
2006-06-26 00:27:49 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2014-06-06 12:43:49 -05:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2010-06-01 19:37:32 +10:00
|
|
|
|
2013-09-11 23:19:13 -04:00
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
2013-09-11 23:19:13 -04:00
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2006-06-26 00:27:49 -07:00
|
|
|
|
|
|
|
|
|
2009-10-16 15:56:01 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-22 17:32:25 +01:00
|
|
|
|
2006-06-26 00:27:49 -07:00
|
|
|
|
2009-12-14 12:49:53 +11:00
|
|
|
|
2011-06-08 17:59:30 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2011-06-08 17:59:30 -05:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2011-06-08 17:59:30 -05:00
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2005-09-09 16:23:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
2005-09-09 16:23:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2016-11-02 14:16:49 +11:00
|
|
|
|
|
|
|
|
|
2010-06-01 19:37:35 +10:00
|
|
|
|
2014-06-06 12:43:49 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-06-01 19:37:35 +10:00
|
|
|
|
2014-06-06 12:43:49 -05:00
|
|
|
|
2010-06-01 19:37:35 +10:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2014-06-06 12:43:49 -05:00
|
|
|
|
2010-06-01 19:37:35 +10:00
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2010-06-01 19:37:35 +10:00
|
|
|
|
|
|
|
|
|
2011-07-27 11:00:37 +10:00
|
|
|
|
2010-06-01 19:37:35 +10:00
|
|
|
|
|
|
|
|
|
2019-06-14 17:10:38 +08:00
|
|
|
|
2010-06-01 19:37:35 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-14 17:10:38 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-04 02:17:09 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-06-01 19:37:35 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-10-19 10:03:39 +11:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2010-06-01 19:37:35 +10:00
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2010-06-01 19:37:35 +10:00
|
|
|
|
2011-07-27 11:00:37 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-04-12 16:05:06 +10:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2012-04-12 16:05:06 +10:00
|
|
|
|
2011-07-27 11:00:37 +10:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2010-06-01 19:37:35 +10:00
|
|
|
|
2012-05-22 13:55:15 +10:00
|
|
|
|
2012-05-22 13:55:08 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-09-09 16:23:50 -07:00
|
|
|
|
2009-12-14 12:49:53 +11:00
|
|
|
|
2009-12-14 12:49:54 +11:00
|
|
|
|
2006-01-06 00:20:16 -08:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2007-07-17 04:06:13 -07:00
|
|
|
|
2012-05-22 13:55:15 +10:00
|
|
|
|
2010-06-01 19:37:35 +10:00
|
|
|
|
|
|
|
|
|
2005-09-09 16:23:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2005-06-21 17:17:14 -07:00
|
|
|
|
2017-03-01 16:42:39 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2017-03-01 16:42:39 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2017-03-01 16:42:39 +08:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2017-03-01 16:42:39 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-06-07 00:36:26 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2015-04-14 10:45:42 -05:00
|
|
|
|
2014-06-07 00:36:26 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-01 16:42:39 +08:00
|
|
|
|
2014-06-07 00:36:26 -05:00
|
|
|
|
2017-03-01 16:42:39 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-06-07 00:36:26 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2014-06-07 00:36:26 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-06-07 00:36:26 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-14 10:45:42 -05:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2016-05-02 11:50:15 -04:00
|
|
|
|
|
|
|
|
|
2015-04-14 10:45:42 -05:00
|
|
|
|
2016-05-02 11:50:15 -04:00
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2015-04-14 10:45:42 -05:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2014-06-07 00:36:26 -05:00
|
|
|
|
|
|
|
|
|
2017-03-01 16:42:39 +08:00
|
|
|
|
2014-06-07 00:36:26 -05:00
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2014-06-07 00:36:26 -05:00
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2012-03-19 12:46:40 +11:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
2012-03-19 12:46:40 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
|
|
|
|
|
2012-03-19 12:46:40 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:24 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-03-19 12:46:40 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:10 +10:00
|
|
|
|
2012-03-19 12:46:40 +11:00
|
|
|
|
2015-06-19 10:30:28 +02:00
|
|
|
|
2012-03-19 12:46:40 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-31 10:23:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-31 10:19:00 +08:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
2016-10-31 10:19:00 +08:00
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
treewide: kzalloc() -> kcalloc()
The kzalloc() function has a 2-factor argument form, kcalloc(). This
patch replaces cases of:
kzalloc(a * b, gfp)
with:
kcalloc(a * b, gfp)
as well as handling cases of:
kzalloc(a * b * c, gfp)
with:
kzalloc(array3_size(a, b, c), gfp)
as it's slightly less ugly than:
kzalloc_array(array_size(a, b), c, gfp)
This does, however, attempt to ignore constant size factors like:
kzalloc(4 * 1024, gfp)
though any constants defined via macros get caught up in the conversion.
Any factors with a sizeof() of "unsigned char", "char", and "u8" were
dropped, since they're redundant.
The Coccinelle script used for this was:
// Fix redundant parens around sizeof().
@@
type TYPE;
expression THING, E;
@@
(
kzalloc(
- (sizeof(TYPE)) * E
+ sizeof(TYPE) * E
, ...)
|
kzalloc(
- (sizeof(THING)) * E
+ sizeof(THING) * E
, ...)
)
// Drop single-byte sizes and redundant parens.
@@
expression COUNT;
typedef u8;
typedef __u8;
@@
(
kzalloc(
- sizeof(u8) * (COUNT)
+ COUNT
, ...)
|
kzalloc(
- sizeof(__u8) * (COUNT)
+ COUNT
, ...)
|
kzalloc(
- sizeof(char) * (COUNT)
+ COUNT
, ...)
|
kzalloc(
- sizeof(unsigned char) * (COUNT)
+ COUNT
, ...)
|
kzalloc(
- sizeof(u8) * COUNT
+ COUNT
, ...)
|
kzalloc(
- sizeof(__u8) * COUNT
+ COUNT
, ...)
|
kzalloc(
- sizeof(char) * COUNT
+ COUNT
, ...)
|
kzalloc(
- sizeof(unsigned char) * COUNT
+ COUNT
, ...)
)
// 2-factor product with sizeof(type/expression) and identifier or constant.
@@
type TYPE;
expression THING;
identifier COUNT_ID;
constant COUNT_CONST;
@@
(
- kzalloc
+ kcalloc
(
- sizeof(TYPE) * (COUNT_ID)
+ COUNT_ID, sizeof(TYPE)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(TYPE) * COUNT_ID
+ COUNT_ID, sizeof(TYPE)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(TYPE) * (COUNT_CONST)
+ COUNT_CONST, sizeof(TYPE)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(TYPE) * COUNT_CONST
+ COUNT_CONST, sizeof(TYPE)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(THING) * (COUNT_ID)
+ COUNT_ID, sizeof(THING)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(THING) * COUNT_ID
+ COUNT_ID, sizeof(THING)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(THING) * (COUNT_CONST)
+ COUNT_CONST, sizeof(THING)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(THING) * COUNT_CONST
+ COUNT_CONST, sizeof(THING)
, ...)
)
// 2-factor product, only identifiers.
@@
identifier SIZE, COUNT;
@@
- kzalloc
+ kcalloc
(
- SIZE * COUNT
+ COUNT, SIZE
, ...)
// 3-factor product with 1 sizeof(type) or sizeof(expression), with
// redundant parens removed.
@@
expression THING;
identifier STRIDE, COUNT;
type TYPE;
@@
(
kzalloc(
- sizeof(TYPE) * (COUNT) * (STRIDE)
+ array3_size(COUNT, STRIDE, sizeof(TYPE))
, ...)
|
kzalloc(
- sizeof(TYPE) * (COUNT) * STRIDE
+ array3_size(COUNT, STRIDE, sizeof(TYPE))
, ...)
|
kzalloc(
- sizeof(TYPE) * COUNT * (STRIDE)
+ array3_size(COUNT, STRIDE, sizeof(TYPE))
, ...)
|
kzalloc(
- sizeof(TYPE) * COUNT * STRIDE
+ array3_size(COUNT, STRIDE, sizeof(TYPE))
, ...)
|
kzalloc(
- sizeof(THING) * (COUNT) * (STRIDE)
+ array3_size(COUNT, STRIDE, sizeof(THING))
, ...)
|
kzalloc(
- sizeof(THING) * (COUNT) * STRIDE
+ array3_size(COUNT, STRIDE, sizeof(THING))
, ...)
|
kzalloc(
- sizeof(THING) * COUNT * (STRIDE)
+ array3_size(COUNT, STRIDE, sizeof(THING))
, ...)
|
kzalloc(
- sizeof(THING) * COUNT * STRIDE
+ array3_size(COUNT, STRIDE, sizeof(THING))
, ...)
)
// 3-factor product with 2 sizeof(variable), with redundant parens removed.
@@
expression THING1, THING2;
identifier COUNT;
type TYPE1, TYPE2;
@@
(
kzalloc(
- sizeof(TYPE1) * sizeof(TYPE2) * COUNT
+ array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))
, ...)
|
kzalloc(
- sizeof(TYPE1) * sizeof(THING2) * (COUNT)
+ array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))
, ...)
|
kzalloc(
- sizeof(THING1) * sizeof(THING2) * COUNT
+ array3_size(COUNT, sizeof(THING1), sizeof(THING2))
, ...)
|
kzalloc(
- sizeof(THING1) * sizeof(THING2) * (COUNT)
+ array3_size(COUNT, sizeof(THING1), sizeof(THING2))
, ...)
|
kzalloc(
- sizeof(TYPE1) * sizeof(THING2) * COUNT
+ array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))
, ...)
|
kzalloc(
- sizeof(TYPE1) * sizeof(THING2) * (COUNT)
+ array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))
, ...)
)
// 3-factor product, only identifiers, with redundant parens removed.
@@
identifier STRIDE, SIZE, COUNT;
@@
(
kzalloc(
- (COUNT) * STRIDE * SIZE
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kzalloc(
- COUNT * (STRIDE) * SIZE
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kzalloc(
- COUNT * STRIDE * (SIZE)
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kzalloc(
- (COUNT) * (STRIDE) * SIZE
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kzalloc(
- COUNT * (STRIDE) * (SIZE)
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kzalloc(
- (COUNT) * STRIDE * (SIZE)
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kzalloc(
- (COUNT) * (STRIDE) * (SIZE)
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kzalloc(
- COUNT * STRIDE * SIZE
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
)
// Any remaining multi-factor products, first at least 3-factor products,
// when they're not all constants...
@@
expression E1, E2, E3;
constant C1, C2, C3;
@@
(
kzalloc(C1 * C2 * C3, ...)
|
kzalloc(
- (E1) * E2 * E3
+ array3_size(E1, E2, E3)
, ...)
|
kzalloc(
- (E1) * (E2) * E3
+ array3_size(E1, E2, E3)
, ...)
|
kzalloc(
- (E1) * (E2) * (E3)
+ array3_size(E1, E2, E3)
, ...)
|
kzalloc(
- E1 * E2 * E3
+ array3_size(E1, E2, E3)
, ...)
)
// And then all remaining 2 factors products when they're not all constants,
// keeping sizeof() as the second factor argument.
@@
expression THING, E1, E2;
type TYPE;
constant C1, C2, C3;
@@
(
kzalloc(sizeof(THING) * C2, ...)
|
kzalloc(sizeof(TYPE) * C2, ...)
|
kzalloc(C1 * C2 * C3, ...)
|
kzalloc(C1 * C2, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(TYPE) * (E2)
+ E2, sizeof(TYPE)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(TYPE) * E2
+ E2, sizeof(TYPE)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(THING) * (E2)
+ E2, sizeof(THING)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(THING) * E2
+ E2, sizeof(THING)
, ...)
|
- kzalloc
+ kcalloc
(
- (E1) * E2
+ E1, E2
, ...)
|
- kzalloc
+ kcalloc
(
- (E1) * (E2)
+ E1, E2
, ...)
|
- kzalloc
+ kcalloc
(
- E1 * E2
+ E1, E2
, ...)
)
Signed-off-by: Kees Cook <keescook@chromium.org>
2018-06-12 14:03:40 -07:00
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-10-16 19:03:44 -07:00
|
|
|
|
md/bitmap: avoid race window between md_bitmap_resize and bitmap_file_clear_bit
We need to move "spin_lock_irq(&bitmap->counts.lock)" before unmap previous
storage, otherwise panic like belows could happen as follows.
[ 902.353802] sdl: detected capacity change from 1077936128 to 3221225472
[ 902.616948] general protection fault: 0000 [#1] SMP
[snip]
[ 902.618588] CPU: 12 PID: 33698 Comm: md0_raid1 Tainted: G O 4.14.144-1-pserver #4.14.144-1.1~deb10
[ 902.618870] Hardware name: Supermicro SBA-7142G-T4/BHQGE, BIOS 3.00 10/24/2012
[ 902.619120] task: ffff9ae1860fc600 task.stack: ffffb52e4c704000
[ 902.619301] RIP: 0010:bitmap_file_clear_bit+0x90/0xd0 [md_mod]
[ 902.619464] RSP: 0018:ffffb52e4c707d28 EFLAGS: 00010087
[ 902.619626] RAX: ffe8008b0d061000 RBX: ffff9ad078c87300 RCX: 0000000000000000
[ 902.619792] RDX: ffff9ad986341868 RSI: 0000000000000803 RDI: ffff9ad078c87300
[ 902.619986] RBP: ffff9ad0ed7a8000 R08: 0000000000000000 R09: 0000000000000000
[ 902.620154] R10: ffffb52e4c707ec0 R11: ffff9ad987d1ed44 R12: ffff9ad0ed7a8360
[ 902.620320] R13: 0000000000000003 R14: 0000000000060000 R15: 0000000000000800
[ 902.620487] FS: 0000000000000000(0000) GS:ffff9ad987d00000(0000) knlGS:0000000000000000
[ 902.620738] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 902.620901] CR2: 000055ff12aecec0 CR3: 0000001005207000 CR4: 00000000000406e0
[ 902.621068] Call Trace:
[ 902.621256] bitmap_daemon_work+0x2dd/0x360 [md_mod]
[ 902.621429] ? find_pers+0x70/0x70 [md_mod]
[ 902.621597] md_check_recovery+0x51/0x540 [md_mod]
[ 902.621762] raid1d+0x5c/0xeb0 [raid1]
[ 902.621939] ? try_to_del_timer_sync+0x4d/0x80
[ 902.622102] ? del_timer_sync+0x35/0x40
[ 902.622265] ? schedule_timeout+0x177/0x360
[ 902.622453] ? call_timer_fn+0x130/0x130
[ 902.622623] ? find_pers+0x70/0x70 [md_mod]
[ 902.622794] ? md_thread+0x94/0x150 [md_mod]
[ 902.622959] md_thread+0x94/0x150 [md_mod]
[ 902.623121] ? wait_woken+0x80/0x80
[ 902.623280] kthread+0x119/0x130
[ 902.623437] ? kthread_create_on_node+0x60/0x60
[ 902.623600] ret_from_fork+0x22/0x40
[ 902.624225] RIP: bitmap_file_clear_bit+0x90/0xd0 [md_mod] RSP: ffffb52e4c707d28
Because mdadm was running on another cpu to do resize, so bitmap_resize was
called to replace bitmap as below shows.
PID: 38801 TASK: ffff9ad074a90e00 CPU: 0 COMMAND: "mdadm"
[exception RIP: queued_spin_lock_slowpath+56]
[snip]
-- <NMI exception stack> --
#5 [ffffb52e60f17c58] queued_spin_lock_slowpath at ffffffff9c0b27b8
#6 [ffffb52e60f17c58] bitmap_resize at ffffffffc0399877 [md_mod]
#7 [ffffb52e60f17d30] raid1_resize at ffffffffc0285bf9 [raid1]
#8 [ffffb52e60f17d50] update_size at ffffffffc038a31a [md_mod]
#9 [ffffb52e60f17d70] md_ioctl at ffffffffc0395ca4 [md_mod]
And the procedure to keep resize bitmap safe is allocate new storage
space, then quiesce, copy bits, replace bitmap, and re-start.
However the daemon (bitmap_daemon_work) could happen even the array is
quiesced, which means when bitmap_file_clear_bit is triggered by raid1d,
then it thinks it should be fine to access store->filemap since
counts->lock is held, but resize could change the storage without the
protection of the lock.
Cc: Jack Wang <jinpu.wang@cloud.ionos.com>
Cc: NeilBrown <neilb@suse.com>
Signed-off-by: Guoqing Jiang <guoqing.jiang@cloud.ionos.com>
Signed-off-by: Song Liu <songliubraving@fb.com>
2019-09-26 13:53:50 +02:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-02 11:50:11 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2016-05-02 11:50:11 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-02 11:50:16 -04:00
|
|
|
|
2016-05-02 11:50:11 -04:00
|
|
|
|
2017-11-08 13:44:56 +01:00
|
|
|
|
2016-05-02 11:50:11 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-02 14:16:49 +11:00
|
|
|
|
2016-05-02 11:50:11 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-08 13:44:56 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2012-05-22 13:55:25 +10:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
2016-07-30 10:05:31 -07:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
2016-07-30 10:05:31 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
2016-07-30 10:05:31 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-30 10:05:31 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
2018-10-08 17:24:03 +02:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2018-10-08 17:24:03 +02:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-30 10:05:31 -07:00
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
2013-06-01 16:15:16 +09:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
2013-06-01 16:15:16 +09:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
2016-07-30 10:05:31 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
|
|
|
|
|
2016-07-30 10:05:31 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
2014-06-06 12:43:49 -05:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2018-10-08 17:24:03 +02:00
|
|
|
|
2014-06-06 12:43:49 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2016-04-01 17:08:49 +08:00
|
|
|
|
2014-06-06 12:43:49 -05:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
2016-04-01 17:08:49 +08:00
|
|
|
|
2018-08-01 15:20:50 -07:00
|
|
|
|
2018-10-08 17:24:03 +02:00
|
|
|
|
2016-07-30 10:05:31 -07:00
|
|
|
|
2016-04-01 17:08:49 +08:00
|
|
|
|
2018-10-08 17:24:03 +02:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-08 15:48:19 -08:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
2016-07-30 10:05:31 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:07 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:11 +10:00
|
|
|
|
2012-05-22 13:55:07 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-06-01 19:37:31 +10:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
2019-06-14 17:10:37 +08:00
|
|
|
|
2013-06-01 16:15:16 +09:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-14 17:10:37 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-01 16:15:16 +09:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
2014-03-29 10:20:02 -05:00
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-03-29 10:20:02 -05:00
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
|
|
|
|
|
2014-12-15 12:56:59 +11:00
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-12-15 12:56:59 +11:00
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-08 16:02:37 +11:00
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2010-03-08 16:02:37 +11:00
|
|
|
|
2014-12-15 12:56:59 +11:00
|
|
|
|
|
|
|
|
|
2010-03-08 16:02:37 +11:00
|
|
|
|
2014-12-15 12:56:59 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-08 16:02:37 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-11 16:47:53 +11:00
|
|
|
|
2010-03-08 16:02:37 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
2012-05-22 13:55:07 +10:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-14 12:49:56 +11:00
|
|
|
|
|
|
|
|
|
2010-03-08 16:02:37 +11:00
|
|
|
|
2009-12-14 12:49:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|