本帖最后由 1五湖四海1 于 2016-8-25 22:44 编辑
7 W' J2 b) h$ j) J; U2 p' Q8 j) L- Y# T( U7 S
这个defaults.h文件作为一个中央默认设置配置不同的机器类型,从DIY米尔斯数控CNC转换的现成的机器。这里的设置所列出的文件是由用户提供的,0 v, t7 a* e, E" o
所以您的你的需求可能不同。所以应该你了解你的机器和调整设置根据你的个性的需求,制造机器。
' s+ G1 t( B2 Ddefaults_h文件是选择是否将一些参数设置为默认值
9 ~+ g2 y0 |) M5 i# l4 l/ E9 h定义各种参数
( F6 q x/ o5 C# X4 O% K% [$ ^1.defaults/defaults_generic.h //Grbl通过通用默认设置就可以在不同的机器上工作。8 \# [0 i9 n6 l
2.defaults/defaults_sherline.h //描述:Sherline 5400制造厂三个NEMA 23客户KL23H256-21-8B 185扭力步进电机
7 C( o# d+ A5 m$ a6 B. F3.defaults/defaults_shapeoko.h // 描述:Shapeoko数控机有三个NEMA 17步进电机,由Synthetos驱动的0 a S7 Y" R7 S1 k
4.defaults/defaults_shapeoko3 //描述:Shapeoko数控机有三个NEMA 23步进电机,由CarbideMotion驱动的
) s: P9 T8 D |& ~5.defaults/defaults_x_carve_500mm //描述:X-Carve 3 d卡佛数控机有三个200步/汽车由Synthetos牧师grblShield 24 v。! c- o. a: ]* C* x$ `# S, M
6.defaults/defaults_zen_toolworks_7x7 //描述:禅宗Toolworks 7 x7机有三个Shinano SST43D2121 65扭力NEMA 17步进电机。导螺杆不同于一些ZTW包,大多数是1.25毫米/牧师而不是8.0毫米/牧师。由30 v 6电源和TI DRV8811步进电机驱动程序
* |. L* f0 Y( N$ A, @7.defaults/defaults_oxcnc // Grbl设置OpenBuilds牛数控机床
' k8 C; b$ ~0 ~+ I: y& E8.defaults/defaults_simulator# e2 V" Y! t1 S# [1 \% y$ K
6 y- K( X+ C5 d8 a* `6 f/*
+ m7 k* K. U* S8 f5 e+ N defaults.h - defaults settings configuration file
$ p/ r; o6 g& [0 D; J0 `1 Q, u Part of Grbl, s7 @2 N) P3 \8 e8 t
6 C( K+ l: n- ?) |0 l O( p9 R! ^ Copyright (c) 2012-2015 Sungeun K. Jeon9 A6 ?1 z3 A! A( F3 i6 t
6 E4 [ L V. h y+ m! a Grbl is free software: you can redistribute it and/or modify A( B( B" s0 x
it under the terms of the GNU General Public License as published by* e; {1 p' j1 F2 t2 J
the Free Software Foundation, either version 3 of the License, or7 E0 o; N8 r% n" H; F/ @4 |# Q, u
(at your option) any later version.' F; f: W% r& A/ B: N( f
' y! |; f& a& b! z
Grbl is distributed in the hope that it will be useful,5 O9 f8 s* [8 ~/ m; k2 R
but WITHOUT ANY WARRANTY; without even the implied warranty of
) H4 t9 q7 T/ C( T" X2 z1 ~* b MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
. ]9 H, ]" m( A5 S6 |' U GNU General Public License for more details.2 @2 S: A! m- |: L/ @+ z! d
% ~" |8 S2 w5 ]
You should have received a copy of the GNU General Public License+ h, f; b7 k/ P) y8 d; J
along with Grbl. If not, see <http://www.gnu.org/licenses/>.
- Z+ t# e' _1 k8 e*/6 f6 U7 X$ }! h+ S
% n3 b5 b" w4 K* z0 E/ n- {/* The defaults.h file serves as a central default settings selector for different machine/ O: [# b/ [; `( a; R/ A: w
types, from DIY CNC mills to CNC conversions of off-the-shelf machines. The settings 1 o; N; R; E( m% U7 w$ @
files listed here are supplied by users, so your results may vary. However, this should
+ J5 J' q: T( j give you a good starting point as you get to know your machine and tweak the settings for0 ]6 Q3 t8 _* n$ F. X
your nefarious needs.8 {4 f: a6 u9 ~! z' T% t, }
Ensure one and only one of these DEFAULTS_XXX values is defined in config.h
' r% R4 Q3 B% p( j: k% S w. i$ n, {2 F4 _- U9 q7 q4 B* a( `+ }
The defaults.h文件作为一个中央默认设置选择不同的机器
6 e- g8 P( l5 w# C/ G% e! @ 类型,从DIY米尔斯数控CNC转换的现成的机器。的设置
2 s. W5 G! u, X4 J 这里列出的文件是由用户提供的,所以您的结果可能不同。然而,这应该
: {/ h' n# ?4 l/ d' F0 e6 y 给你一个很好的起点,你了解你的机器和调整设置3 j/ _1 t8 {) }: `
你的个性的需求。% u" e! c# R% K" e8 ~0 K' w
确保一个且只有一个这些DEFAULTS_XXX config.h中定义的值3 {' R6 I3 H& g! ~9 }4 M! U" i
*/
/ G8 @, L4 t& }% \7 ^; @
% w) v# Q4 L, A2 A; `# q8 N8 s& b#ifndef defaults_h" w$ {, g1 G6 i# y4 s: m# f
( u _% Q+ G- R" c
// Only define the DEFAULT_XXX with where to find the corresponding default_XXX.h file.9 X$ M2 f; z* {
// Don't #define defaults_h here, let the selected file do it. Prevents including more than one.! ^$ S! Z: t7 \, Q G( a8 l
//只有定义DEFAULT_XXX在哪里可以找到相应的DEFAULT_XXX。h文件。
+ ~" j8 l5 @! _//别在这里# define defaults_h,让选中的文件。防止包括不止一个。
5 E, K' K# w8 B4 _6 C! b8 z
0 G+ ~7 e0 ?) F. `% ^- @8 u#ifdef DEFAULTS_GENERIC# O" m' G3 s- C" k% \
// Grbl generic default settings. Should work across different machines., ~6 ^" w" v* F* F( f6 s" E
// Grbl通过通用默认设置就可以在不同的机器上工作。
# O+ O: V7 ~/ j! s1 o #include "defaults/defaults_generic.h"
/ P6 f, f# D3 S t9 R, M#endif
4 d# Y T; X1 L
B3 s, b( ]% ` u# g+ h#ifdef DEFAULTS_SHERLINE_5400. I& g. `! m% {. w ]6 j" W0 Q
// Description: Sherline 5400 mill with three NEMA 23 Keling KL23H256-21-8B 185 oz-in stepper motors,- e7 e+ v0 _% `. L- _. ?0 s2 X
// driven by three Pololu A4988 stepper drivers with a 30V, 6A power supply at 1.5A per winding.! @0 v6 g4 g- n3 I7 N4 E8 S% S
//描述:Sherline 5400制造厂三个NEMA 23客户KL23H256-21-8B 185扭力步进电机,
% n6 M, a: k$ L: h9 b5 I //由三个Pololu A4988步进驱动30 v,6在每1.5绕组供电。 d! @; b2 j4 Y6 ~
. S3 ^' U# `. S
#include "defaults/defaults_sherline.h"
8 n* k0 l+ n2 g3 u#endif
7 s/ K1 @! \- m9 R, z6 z% t
+ {8 [; ]0 E+ R, b( j2 \#ifdef DEFAULTS_SHAPEOKO
6 p8 ^4 l4 O! C6 z# {8 h' Z // Description: Shapeoko CNC mill with three NEMA 17 stepper motors, driven by Synthetos" I- U( P% m& e2 C. G9 {, d& @
// grblShield with a 24V, 4.2A power supply.. |, C* z# b( j* E5 Z
// 描述:Shapeoko数控机有三个NEMA 17步进电机,由Synthetos驱动的
+ t2 s5 h9 E( X // grblShield 24 v,4.2电源。
( B$ m6 @$ m2 E ]. W; m+ Y& r0 J% ^6 q% s; z- ]# U
#include "defaults/defaults_shapeoko.h"/ l, N( |0 T9 j, p$ p
#endif
' @! U3 O- P8 D# I$ z, E! y+ L F1 C
#ifdef DEFAULTS_SHAPEOKO_2
' j D9 n" r# y" f/ H- [ // Description: Shapeoko CNC mill with three NEMA 17 stepper motors, driven by Synthetos* |0 Z, {, u! }0 L' }
// grblShield at 28V.
g3 G6 e9 Q9 i" b0 j6 r- k // 描述:Shapeoko数控机有三个NEMA 17步进电机,由Synthetos驱动的2 X5 J5 F! Y7 x2 }
// grblShield 28 v。4 U0 B: b- X! {0 [/ w6 Y
' S; Y6 P# I9 `9 j# b, O
#include "defaults/defaults_shapeoko2.h"
' j! c2 @- G' c5 [0 [" K#endif
1 p- O+ @0 v6 z' Z, `; V) B! D% I; k! _4 U
#ifdef DEFAULTS_SHAPEOKO_3# l% C1 k; f- }) F
// Description: Shapeoko CNC mill with three NEMA 23 stepper motors, driven by CarbideMotion8 i' r% l' V$ z9 X3 |6 I5 l
// 描述:Shapeoko数控机有三个NEMA 23步进电机,由CarbideMotion驱动的
" x$ p; D @6 U0 o# l- k5 t" G& [ g3 V: o7 G- @0 J) W- u6 b
#include "defaults/defaults_shapeoko3.h"
; P" l0 B6 y- I' M#endif4 `3 J8 W# V8 P8 V+ c0 ]6 N S
' T2 |# E. C. m* R1 [# P- U/ `6 d
#ifdef DEFAULTS_X_CARVE_500MM
7 c1 Q8 L& U, i/ c // Description: X-Carve 3D Carver CNC mill with three 200 step/rev motors driven by Synthetos
d5 [, {+ w( D9 V* V' U // grblShield at 24V.. c$ D" v9 W0 l @7 V# q. R3 }3 o
// 描述:X-Carve 3 d卡佛数控机有三个200步/汽车由Synthetos牧师grblShield 24 v。/ k; G# z0 h; ~3 `
#include "defaults/defaults_x_carve_500mm.h"( b) Y- l6 b: R/ ?3 e
#endif( }9 Z( ?) ?& V+ x3 D
- @( `8 a1 h7 t6 [/ A#ifdef DEFAULTS_X_CARVE_1000MM; H1 z; s. e$ V
// Description: X-Carve 3D Carver CNC mill with three 200 step/rev motors driven by Synthetos
5 z4 n3 L% s. W, ^+ q1 q6 b // grblShield at 24V.
4 ^3 B. f7 z: \7 B- ~6 j0 C* I- b #include "defaults/defaults_x_carve_1000mm.h"
) f4 O" R* }+ C4 M* b- p5 v# {#endif2 k. `1 P0 e4 f. ~
! L3 ^! e7 e. F! W: ]#ifdef DEFAULTS_ZEN_TOOLWORKS_7x7$ i' E/ {$ ~: y4 ~
// Description: Zen Toolworks 7x7 mill with three Shinano SST43D2121 65oz-in NEMA 17 stepper motors.- z1 D9 E8 A c, d1 D. ^
// Leadscrew is different from some ZTW kits, where most are 1.25mm/rev rather than 8.0mm/rev here., r4 Z2 s+ ~4 ]( V7 Y. v6 \3 o6 u
// Driven by 30V, 6A power supply and TI DRV8811 stepper motor drivers.
( p/ R' S$ h$ c. ?% i( w% ` //描述:禅宗Toolworks 7 x7机有三个Shinano SST43D2121 65扭力NEMA 17步进电机。; C" w. L- a4 ~# ?: z4 K& l3 }
//导螺杆不同于一些ZTW包,大多数是1.25毫米/牧师而不是8.0毫米/牧师。7 S4 L+ Q( S! K* d4 g2 N
//由30 v 6电源和TI DRV8811步进电机驱动程序。
6 b3 y5 ^( o/ \' |$ M% G. A. a$ P% y# T
#include "defaults/defaults_zen_toolworks_7x7.h"
O8 R5 P- u& e9 S4 z2 z#endif1 h4 y" R, H5 u. }4 W) T, J& e( n
3 q& ~4 c) z+ r- Z- K+ u; `- ~
#ifdef DEFAULTS_OXCNC
: d7 h4 j$ v3 m" m/ S // Grbl settings for OpenBuilds OX CNC Machine
. h* X3 ?" G% y9 |/ H U // http://www.openbuilds.com/builds/openbuilds-ox-cnc-machine.341/: D% }$ K4 U c; Z" I& K+ D
. i) s( ~1 k1 J l7 f" J // http://www.openbuilds.com/builds/openbuilds-ox-cnc-machine.341/
9 A5 u$ V, W9 b, s: `7 c) t #include "defaults/defaults_oxcnc.h" // Grbl设置OpenBuilds牛数控机床
" d4 X+ y2 o5 T7 G#endif
, m1 v7 A- G8 S3 n \
" `/ l- P1 v9 E' A* P#ifdef DEFAULTS_SIMULATOR
/ }) L2 r6 r- s6 D5 m // Settings only for Grbl Simulator (www.github.com/grbl/grbl-sim)
7 F3 I6 s) {: Y& L: u% @ #include "defaults/defaults_simulator.h" //设置只对Grbl模拟器(www.github.com/grbl/grbl-sim)+ Z2 i2 [' h% {; @. d
#endif1 r$ e8 S- {- p. t9 ^6 C! H
- {& K) _. M4 R% h z& L) t#endif
9 K I; n" ^% N2 z" w/ d- p/ w$ c) F n" Q& P7 U
__________________________________________________________________________________________________________________/ t4 p6 V2 W$ I0 y& B0 E: o
/*
/ W- E+ J; h& ?2 m/ @0 M; Sdefaults_generic.h -默认设置配置文件Grbl的一部分
# R" m0 g% T. J e版权(c)2012 - 2015 Sungeun k全( F/ d9 b$ p$ j0 ?( ~
Grbl是免费软件:可以重新分配和/或修改. s; P; S4 K9 a3 \4 B5 z( G. M
GNU通用公共许可证的条款下发布的
% M: [& ]* U0 x/ e自由软件基金会,版本3的许可,或
; `; k5 z4 e& J' V* g- s(任您选)其后的版本。
n7 d" D$ @; t$ K3 u' ~' }3 R6 ?; Z" n; {+ U* Y+ P
Grbl分布,希望这将是有用的,
8 d& L8 H+ d9 r" r但是没有任何保证;没有即使的默示保证
; j$ }0 |& l3 j ] S( I( w适销性或健身为特定目的。看到' ^, O1 F3 f5 ~* I' m+ t8 ^9 E6 b
GNU通用公共许可证的更多细节。5 }0 l# I8 f+ c9 ^2 J: o& r9 L
, I6 @! A2 w( [9 B: d
你应该收到了GNU通用公共许可证的副本
7 p8 \6 l0 @$ `2 R连同Grbl。如果没有,看< http://www.gnu.org/licenses/ >。
6 O0 p" [1 r1 Q7 d- Y c* /7 K7 T: n. S; K& o
& T1 U7 D* T2 c
/ *默认值。h文件作为一个中央默认设置文件不同的机器
1 M6 m# ]; ~4 v类型,从DIY米尔斯数控CNC转换的现成的机器。的设置
! P" L2 h0 L& w; R: Q6 ^这是由用户提供,所以您的结果可能不同。然而,这应该给你
% |# \3 L. L v( k" v一个好的起点,你了解你的机器和调整的设置) x5 T* o8 I( Y7 l
邪恶的需求。*/( f$ [1 J. m- L* O
& C# j$ q5 w- g
+ _- ?) _* N# n. ^4 v! t0 O: w& L% ~#ifndef defaults_h
) W' O" g8 B o#define defaults_h) K! ]" O3 w J2 w
2 C! Y$ T: Q; F) z
// Grbl generic default settings. Should work across different machines., d" o4 {8 ~7 O0 W! v& F
#define DEFAULT_X_STEPS_PER_MM 250.0 //X轴每mm脉冲当量 ) V( ]1 c* b5 F1 H
#define DEFAULT_Y_STEPS_PER_MM 250.0
! h* r+ f" q4 }/ y. u- F #define DEFAULT_Z_STEPS_PER_MM 250.0: D9 L* N7 P; h+ V3 e' l
#define DEFAULT_X_MAX_RATE 500.0 // mm/min 最大速度$ B& d* \0 L1 g3 r7 C
#define DEFAULT_Y_MAX_RATE 500.0 // mm/min3 W4 Y8 |% _4 r# H. ~7 p" D
#define DEFAULT_Z_MAX_RATE 500.0 // mm/min2 P, I+ x- E; @4 `" j& n
/*这是毫米/秒/秒的加速度。
' U+ ` v7 y6 d/ K' ^& s8 o你不需要理解这是什么意思,我只想说,一个较低的值给smooooother加速度而价值更高的收益率更严格的措施,达到所需的进料速度更快。5 K( M6 U1 D. e/ f2 J8 l
从技术角度讲,这是您的机器的点对点的加速度,独立于轴。设置加速度值高达你最限制轴可以让你在不丢失任何步骤。) C3 Q+ x0 m. x( e% Q
通常你想给自己一些缓冲,因为如果你失去了步骤,Grbl不知道这发生了(开环控制步进),并将继续。*/
/ L7 A$ T6 \7 N* R2 I P" n) s1 F #define DEFAULT_X_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2 加速度$ A) @4 w4 P1 F. v. _
#define DEFAULT_Y_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2# s6 V/ D# K/ z4 | W
#define DEFAULT_Z_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2
3 M5 `" Q" w# q1 g. A" P #define DEFAULT_X_MAX_TRAVEL 200.0 // mm 最大步行 O& q# d# d$ l. i6 }4 i! s
#define DEFAULT_Y_MAX_TRAVEL 200.0 // mm 0 [8 b& g D% x
#define DEFAULT_Z_MAX_TRAVEL 200.0 // mm 7 Z% F& I8 ?; b7 _/ y! ]5 M
#define DEFAULT_STEP_PULSE_MICROSECONDS 10 //步进驱动脉冲长度
% L, k- c8 m- z #define DEFAULT_STEPPING_INVERT_MASK 0 //步进是否反转4 h. R* a/ l2 s( y- z; x
#define DEFAULT_DIRECTION_INVERT_MASK 0 //方向是否反转
, K" s, s) ^1 \2 q Z0 A /*5 g+ z! }9 O( V; ? J; a3 t$ c
每次你完成步进运动和停止,Grbl将禁用默认步进。
- [7 M; j) l$ N9 X' \锁步进空闲时间时间长度Grbl将步进锁之前禁用。$ J2 Y# E7 W4 b! v1 z( ?
根据系统中,您可以将这个参数设置为零,禁用它。对他人,你可能需要25 - 50毫秒来确保你的斧子来完成禁用前停止。(我的机器往往漂移稍微如果我没有启用。)
8 J: |" s0 `! |" u或者,你可以让你的轴在任何时候启用通过将这个值设置为最大255毫秒。再次重复,你总是可以保持所有轴通过设置启用7美元= 255。*/
4 h4 r" d1 J# z, Y, W5 \ | #define DEFAULT_STEPPER_IDLE_LOCK_TIME 25 // msec (0-254, 255 keeps steppers enabled)步进闲着时间
+ A$ a+ W5 {) ^* @ #define DEFAULT_STATUS_REPORT_MASK ((BITFLAG_RT_STATUS_MACHINE_POSITION)|(BITFLAG_RT_STATUS_WORK_POSITION)) //是否打印状态报告8 C' E) E7 I7 O% I- M
/*一些高低cnc-stepper控制器需要输入反方向和步骤。
5 X+ x* g d* Q* ~3 c( ^8 I$ e# Q信号线路通常是高或低信号方向或高,低了几微秒一步事件信号。为了达到这个目标,Grbl可以反转输出比特来满足特定的需求。
c7 |/ R( B; o* b- C, j反掩码值是一个字节,xor的步骤和方向步进港数据之前发送。这样你可以使用这两个转化步骤脉冲或转化的一个或多个方向的轴。& H; b* v* `; G2 r$ N3 x/ M
这个字节对应的比特分配给介入config.h别针。请注意,不用于反演位0和1。默认比特分配是这样的:*/
$ ?: j6 O3 f0 B& g: P) E* Q" _+ y8 `# [. L
/* 转弯路口偏差使用加速度经理决定它如何快速穿过一条路径。
4 z5 S" J! y( ^ 数学有点复杂,但总的来说,更高的价值给一般快,可能的波动运动。低价值使得加速度经理更加谨慎,将导致小心和慢转弯。1 L0 H' ^) ]1 V( x
如果你遇到问题,你的机器试图把一个角落太快,降低此值使它慢下来。; l" E) e1 ]- Z2 H' ` s1 d; R" o- o
如果你想让你的机器通过连接移动得更快,增加这个值速度。
E+ O2 f c7 }. v5 D, U$ J) Q 为技术人员,点击这个链接阅读关于Grbl转弯算法,速度和结角占一个很简单,高效和可靠的方法。*/
3 t7 j- O) S& P* [# H& ~2 u' G9 _( |+ ?/ B
#define DEFAULT_JUNCTION_DEVIATION 0.01 // mm //偏差
; g7 r: Z. F& u- a( v/ ^ #define DEFAULT_ARC_TOLERANCE 0.002 // mm //圆弧公差: W" d) B+ o& U" V h3 n5 p
#define DEFAULT_REPORT_INCHES 0 // false //打印英寸 @0 g, M8 j- K ~
/*默认情况下,步进使销是启用禁用高和低。如果您的设置需要相反的,只是反步进使销通过输入15美元= 1。禁用与15美元= 0。(可能需要一个动力循环加载的变化。)*/
9 | Q! D5 N! f. X" s #define DEFAULT_INVERT_ST_ENABLE 0 // false$ q# \8 H% q4 _, a
#define DEFAULT_INVERT_LIMIT_PINS 0 // false //反转限位引脚
Z4 s9 v7 _4 e$ M% c #define DEFAULT_SOFT_LIMIT_ENABLE 0 // false //软件限位* I& ]+ P% B" y
#define DEFAULT_HARD_LIMIT_ENABLE 0 // false //硬件限位4 g) [; i; _8 q+ V4 Z) ^
#define DEFAULT_HOMING_ENABLE 0 // false //回原点使能% E4 f$ m: d1 v+ R) o3 D: H
#define DEFAULT_HOMING_DIR_MASK 0 // move positive dir1 @/ ?; w- w' X( |: `4 D
#define DEFAULT_HOMING_FEED_RATE 25.0 // mm/min
& a6 {) X8 E/ R1 Q, i5 D+ }5 n: o #define DEFAULT_HOMING_SEEK_RATE 500.0 // mm/min
, `6 n& q8 T' ]$ _9 F #define DEFAULT_HOMING_DEBOUNCE_DELAY 250 // msec (0-65k)防抖动延时1 @" f+ M2 `4 i+ x. h# ]
#define DEFAULT_HOMING_PULLOFF 1.0 // mm( ~. d% ]" l3 \) _/ V' W
& k6 }* \: F6 V' X% `- O8 g#endif2 }0 r3 t& D/ V1 }7 a6 _- \& T6 S
' A! n0 o4 W4 b7 K# g1 b# M; k8 n, _% ^$ D8 n
* E4 C U+ [" O
6 s- H' z/ |3 O9 ^7 {
5 j8 e+ z* S: D6 f- Q. ] q# I% P- M& V- \$ R; v& {
' D! p! z( D5 B R# A3 Z% R) P4 E1 J3 D5 u( ~3 ^* p/ r
) `) ]3 D [& J$ B
3 C- L7 G9 C7 F l- k0 h' q. ] h' G1 y1 U8 }" K
$ D. K2 V: u9 \7 h/ \0 S; }) n! Z N* `$ @2 }+ I/ u8 ]3 B
7 G3 m& l5 O. M: b7 x; n2 m& ]8 e8 T, f2 C. W& @5 r
0 Z2 V! S' q4 I) P, p
4 a' L& H b* y7 q' B* N1 Z; v
7 t# {, c' q, R9 s, ]
) |, q' K& u& [$ O5 u/ m
$ `3 m9 t0 E# U' s' l6 x; Z
" v1 } f+ W% m4 c( U" Y' H5 _0 r1 [; Q. o) Q1 x
! O, e$ d7 k! Q4 X* h: L- D
) W G$ n9 p* }4 B2 Q4 `4 D1 a8 p
0 r4 d: w" H% H4 w
; F6 s* l+ h B" f7 i/ y |