001    /**
002     * Copyright (c) 2000-2013 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.service;
016    
017    import aQute.bnd.annotation.ProviderType;
018    
019    /**
020     * Provides a wrapper for {@link LayoutRevisionLocalService}.
021     *
022     * @author Brian Wing Shun Chan
023     * @see LayoutRevisionLocalService
024     * @generated
025     */
026    @ProviderType
027    public class LayoutRevisionLocalServiceWrapper
028            implements LayoutRevisionLocalService,
029                    ServiceWrapper<LayoutRevisionLocalService> {
030            public LayoutRevisionLocalServiceWrapper(
031                    LayoutRevisionLocalService layoutRevisionLocalService) {
032                    _layoutRevisionLocalService = layoutRevisionLocalService;
033            }
034    
035            /**
036            * Adds the layout revision to the database. Also notifies the appropriate model listeners.
037            *
038            * @param layoutRevision the layout revision
039            * @return the layout revision that was added
040            * @throws SystemException if a system exception occurred
041            */
042            @Override
043            public com.liferay.portal.model.LayoutRevision addLayoutRevision(
044                    com.liferay.portal.model.LayoutRevision layoutRevision)
045                    throws com.liferay.portal.kernel.exception.SystemException {
046                    return _layoutRevisionLocalService.addLayoutRevision(layoutRevision);
047            }
048    
049            /**
050            * Creates a new layout revision with the primary key. Does not add the layout revision to the database.
051            *
052            * @param layoutRevisionId the primary key for the new layout revision
053            * @return the new layout revision
054            */
055            @Override
056            public com.liferay.portal.model.LayoutRevision createLayoutRevision(
057                    long layoutRevisionId) {
058                    return _layoutRevisionLocalService.createLayoutRevision(layoutRevisionId);
059            }
060    
061            /**
062            * Deletes the layout revision with the primary key from the database. Also notifies the appropriate model listeners.
063            *
064            * @param layoutRevisionId the primary key of the layout revision
065            * @return the layout revision that was removed
066            * @throws PortalException if a layout revision with the primary key could not be found
067            * @throws SystemException if a system exception occurred
068            */
069            @Override
070            public com.liferay.portal.model.LayoutRevision deleteLayoutRevision(
071                    long layoutRevisionId)
072                    throws com.liferay.portal.kernel.exception.PortalException,
073                            com.liferay.portal.kernel.exception.SystemException {
074                    return _layoutRevisionLocalService.deleteLayoutRevision(layoutRevisionId);
075            }
076    
077            /**
078            * Deletes the layout revision from the database. Also notifies the appropriate model listeners.
079            *
080            * @param layoutRevision the layout revision
081            * @return the layout revision that was removed
082            * @throws PortalException
083            * @throws SystemException if a system exception occurred
084            */
085            @Override
086            public com.liferay.portal.model.LayoutRevision deleteLayoutRevision(
087                    com.liferay.portal.model.LayoutRevision layoutRevision)
088                    throws com.liferay.portal.kernel.exception.PortalException,
089                            com.liferay.portal.kernel.exception.SystemException {
090                    return _layoutRevisionLocalService.deleteLayoutRevision(layoutRevision);
091            }
092    
093            @Override
094            public com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery() {
095                    return _layoutRevisionLocalService.dynamicQuery();
096            }
097    
098            /**
099            * Performs a dynamic query on the database and returns the matching rows.
100            *
101            * @param dynamicQuery the dynamic query
102            * @return the matching rows
103            * @throws SystemException if a system exception occurred
104            */
105            @Override
106            @SuppressWarnings("rawtypes")
107            public java.util.List dynamicQuery(
108                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery)
109                    throws com.liferay.portal.kernel.exception.SystemException {
110                    return _layoutRevisionLocalService.dynamicQuery(dynamicQuery);
111            }
112    
113            /**
114            * Performs a dynamic query on the database and returns a range of the matching rows.
115            *
116            * <p>
117            * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent and pagination is required (<code>start</code> and <code>end</code> are not {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS}), then the query will include the default ORDER BY logic from {@link com.liferay.portal.model.impl.LayoutRevisionModelImpl}. If both <code>orderByComparator</code> and pagination are absent, for performance reasons, the query will not have an ORDER BY clause and the returned result set will be sorted on by the primary key in an ascending order.
118            * </p>
119            *
120            * @param dynamicQuery the dynamic query
121            * @param start the lower bound of the range of model instances
122            * @param end the upper bound of the range of model instances (not inclusive)
123            * @return the range of matching rows
124            * @throws SystemException if a system exception occurred
125            */
126            @Override
127            @SuppressWarnings("rawtypes")
128            public java.util.List dynamicQuery(
129                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start,
130                    int end) throws com.liferay.portal.kernel.exception.SystemException {
131                    return _layoutRevisionLocalService.dynamicQuery(dynamicQuery, start, end);
132            }
133    
134            /**
135            * Performs a dynamic query on the database and returns an ordered range of the matching rows.
136            *
137            * <p>
138            * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent and pagination is required (<code>start</code> and <code>end</code> are not {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS}), then the query will include the default ORDER BY logic from {@link com.liferay.portal.model.impl.LayoutRevisionModelImpl}. If both <code>orderByComparator</code> and pagination are absent, for performance reasons, the query will not have an ORDER BY clause and the returned result set will be sorted on by the primary key in an ascending order.
139            * </p>
140            *
141            * @param dynamicQuery the dynamic query
142            * @param start the lower bound of the range of model instances
143            * @param end the upper bound of the range of model instances (not inclusive)
144            * @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
145            * @return the ordered range of matching rows
146            * @throws SystemException if a system exception occurred
147            */
148            @Override
149            @SuppressWarnings("rawtypes")
150            public java.util.List dynamicQuery(
151                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start,
152                    int end,
153                    com.liferay.portal.kernel.util.OrderByComparator orderByComparator)
154                    throws com.liferay.portal.kernel.exception.SystemException {
155                    return _layoutRevisionLocalService.dynamicQuery(dynamicQuery, start,
156                            end, orderByComparator);
157            }
158    
159            /**
160            * Returns the number of rows that match the dynamic query.
161            *
162            * @param dynamicQuery the dynamic query
163            * @return the number of rows that match the dynamic query
164            * @throws SystemException if a system exception occurred
165            */
166            @Override
167            public long dynamicQueryCount(
168                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery)
169                    throws com.liferay.portal.kernel.exception.SystemException {
170                    return _layoutRevisionLocalService.dynamicQueryCount(dynamicQuery);
171            }
172    
173            /**
174            * Returns the number of rows that match the dynamic query.
175            *
176            * @param dynamicQuery the dynamic query
177            * @param projection the projection to apply to the query
178            * @return the number of rows that match the dynamic query
179            * @throws SystemException if a system exception occurred
180            */
181            @Override
182            public long dynamicQueryCount(
183                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery,
184                    com.liferay.portal.kernel.dao.orm.Projection projection)
185                    throws com.liferay.portal.kernel.exception.SystemException {
186                    return _layoutRevisionLocalService.dynamicQueryCount(dynamicQuery,
187                            projection);
188            }
189    
190            @Override
191            public com.liferay.portal.model.LayoutRevision fetchLayoutRevision(
192                    long layoutRevisionId)
193                    throws com.liferay.portal.kernel.exception.SystemException {
194                    return _layoutRevisionLocalService.fetchLayoutRevision(layoutRevisionId);
195            }
196    
197            /**
198            * Returns the layout revision with the primary key.
199            *
200            * @param layoutRevisionId the primary key of the layout revision
201            * @return the layout revision
202            * @throws PortalException if a layout revision with the primary key could not be found
203            * @throws SystemException if a system exception occurred
204            */
205            @Override
206            public com.liferay.portal.model.LayoutRevision getLayoutRevision(
207                    long layoutRevisionId)
208                    throws com.liferay.portal.kernel.exception.PortalException,
209                            com.liferay.portal.kernel.exception.SystemException {
210                    return _layoutRevisionLocalService.getLayoutRevision(layoutRevisionId);
211            }
212    
213            @Override
214            public com.liferay.portal.model.PersistedModel getPersistedModel(
215                    java.io.Serializable primaryKeyObj)
216                    throws com.liferay.portal.kernel.exception.PortalException,
217                            com.liferay.portal.kernel.exception.SystemException {
218                    return _layoutRevisionLocalService.getPersistedModel(primaryKeyObj);
219            }
220    
221            /**
222            * Returns a range of all the layout revisions.
223            *
224            * <p>
225            * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent and pagination is required (<code>start</code> and <code>end</code> are not {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS}), then the query will include the default ORDER BY logic from {@link com.liferay.portal.model.impl.LayoutRevisionModelImpl}. If both <code>orderByComparator</code> and pagination are absent, for performance reasons, the query will not have an ORDER BY clause and the returned result set will be sorted on by the primary key in an ascending order.
226            * </p>
227            *
228            * @param start the lower bound of the range of layout revisions
229            * @param end the upper bound of the range of layout revisions (not inclusive)
230            * @return the range of layout revisions
231            * @throws SystemException if a system exception occurred
232            */
233            @Override
234            public java.util.List<com.liferay.portal.model.LayoutRevision> getLayoutRevisions(
235                    int start, int end)
236                    throws com.liferay.portal.kernel.exception.SystemException {
237                    return _layoutRevisionLocalService.getLayoutRevisions(start, end);
238            }
239    
240            /**
241            * Returns the number of layout revisions.
242            *
243            * @return the number of layout revisions
244            * @throws SystemException if a system exception occurred
245            */
246            @Override
247            public int getLayoutRevisionsCount()
248                    throws com.liferay.portal.kernel.exception.SystemException {
249                    return _layoutRevisionLocalService.getLayoutRevisionsCount();
250            }
251    
252            /**
253            * Updates the layout revision in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
254            *
255            * @param layoutRevision the layout revision
256            * @return the layout revision that was updated
257            * @throws SystemException if a system exception occurred
258            */
259            @Override
260            public com.liferay.portal.model.LayoutRevision updateLayoutRevision(
261                    com.liferay.portal.model.LayoutRevision layoutRevision)
262                    throws com.liferay.portal.kernel.exception.SystemException {
263                    return _layoutRevisionLocalService.updateLayoutRevision(layoutRevision);
264            }
265    
266            /**
267            * Returns the Spring bean ID for this bean.
268            *
269            * @return the Spring bean ID for this bean
270            */
271            @Override
272            public java.lang.String getBeanIdentifier() {
273                    return _layoutRevisionLocalService.getBeanIdentifier();
274            }
275    
276            /**
277            * Sets the Spring bean ID for this bean.
278            *
279            * @param beanIdentifier the Spring bean ID for this bean
280            */
281            @Override
282            public void setBeanIdentifier(java.lang.String beanIdentifier) {
283                    _layoutRevisionLocalService.setBeanIdentifier(beanIdentifier);
284            }
285    
286            @Override
287            public com.liferay.portal.model.LayoutRevision addLayoutRevision(
288                    long userId, long layoutSetBranchId, long layoutBranchId,
289                    long parentLayoutRevisionId, boolean head, long plid,
290                    long portletPreferencesPlid, boolean privateLayout,
291                    java.lang.String name, java.lang.String title,
292                    java.lang.String description, java.lang.String keywords,
293                    java.lang.String robots, java.lang.String typeSettings,
294                    boolean iconImage, long iconImageId, java.lang.String themeId,
295                    java.lang.String colorSchemeId, java.lang.String wapThemeId,
296                    java.lang.String wapColorSchemeId, java.lang.String css,
297                    com.liferay.portal.service.ServiceContext serviceContext)
298                    throws com.liferay.portal.kernel.exception.PortalException,
299                            com.liferay.portal.kernel.exception.SystemException {
300                    return _layoutRevisionLocalService.addLayoutRevision(userId,
301                            layoutSetBranchId, layoutBranchId, parentLayoutRevisionId, head,
302                            plid, portletPreferencesPlid, privateLayout, name, title,
303                            description, keywords, robots, typeSettings, iconImage,
304                            iconImageId, themeId, colorSchemeId, wapThemeId, wapColorSchemeId,
305                            css, serviceContext);
306            }
307    
308            @Override
309            public void deleteLayoutLayoutRevisions(long plid)
310                    throws com.liferay.portal.kernel.exception.PortalException,
311                            com.liferay.portal.kernel.exception.SystemException {
312                    _layoutRevisionLocalService.deleteLayoutLayoutRevisions(plid);
313            }
314    
315            @Override
316            public void deleteLayoutRevisions(long layoutSetBranchId, long plid)
317                    throws com.liferay.portal.kernel.exception.PortalException,
318                            com.liferay.portal.kernel.exception.SystemException {
319                    _layoutRevisionLocalService.deleteLayoutRevisions(layoutSetBranchId,
320                            plid);
321            }
322    
323            @Override
324            public void deleteLayoutRevisions(long layoutSetBranchId,
325                    long layoutBranchId, long plid)
326                    throws com.liferay.portal.kernel.exception.PortalException,
327                            com.liferay.portal.kernel.exception.SystemException {
328                    _layoutRevisionLocalService.deleteLayoutRevisions(layoutSetBranchId,
329                            layoutBranchId, plid);
330            }
331    
332            @Override
333            public void deleteLayoutSetBranchLayoutRevisions(long layoutSetBranchId)
334                    throws com.liferay.portal.kernel.exception.PortalException,
335                            com.liferay.portal.kernel.exception.SystemException {
336                    _layoutRevisionLocalService.deleteLayoutSetBranchLayoutRevisions(layoutSetBranchId);
337            }
338    
339            @Override
340            public com.liferay.portal.model.LayoutRevision fetchLastLayoutRevision(
341                    long plid, boolean head)
342                    throws com.liferay.portal.kernel.exception.SystemException {
343                    return _layoutRevisionLocalService.fetchLastLayoutRevision(plid, head);
344            }
345    
346            @Override
347            public com.liferay.portal.model.LayoutRevision fetchLatestLayoutRevision(
348                    long layoutSetBranchId, long plid)
349                    throws com.liferay.portal.kernel.exception.SystemException {
350                    return _layoutRevisionLocalService.fetchLatestLayoutRevision(layoutSetBranchId,
351                            plid);
352            }
353    
354            @Override
355            public com.liferay.portal.model.LayoutRevision fetchLayoutRevision(
356                    long layoutSetBranchId, boolean head, long plid)
357                    throws com.liferay.portal.kernel.exception.SystemException {
358                    return _layoutRevisionLocalService.fetchLayoutRevision(layoutSetBranchId,
359                            head, plid);
360            }
361    
362            @Override
363            public java.util.List<com.liferay.portal.model.LayoutRevision> getChildLayoutRevisions(
364                    long layoutSetBranchId, long parentLayoutRevisionId, long plid)
365                    throws com.liferay.portal.kernel.exception.SystemException {
366                    return _layoutRevisionLocalService.getChildLayoutRevisions(layoutSetBranchId,
367                            parentLayoutRevisionId, plid);
368            }
369    
370            @Override
371            public java.util.List<com.liferay.portal.model.LayoutRevision> getChildLayoutRevisions(
372                    long layoutSetBranchId, long parentLayoutRevision, long plid,
373                    int start, int end,
374                    com.liferay.portal.kernel.util.OrderByComparator orderByComparator)
375                    throws com.liferay.portal.kernel.exception.SystemException {
376                    return _layoutRevisionLocalService.getChildLayoutRevisions(layoutSetBranchId,
377                            parentLayoutRevision, plid, start, end, orderByComparator);
378            }
379    
380            @Override
381            public int getChildLayoutRevisionsCount(long layoutSetBranchId,
382                    long parentLayoutRevision, long plid)
383                    throws com.liferay.portal.kernel.exception.SystemException {
384                    return _layoutRevisionLocalService.getChildLayoutRevisionsCount(layoutSetBranchId,
385                            parentLayoutRevision, plid);
386            }
387    
388            @Override
389            public com.liferay.portal.model.LayoutRevision getLayoutRevision(
390                    long layoutSetBranchId, long plid, boolean head)
391                    throws com.liferay.portal.kernel.exception.PortalException,
392                            com.liferay.portal.kernel.exception.SystemException {
393                    return _layoutRevisionLocalService.getLayoutRevision(layoutSetBranchId,
394                            plid, head);
395            }
396    
397            @Override
398            public com.liferay.portal.model.LayoutRevision getLayoutRevision(
399                    long layoutSetBranchId, long layoutBranchId, long plid)
400                    throws com.liferay.portal.kernel.exception.PortalException,
401                            com.liferay.portal.kernel.exception.SystemException {
402                    return _layoutRevisionLocalService.getLayoutRevision(layoutSetBranchId,
403                            layoutBranchId, plid);
404            }
405    
406            @Override
407            public java.util.List<com.liferay.portal.model.LayoutRevision> getLayoutRevisions(
408                    long plid) throws com.liferay.portal.kernel.exception.SystemException {
409                    return _layoutRevisionLocalService.getLayoutRevisions(plid);
410            }
411    
412            @Override
413            public java.util.List<com.liferay.portal.model.LayoutRevision> getLayoutRevisions(
414                    long layoutSetBranchId, boolean head)
415                    throws com.liferay.portal.kernel.exception.SystemException {
416                    return _layoutRevisionLocalService.getLayoutRevisions(layoutSetBranchId,
417                            head);
418            }
419    
420            @Override
421            public java.util.List<com.liferay.portal.model.LayoutRevision> getLayoutRevisions(
422                    long layoutSetBranchId, int status)
423                    throws com.liferay.portal.kernel.exception.SystemException {
424                    return _layoutRevisionLocalService.getLayoutRevisions(layoutSetBranchId,
425                            status);
426            }
427    
428            @Override
429            public java.util.List<com.liferay.portal.model.LayoutRevision> getLayoutRevisions(
430                    long layoutSetBranchId, long plid)
431                    throws com.liferay.portal.kernel.exception.SystemException {
432                    return _layoutRevisionLocalService.getLayoutRevisions(layoutSetBranchId,
433                            plid);
434            }
435    
436            @Override
437            public java.util.List<com.liferay.portal.model.LayoutRevision> getLayoutRevisions(
438                    long layoutSetBranchId, long plid, int status)
439                    throws com.liferay.portal.kernel.exception.SystemException {
440                    return _layoutRevisionLocalService.getLayoutRevisions(layoutSetBranchId,
441                            plid, status);
442            }
443    
444            @Override
445            public java.util.List<com.liferay.portal.model.LayoutRevision> getLayoutRevisions(
446                    long layoutSetBranchId, long plid, int start, int end,
447                    com.liferay.portal.kernel.util.OrderByComparator orderByComparator)
448                    throws com.liferay.portal.kernel.exception.SystemException {
449                    return _layoutRevisionLocalService.getLayoutRevisions(layoutSetBranchId,
450                            plid, start, end, orderByComparator);
451            }
452    
453            @Override
454            public java.util.List<com.liferay.portal.model.LayoutRevision> getLayoutRevisions(
455                    long layoutSetBranchId, long layoutBranchId, long plid, int start,
456                    int end,
457                    com.liferay.portal.kernel.util.OrderByComparator orderByComparator)
458                    throws com.liferay.portal.kernel.exception.SystemException {
459                    return _layoutRevisionLocalService.getLayoutRevisions(layoutSetBranchId,
460                            layoutBranchId, plid, start, end, orderByComparator);
461            }
462    
463            @Override
464            public int getLayoutRevisionsCount(long layoutSetBranchId,
465                    long layoutBranchId, long plid)
466                    throws com.liferay.portal.kernel.exception.SystemException {
467                    return _layoutRevisionLocalService.getLayoutRevisionsCount(layoutSetBranchId,
468                            layoutBranchId, plid);
469            }
470    
471            @Override
472            public com.liferay.portal.model.LayoutRevision updateLayoutRevision(
473                    long userId, long layoutRevisionId, long layoutBranchId,
474                    java.lang.String name, java.lang.String title,
475                    java.lang.String description, java.lang.String keywords,
476                    java.lang.String robots, java.lang.String typeSettings,
477                    boolean iconImage, long iconImageId, java.lang.String themeId,
478                    java.lang.String colorSchemeId, java.lang.String wapThemeId,
479                    java.lang.String wapColorSchemeId, java.lang.String css,
480                    com.liferay.portal.service.ServiceContext serviceContext)
481                    throws com.liferay.portal.kernel.exception.PortalException,
482                            com.liferay.portal.kernel.exception.SystemException {
483                    return _layoutRevisionLocalService.updateLayoutRevision(userId,
484                            layoutRevisionId, layoutBranchId, name, title, description,
485                            keywords, robots, typeSettings, iconImage, iconImageId, themeId,
486                            colorSchemeId, wapThemeId, wapColorSchemeId, css, serviceContext);
487            }
488    
489            @Override
490            public com.liferay.portal.model.LayoutRevision updateStatus(long userId,
491                    long layoutRevisionId, int status,
492                    com.liferay.portal.service.ServiceContext serviceContext)
493                    throws com.liferay.portal.kernel.exception.PortalException,
494                            com.liferay.portal.kernel.exception.SystemException {
495                    return _layoutRevisionLocalService.updateStatus(userId,
496                            layoutRevisionId, status, serviceContext);
497            }
498    
499            /**
500             * @deprecated As of 6.1.0, replaced by {@link #getWrappedService}
501             */
502            public LayoutRevisionLocalService getWrappedLayoutRevisionLocalService() {
503                    return _layoutRevisionLocalService;
504            }
505    
506            /**
507             * @deprecated As of 6.1.0, replaced by {@link #setWrappedService}
508             */
509            public void setWrappedLayoutRevisionLocalService(
510                    LayoutRevisionLocalService layoutRevisionLocalService) {
511                    _layoutRevisionLocalService = layoutRevisionLocalService;
512            }
513    
514            @Override
515            public LayoutRevisionLocalService getWrappedService() {
516                    return _layoutRevisionLocalService;
517            }
518    
519            @Override
520            public void setWrappedService(
521                    LayoutRevisionLocalService layoutRevisionLocalService) {
522                    _layoutRevisionLocalService = layoutRevisionLocalService;
523            }
524    
525            private LayoutRevisionLocalService _layoutRevisionLocalService;
526    }