Diffstat (limited to 'noncore/apps/opie-write/qtextedit.h') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/apps/opie-write/qtextedit.h | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/noncore/apps/opie-write/qtextedit.h b/noncore/apps/opie-write/qtextedit.h index b4e5701..64e8f45 100644 --- a/noncore/apps/opie-write/qtextedit.h +++ b/noncore/apps/opie-write/qtextedit.h | |||
@@ -40,51 +40,53 @@ | |||
40 | 40 | ||
41 | #ifndef QT_H | 41 | #ifndef QT_H |
42 | #include "qscrollview.h" | 42 | #include "qscrollview.h" |
43 | #include "qstylesheet.h" | 43 | #include "qstylesheet.h" |
44 | #include "qvector.h" | 44 | #include "qvector.h" |
45 | #include "qvaluelist.h" | 45 | #include "qvaluelist.h" |
46 | #endif // QT_H | 46 | #endif // QT_H |
47 | 47 | ||
48 | class QPainter; | 48 | class QPainter; |
49 | class QKeyEvent; | 49 | class QKeyEvent; |
50 | class QResizeEvent; | 50 | class QResizeEvent; |
51 | class QMouseEvent; | 51 | class QMouseEvent; |
52 | class QTimer; | 52 | class QTimer; |
53 | class QFont; | 53 | class QFont; |
54 | class QColor; | 54 | class QColor; |
55 | struct QUndoRedoInfoPrivate; | 55 | struct QUndoRedoInfoPrivate; |
56 | class QPopupMenu; | 56 | class QPopupMenu; |
57 | 57 | ||
58 | namespace Qt3 { | 58 | namespace Qt3 { |
59 | 59 | ||
60 | class QTextString; | 60 | class QTextString; |
61 | class QTextDocument; | 61 | class QTextDocument; |
62 | class QTextCursor; | 62 | class QTextCursor; |
63 | class QTextCommand; | 63 | class QTextCommand; |
64 | class QTextParag; | 64 | class QTextParagraph; |
65 | class QTextFormat; | 65 | class QTextFormat; |
66 | class QTextEdit; | ||
66 | class QTextBrowser; | 67 | class QTextBrowser; |
68 | class QTextString; | ||
67 | class QTextEditPrivate; | 69 | class QTextEditPrivate; |
68 | 70 | ||
69 | class Q_EXPORT QTextEdit : public QScrollView | 71 | class Q_EXPORT QTextEdit : public QScrollView |
70 | { | 72 | { |
71 | friend class QTextBrowser; | 73 | friend class QTextBrowser; |
72 | 74 | ||
73 | Q_OBJECT | 75 | Q_OBJECT |
74 | Q_ENUMS( WordWrap WrapPolicy ) | 76 | Q_ENUMS( WordWrap WrapPolicy ) |
75 | Q_PROPERTY( TextFormat textFormat READ textFormat WRITE setTextFormat ) | 77 | Q_PROPERTY( TextFormat textFormat READ textFormat WRITE setTextFormat ) |
76 | Q_PROPERTY( QString text READ text WRITE setText ) | 78 | Q_PROPERTY( QString text READ text WRITE setText ) |
77 | Q_PROPERTY( QBrush paper READ paper WRITE setPaper ) | 79 | Q_PROPERTY( QBrush paper READ paper WRITE setPaper ) |
78 | Q_PROPERTY( bool linkUnderline READ linkUnderline WRITE setLinkUnderline ) | 80 | Q_PROPERTY( bool linkUnderline READ linkUnderline WRITE setLinkUnderline ) |
79 | Q_PROPERTY( QString documentTitle READ documentTitle ) | 81 | Q_PROPERTY( QString documentTitle READ documentTitle ) |
80 | Q_PROPERTY( int length READ length ) | 82 | Q_PROPERTY( int length READ length ) |
81 | Q_PROPERTY( WordWrap wordWrap READ wordWrap WRITE setWordWrap ) | 83 | Q_PROPERTY( WordWrap wordWrap READ wordWrap WRITE setWordWrap ) |
82 | Q_PROPERTY( int wrapColumnOrWidth READ wrapColumnOrWidth WRITE setWrapColumnOrWidth ) | 84 | Q_PROPERTY( int wrapColumnOrWidth READ wrapColumnOrWidth WRITE setWrapColumnOrWidth ) |
83 | Q_PROPERTY( WrapPolicy wrapPolicy READ wrapPolicy WRITE setWrapPolicy ) | 85 | Q_PROPERTY( WrapPolicy wrapPolicy READ wrapPolicy WRITE setWrapPolicy ) |
84 | Q_PROPERTY( bool hasSelectedText READ hasSelectedText ) | 86 | Q_PROPERTY( bool hasSelectedText READ hasSelectedText ) |
85 | Q_PROPERTY( QString selectedText READ selectedText ) | 87 | Q_PROPERTY( QString selectedText READ selectedText ) |
86 | Q_PROPERTY( int undoDepth READ undoDepth WRITE setUndoDepth ) | 88 | Q_PROPERTY( int undoDepth READ undoDepth WRITE setUndoDepth ) |
87 | Q_PROPERTY( bool overwriteMode READ isOverwriteMode WRITE setOverwriteMode ) | 89 | Q_PROPERTY( bool overwriteMode READ isOverwriteMode WRITE setOverwriteMode ) |
88 | Q_PROPERTY( bool modified READ isModified WRITE setModified DESIGNABLE false ) | 90 | Q_PROPERTY( bool modified READ isModified WRITE setModified DESIGNABLE false ) |
89 | Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly ) | 91 | Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly ) |
90 | Q_PROPERTY( bool undoRedoEnabled READ isUndoRedoEnabled WRITE setUndoRedoEnabled ) | 92 | Q_PROPERTY( bool undoRedoEnabled READ isUndoRedoEnabled WRITE setUndoRedoEnabled ) |
@@ -175,54 +177,59 @@ public: | |||
175 | WordWrap wordWrap() const; | 177 | WordWrap wordWrap() const; |
176 | int wrapColumnOrWidth() const; | 178 | int wrapColumnOrWidth() const; |
177 | WrapPolicy wrapPolicy() const; | 179 | WrapPolicy wrapPolicy() const; |
178 | 180 | ||
179 | int tabStopWidth() const; | 181 | int tabStopWidth() const; |
180 | 182 | ||
181 | QString anchorAt( const QPoint& pos ); | 183 | QString anchorAt( const QPoint& pos ); |
182 | 184 | ||
183 | QSize sizeHint() const; | 185 | QSize sizeHint() const; |
184 | 186 | ||
185 | bool isReadOnly() const { return readonly; } | 187 | bool isReadOnly() const { return readonly; } |
186 | 188 | ||
187 | void getCursorPosition( int *parag, int *index ) const; | 189 | void getCursorPosition( int *parag, int *index ) const; |
188 | 190 | ||
189 | bool isModified() const; | 191 | bool isModified() const; |
190 | bool italic() const; | 192 | bool italic() const; |
191 | bool bold() const; | 193 | bool bold() const; |
192 | bool underline() const; | 194 | bool underline() const; |
193 | QString family() const; | 195 | QString family() const; |
194 | int pointSize() const; | 196 | int pointSize() const; |
195 | QColor color() const; | 197 | QColor color() const; |
196 | QFont font() const; | 198 | QFont font() const; |
197 | int alignment() const; | 199 | int alignment() const; |
198 | int undoDepth() const; | 200 | int undoDepth() const; |
201 | |||
202 | // do not use, will go away | ||
199 | virtual bool getFormat( int para, int index, QFont *font, QColor *color, VerticalAlignment *verticalAlignment ); | 203 | virtual bool getFormat( int para, int index, QFont *font, QColor *color, VerticalAlignment *verticalAlignment ); |
204 | // do not use, will go away | ||
200 | virtual bool getParagraphFormat( int para, QFont *font, QColor *color, | 205 | virtual bool getParagraphFormat( int para, QFont *font, QColor *color, |
201 | VerticalAlignment *verticalAlignment, int *alignment, | 206 | VerticalAlignment *verticalAlignment, int *alignment, |
202 | QStyleSheetItem::DisplayMode *displayMode, | 207 | QStyleSheetItem::DisplayMode *displayMode, |
203 | QStyleSheetItem::ListStyle *listStyle, | 208 | QStyleSheetItem::ListStyle *listStyle, |
204 | int *listDepth ); | 209 | int *listDepth ); |
210 | |||
211 | |||
205 | bool isOverwriteMode() const { return overWrite; } | 212 | bool isOverwriteMode() const { return overWrite; } |
206 | QColor paragraphBackgroundColor( int para ) const; | 213 | QColor paragraphBackgroundColor( int para ) const; |
207 | 214 | ||
208 | bool isUndoRedoEnabled() const; | 215 | bool isUndoRedoEnabled() const; |
209 | bool eventFilter( QObject *o, QEvent *e ); | 216 | bool eventFilter( QObject *o, QEvent *e ); |
210 | 217 | ||
211 | public slots: | 218 | public slots: |
212 | void setEnabled( bool ); | 219 | void setEnabled( bool ); |
213 | virtual void setMimeSourceFactory( QMimeSourceFactory* factory ); | 220 | virtual void setMimeSourceFactory( QMimeSourceFactory* factory ); |
214 | virtual void setStyleSheet( QStyleSheet* styleSheet ); | 221 | virtual void setStyleSheet( QStyleSheet* styleSheet ); |
215 | virtual void scrollToAnchor( const QString& name ); | 222 | virtual void scrollToAnchor( const QString& name ); |
216 | virtual void setPaper( const QBrush& pap ); | 223 | virtual void setPaper( const QBrush& pap ); |
217 | virtual void setLinkUnderline( bool ); | 224 | virtual void setLinkUnderline( bool ); |
218 | 225 | ||
219 | virtual void setWordWrap( WordWrap mode ); | 226 | virtual void setWordWrap( WordWrap mode ); |
220 | virtual void setWrapColumnOrWidth( int ); | 227 | virtual void setWrapColumnOrWidth( int ); |
221 | virtual void setWrapPolicy( WrapPolicy policy ); | 228 | virtual void setWrapPolicy( WrapPolicy policy ); |
222 | 229 | ||
223 | virtual void copy(); | 230 | virtual void copy(); |
224 | virtual void append( const QString& text ); | 231 | virtual void append( const QString& text ); |
225 | 232 | ||
226 | void setText( const QString &txt ) { setText( txt, QString::null ); } | 233 | void setText( const QString &txt ) { setText( txt, QString::null ); } |
227 | virtual void setText( const QString &txt, const QString &context ); | 234 | virtual void setText( const QString &txt, const QString &context ); |
228 | virtual void setTextFormat( TextFormat f ); | 235 | virtual void setTextFormat( TextFormat f ); |
@@ -236,49 +243,52 @@ public slots: | |||
236 | virtual void zoomTo( int size ); | 243 | virtual void zoomTo( int size ); |
237 | 244 | ||
238 | virtual void sync(); | 245 | virtual void sync(); |
239 | virtual void setReadOnly( bool b ); | 246 | virtual void setReadOnly( bool b ); |
240 | 247 | ||
241 | virtual void undo(); | 248 | virtual void undo(); |
242 | virtual void redo(); | 249 | virtual void redo(); |
243 | virtual void cut(); | 250 | virtual void cut(); |
244 | virtual void paste(); | 251 | virtual void paste(); |
245 | #ifndef QT_NO_CLIPBOARD | 252 | #ifndef QT_NO_CLIPBOARD |
246 | virtual void pasteSubType( const QCString &subtype ); | 253 | virtual void pasteSubType( const QCString &subtype ); |
247 | #endif | 254 | #endif |
248 | virtual void clear(); | 255 | virtual void clear(); |
249 | virtual void del(); | 256 | virtual void del(); |
250 | virtual void indent(); | 257 | virtual void indent(); |
251 | virtual void setItalic( bool b ); | 258 | virtual void setItalic( bool b ); |
252 | virtual void setBold( bool b ); | 259 | virtual void setBold( bool b ); |
253 | virtual void setUnderline( bool b ); | 260 | virtual void setUnderline( bool b ); |
254 | virtual void setFamily( const QString &f ); | 261 | virtual void setFamily( const QString &f ); |
255 | virtual void setPointSize( int s ); | 262 | virtual void setPointSize( int s ); |
256 | virtual void setColor( const QColor &c ); | 263 | virtual void setColor( const QColor &c ); |
257 | virtual void setFont( const QFont &f ); | 264 | virtual void setFont( const QFont &f ); |
258 | virtual void setVerticalAlignment( VerticalAlignment a ); | 265 | virtual void setVerticalAlignment( VerticalAlignment a ); |
259 | virtual void setAlignment( int a ); | 266 | virtual void setAlignment( int a ); |
267 | |||
268 | // do not use, will go away | ||
260 | virtual void setParagType( QStyleSheetItem::DisplayMode dm, QStyleSheetItem::ListStyle listStyle ); | 269 | virtual void setParagType( QStyleSheetItem::DisplayMode dm, QStyleSheetItem::ListStyle listStyle ); |
270 | |||
261 | virtual void setCursorPosition( int parag, int index ); | 271 | virtual void setCursorPosition( int parag, int index ); |
262 | virtual void setSelection( int parag_from, int index_from, int parag_to, int index_to, int selNum = 0 ); | 272 | virtual void setSelection( int parag_from, int index_from, int parag_to, int index_to, int selNum = 0 ); |
263 | virtual void setSelectionAttributes( int selNum, const QColor &back, bool invertText ); | 273 | virtual void setSelectionAttributes( int selNum, const QColor &back, bool invertText ); |
264 | virtual void setModified( bool m ); | 274 | virtual void setModified( bool m ); |
265 | virtual void resetFormat(); | 275 | virtual void resetFormat(); |
266 | virtual void setUndoDepth( int d ); | 276 | virtual void setUndoDepth( int d ); |
267 | virtual void setFormat( QTextFormat *f, int flags ); | 277 | virtual void setFormat( QTextFormat *f, int flags ); |
268 | virtual void ensureCursorVisible(); | 278 | virtual void ensureCursorVisible(); |
269 | virtual void placeCursor( const QPoint &pos, QTextCursor *c = 0 ); | 279 | virtual void placeCursor( const QPoint &pos, QTextCursor *c = 0 ); |
270 | virtual void moveCursor( CursorAction action, bool select ); | 280 | virtual void moveCursor( CursorAction action, bool select ); |
271 | virtual void doKeyboardAction( KeyboardAction action ); | 281 | virtual void doKeyboardAction( KeyboardAction action ); |
272 | virtual void removeSelectedText( int selNum = 0 ); | 282 | virtual void removeSelectedText( int selNum = 0 ); |
273 | virtual void removeSelection( int selNum = 0 ); | 283 | virtual void removeSelection( int selNum = 0 ); |
274 | virtual void setCurrentFont( const QFont &f ); | 284 | virtual void setCurrentFont( const QFont &f ); |
275 | virtual void setOverwriteMode( bool b ) { overWrite = b; } | 285 | virtual void setOverwriteMode( bool b ) { overWrite = b; } |
276 | 286 | ||
277 | virtual void scrollToBottom(); | 287 | virtual void scrollToBottom(); |
278 | 288 | ||
279 | virtual void insert( const QString &text, bool indent, bool checkNewLine, bool removeSelected ); | 289 | virtual void insert( const QString &text, bool indent, bool checkNewLine, bool removeSelected ); |
280 | virtual void insertAt( const QString &text, int para, int index ); | 290 | virtual void insertAt( const QString &text, int para, int index ); |
281 | virtual void removeParagraph( int para ); | 291 | virtual void removeParagraph( int para ); |
282 | virtual void insertParagraph( const QString &text, int para ); | 292 | virtual void insertParagraph( const QString &text, int para ); |
283 | 293 | ||
284 | virtual void setParagraphBackgroundColor( int para, const QColor &bg ); | 294 | virtual void setParagraphBackgroundColor( int para, const QColor &bg ); |
@@ -325,105 +335,101 @@ protected: | |||
325 | bool focusNextPrevChild( bool next ); | 335 | bool focusNextPrevChild( bool next ); |
326 | QTextDocument *document() const; | 336 | QTextDocument *document() const; |
327 | QTextCursor *textCursor() const; | 337 | QTextCursor *textCursor() const; |
328 | void setDocument( QTextDocument *doc ); | 338 | void setDocument( QTextDocument *doc ); |
329 | virtual QPopupMenu *createPopupMenu( const QPoint& pos ); | 339 | virtual QPopupMenu *createPopupMenu( const QPoint& pos ); |
330 | virtual QPopupMenu *createPopupMenu(); | 340 | virtual QPopupMenu *createPopupMenu(); |
331 | void drawCursor( bool visible ); | 341 | void drawCursor( bool visible ); |
332 | 342 | ||
333 | void windowActivationChange( bool ); | 343 | void windowActivationChange( bool ); |
334 | 344 | ||
335 | protected slots: | 345 | protected slots: |
336 | virtual void doChangeInterval(); | 346 | virtual void doChangeInterval(); |
337 | 347 | ||
338 | private slots: | 348 | private slots: |
339 | void formatMore(); | 349 | void formatMore(); |
340 | void doResize(); | 350 | void doResize(); |
341 | void autoScrollTimerDone(); | 351 | void autoScrollTimerDone(); |
342 | void blinkCursor(); | 352 | void blinkCursor(); |
343 | void setModified(); | 353 | void setModified(); |
344 | void startDrag(); | 354 | void startDrag(); |
345 | void documentWidthChanged( int w ); | 355 | void documentWidthChanged( int w ); |
346 | 356 | ||
347 | private: | 357 | private: |
348 | struct Q_EXPORT UndoRedoInfo { | 358 | struct Q_EXPORT UndoRedoInfo { |
349 | enum Type { Invalid, Insert, Delete, Backspace, Return, RemoveSelected, Format, Alignment, ParagType }; | 359 | enum Type { Invalid, Insert, Delete, Backspace, Return, RemoveSelected, Format, Style }; |
350 | 360 | ||
351 | UndoRedoInfo( QTextDocument *dc ); | 361 | UndoRedoInfo( QTextDocument *dc ); |
352 | ~UndoRedoInfo(); | 362 | ~UndoRedoInfo(); |
353 | void clear(); | 363 | void clear(); |
354 | bool valid() const; | 364 | bool valid() const; |
355 | 365 | ||
356 | QUndoRedoInfoPrivate *d; | 366 | QUndoRedoInfoPrivate *d; |
357 | int id; | 367 | int id; |
358 | int index; | 368 | int index; |
359 | int eid; | 369 | int eid; |
360 | int eindex; | 370 | int eindex; |
361 | QTextFormat *format; | 371 | QTextFormat *format; |
362 | int flags; | 372 | int flags; |
363 | Type type; | 373 | Type type; |
364 | QTextDocument *doc; | 374 | QTextDocument *doc; |
365 | QMemArray<int> oldAligns; | 375 | QByteArray styleInformation; |
366 | int newAlign; | ||
367 | bool list; | ||
368 | QStyleSheetItem::ListStyle listStyle; | ||
369 | QValueList< QPtrVector<QStyleSheetItem> > oldStyles; | ||
370 | QValueList<QStyleSheetItem::ListStyle> oldListStyles; | ||
371 | }; | 376 | }; |
372 | 377 | ||
373 | private: | 378 | private: |
374 | void updateCursor( const QPoint & pos ); | 379 | void updateCursor( const QPoint & pos ); |
375 | void handleMouseMove( const QPoint& pos ); | 380 | void handleMouseMove( const QPoint& pos ); |
376 | void drawContents( QPainter * ); | 381 | void drawContents( QPainter * ); |
377 | virtual bool linksEnabled() const { return FALSE; } | 382 | virtual bool linksEnabled() const { return FALSE; } |
378 | void init(); | 383 | void init(); |
379 | void checkUndoRedoInfo( UndoRedoInfo::Type t ); | 384 | void checkUndoRedoInfo( UndoRedoInfo::Type t ); |
380 | void updateCurrentFormat(); | 385 | void updateCurrentFormat(); |
381 | bool handleReadOnlyKeyEvent( QKeyEvent *e ); | 386 | bool handleReadOnlyKeyEvent( QKeyEvent *e ); |
382 | void makeParagVisible( QTextParag *p ); | 387 | void makeParagVisible( QTextParagraph *p ); |
383 | #ifndef QT_NO_MIME | 388 | #ifndef QT_NO_MIME |
384 | QCString pickSpecial(QMimeSource* ms, bool always_ask, const QPoint&); | 389 | QCString pickSpecial(QMimeSource* ms, bool always_ask, const QPoint&); |
385 | #endif | 390 | #endif |
386 | #ifndef QT_NO_MIMECLIPBOARD | 391 | #ifndef QT_NO_MIMECLIPBOARD |
387 | void pasteSpecial(const QPoint&); | 392 | void pasteSpecial(const QPoint&); |
388 | #endif | 393 | #endif |
389 | void setFontInternal( const QFont &f ); | 394 | void setFontInternal( const QFont &f ); |
390 | 395 | ||
391 | virtual void emitHighlighted( const QString & ) {} | 396 | virtual void emitHighlighted( const QString & ) {} |
392 | virtual void emitLinkClicked( const QString & ) {} | 397 | virtual void emitLinkClicked( const QString & ) {} |
393 | 398 | ||
394 | void readFormats( QTextCursor &c1, QTextCursor &c2, int oldLen, QTextString &text, bool fillStyles = FALSE ); | 399 | void readFormats( QTextCursor &c1, QTextCursor &c2, QTextString &text, bool fillStyles = FALSE ); |
395 | void clearUndoRedo(); | 400 | void clearUndoRedo(); |
396 | void paintDocument( bool drawAll, QPainter *p, int cx = -1, int cy = -1, int cw = -1, int ch = -1 ); | 401 | void paintDocument( bool drawAll, QPainter *p, int cx = -1, int cy = -1, int cw = -1, int ch = -1 ); |
397 | void moveCursor( CursorAction action ); | 402 | void moveCursor( CursorAction action ); |
398 | void ensureFormatted( QTextParag *p ); | 403 | void ensureFormatted( QTextParagraph *p ); |
399 | void placeCursor( const QPoint &pos, QTextCursor *c, bool link ); | 404 | void placeCursor( const QPoint &pos, QTextCursor *c, bool link ); |
405 | void updateMicroFocusHint(); | ||
400 | 406 | ||
401 | private: | 407 | private: |
402 | QTextDocument *doc; | 408 | QTextDocument *doc; |
403 | QTextCursor *cursor; | 409 | QTextCursor *cursor; |
404 | QTimer *formatTimer, *scrollTimer, *changeIntervalTimer, *blinkTimer, *dragStartTimer; | 410 | QTimer *formatTimer, *scrollTimer, *changeIntervalTimer, *blinkTimer, *dragStartTimer; |
405 | QTextParag *lastFormatted; | 411 | QTextParagraph *lastFormatted; |
406 | int interval; | 412 | int interval; |
407 | UndoRedoInfo undoRedoInfo; | 413 | UndoRedoInfo undoRedoInfo; |
408 | QTextFormat *currentFormat; | 414 | QTextFormat *currentFormat; |
409 | int currentAlignment; | 415 | int currentAlignment; |
410 | QPoint oldMousePos, mousePos; | 416 | QPoint oldMousePos, mousePos; |
411 | QPoint dragStartPos; | 417 | QPoint dragStartPos; |
412 | QString onLink; | 418 | QString onLink; |
413 | WordWrap wrapMode; | 419 | WordWrap wrapMode; |
414 | WrapPolicy wPolicy; | 420 | WrapPolicy wPolicy; |
415 | int wrapWidth; | 421 | int wrapWidth; |
416 | QString pressedLink; | 422 | QString pressedLink; |
417 | QTextEditPrivate *d; | 423 | QTextEditPrivate *d; |
418 | bool inDoubleClick : 1; | 424 | bool inDoubleClick : 1; |
419 | bool mousePressed : 1; | 425 | bool mousePressed : 1; |
420 | bool cursorVisible : 1; | 426 | bool cursorVisible : 1; |
421 | bool blinkCursorVisible : 1; | 427 | bool blinkCursorVisible : 1; |
422 | bool readOnly : 1; | 428 | bool readOnly : 1; |
423 | bool modified : 1; | 429 | bool modified : 1; |
424 | bool mightStartDrag : 1; | 430 | bool mightStartDrag : 1; |
425 | bool inDnD : 1; | 431 | bool inDnD : 1; |
426 | bool readonly : 1; | 432 | bool readonly : 1; |
427 | bool undoEnabled : 1; | 433 | bool undoEnabled : 1; |
428 | bool overWrite : 1; | 434 | bool overWrite : 1; |
429 | }; | 435 | }; |