Adeel Kazmi [Fri, 16 Nov 2018 17:17:29 +0000 (17:17 +0000)]
Merge "Remove StereoMode" into devel/master
adam.b [Fri, 16 Nov 2018 12:21:02 +0000 (12:21 +0000)]
DALi Version 1.3.50
Change-Id: Ic08fc63f8d6aae36540b818b8f01a47f45bc304c
Paul Wisbey [Thu, 15 Nov 2018 13:39:32 +0000 (13:39 +0000)]
Advice about compiler versions in README requirements section
Change-Id: Icf15aa2eb9f99ff74cbeb3fcc1fcfbda3b67a207
Kimmo Hoikka [Mon, 12 Nov 2018 18:39:52 +0000 (18:39 +0000)]
Remove StereoMode
Change-Id: I7ce1cf43578f9de20dcdea57cec9f8659cb9811e
Kimmo Hoikka [Tue, 13 Nov 2018 12:45:17 +0000 (12:45 +0000)]
Fix the debug assert in message to occur when message is created to catch the error at the right time
Change-Id: I26e688998ad5c4c6af1f8a3be90615046aa55b86
Victor Cebollada [Fri, 9 Nov 2018 09:36:05 +0000 (09:36 +0000)]
DALi Version 1.3.49
Change-Id: Ie3a2ac89099fd4814dd91e68df72a9b001175c09
David Steele [Tue, 6 Nov 2018 17:33:40 +0000 (17:33 +0000)]
Merge "Remove some dead code related to scene graph animator classes" into devel/master
Kimmo Hoikka [Thu, 1 Nov 2018 17:40:30 +0000 (17:40 +0000)]
Remove some unreachable and duplicate code from Actor-impl.cpp by making mNode a const reference
Alternative approach to: https://review.tizen.org/gerrit/#/c/192259/
Change-Id: Ia2546ce82f766bc25e265a8fa77b7ef0e0be5657
Kimmo Hoikka [Mon, 5 Nov 2018 16:45:32 +0000 (16:45 +0000)]
Remove some dead code related to scene graph animator classes
Change-Id: I1874eab903cabe883e36a9862fe02ee2133d18e3
Adeel Kazmi [Fri, 2 Nov 2018 17:55:29 +0000 (17:55 +0000)]
Ensure resetters reset both values when a property-owner is disconnected
Change-Id: Iaf3e077b8e62d149900abb4ca719efe4326fa598
Richard Huang [Fri, 2 Nov 2018 11:41:44 +0000 (11:41 +0000)]
DALi Version 1.3.48
Change-Id: Icce974ab2d210332b3df3a11d5b7d860b0a5f2b9
Adeel Kazmi [Thu, 1 Nov 2018 16:15:17 +0000 (16:15 +0000)]
Merge "Increase animation test line coverage to 100%" into devel/master
Kimmo Hoikka [Thu, 1 Nov 2018 13:38:55 +0000 (13:38 +0000)]
Increase animation test line coverage to 100%
- add more test logic
- refactor to get rid of unreachable code
Change-Id: Ic15b0184137dd8ad1853219aaa69d8f1a859d2e7
Kimmo Hoikka [Wed, 31 Oct 2018 17:18:07 +0000 (17:18 +0000)]
Harmonize Animation API parameter checking and add test cases for them
Change-Id: I777ab4ec07a2eaae87bb435f8bcd9638557c1945
Adeel Kazmi [Thu, 1 Nov 2018 11:46:35 +0000 (11:46 +0000)]
Merge "Remove TypeRegistration from deprecated Image classes" into devel/master
Adeel Kazmi [Wed, 31 Oct 2018 15:35:15 +0000 (15:35 +0000)]
Merge "Fix a bug in AnimatablePropertyRegistration with default value" into devel/master
David Steele [Tue, 30 Oct 2018 16:38:33 +0000 (16:38 +0000)]
Merge "(FrameCallback) Ensure setting a color is reset every frame" into devel/master
Kimmo Hoikka [Fri, 26 Oct 2018 18:19:20 +0000 (19:19 +0100)]
Fix a bug in AnimatablePropertyRegistration with default value
method did not recurse base classes so if default value was asked from derived class, it returned wrong value
Change-Id: I29691a911e77bd9431863590560104792e57fc07
Adeel Kazmi [Thu, 25 Oct 2018 15:13:51 +0000 (16:13 +0100)]
(FrameCallback) Ensure setting a color is reset every frame
- Added a property resetter so that the color value is reset to base
value at the start of every frame.
- Realised that the color was being set on the next frame so had to move
calling the frame-callback earlier (i.e. before we go through the
nodes).
Change-Id: Id5debd0f0ee6d7fc0d994d5cae817f2fcf0c7f16
Kimmo Hoikka [Tue, 30 Oct 2018 13:29:19 +0000 (13:29 +0000)]
Remove TypeRegistration from deprecated Image classes
No-one needs them so they just slow down each app startup unnecessarily
Change-Id: I9d7e7c7dbbd35a1b4744b19603418cd5cb338ddc
Kimmo Hoikka [Thu, 25 Oct 2018 17:00:42 +0000 (18:00 +0100)]
Optimize type-info-impl and type-registry-impl
store base typeinfo pointer instead of resolving it every time a method is called.
this is safe as type info cannot change after registration.
store intrusive pointers to type-info-impl instead of handles as they are considerably cheaper
In dali-demo startup reduced the count of calls:
Before:
TypeRegistry::GetTypeInfo 2409
TypeInfo::TypeInfo 3006
Change-Id: Idd53378ca15cc0f690597dd7a5855cb5986a6785
Kimmo Hoikka [Thu, 18 Oct 2018 10:49:12 +0000 (11:49 +0100)]
Reducing boilerplate on default property metadata
- moved all per class metadata to TypeRegistry
- derived classes register default property table with TypeRegistration
- removed bitflags from PropertyDetails and added index to make iterating property tables easier
Change-Id: Iccdef021309163566cbd1b17c7d00d557355afdf
Adeel Kazmi [Fri, 26 Oct 2018 11:52:13 +0000 (11:52 +0000)]
Merge "DALi Version 1.3.47" into devel/master
greynaga [Fri, 26 Oct 2018 11:23:37 +0000 (12:23 +0100)]
DALi Version 1.3.47
Change-Id: Ia1030f35d70c8fe6104c7b4f740c93851d637d20
Heeyong Song [Fri, 26 Oct 2018 00:44:27 +0000 (00:44 +0000)]
Merge "Add a comment" into devel/master
David Steele [Thu, 25 Oct 2018 10:20:11 +0000 (10:20 +0000)]
Merge "Change RenderTaskList to behave like any other SceneGraph object" into devel/master
Heeyong Song [Thu, 25 Oct 2018 05:28:26 +0000 (14:28 +0900)]
Add a comment
Change-Id: Ie6673d9b41aa79c795972a9c5850ad808582998d
Adeel Kazmi [Fri, 19 Oct 2018 15:26:01 +0000 (16:26 +0100)]
(FrameCallback) Ensure Update doesn't invoke removed FrameCallbacks
Change-Id: I28a37a5fe109b62e29626e66470258fa2f94392e
Adeel Kazmi [Fri, 19 Oct 2018 11:46:35 +0000 (12:46 +0100)]
Make OwnerPointer Movable & add test cases
Change-Id: If01e25003536ff26ed67a620d094f2311a8e0340
Richard Huang [Tue, 9 Oct 2018 14:42:24 +0000 (15:42 +0100)]
Change RenderTaskList to behave like any other SceneGraph object
Change-Id: Ide7b01c32aa7baa9243e8053d748219bfaaf6414
David Steele [Mon, 22 Oct 2018 18:01:35 +0000 (19:01 +0100)]
Fixed bad instantiation of property values
Change-Id: Ia47bbbd15ce7022e3d2422bd502e68c09fb6a633
Kimmo Hoikka [Fri, 12 Oct 2018 11:17:17 +0000 (12:17 +0100)]
Making DALi core internals typesafe using guaranteed types; uint8_t, uint32_t and enabling -Wconversion
unsigned char -> uint8_t
unsigned short -> uint16_t
unsigned int -> uint32_t
int -> int32_t
-Wconversion will prevent any implicit conversions where precision may be lost such as: uint32_t a = (size_t)b or int x = (float)y
static_cast has to be used to tell the compiler how and where to do the conversion
Change-Id: Ic1475a59acf55601100cd603a455b96e9eb7c53e
Adeel Kazmi [Thu, 18 Oct 2018 13:56:19 +0000 (13:56 +0000)]
Merge "Making DALi core internals typesafe using guaranteed types; uint8_t, uint32_t" into devel/master
Anton Obzhirov [Thu, 18 Oct 2018 13:26:19 +0000 (14:26 +0100)]
DALi Version 1.3.46
Change-Id: I0c91e5b03a2e1b98d8de7932c9fe724212fecb50
Kimmo Hoikka [Fri, 5 Oct 2018 17:15:40 +0000 (18:15 +0100)]
Making DALi core internals typesafe using guaranteed types; uint8_t, uint32_t
unsigned char -> uint8_t
unsigned short -> uint16_t
unsigned int -> uint32_t
int -> int32_t
Change-Id: I0e161bf56c220fda4f5dfc5dc7cde8d2aa2c584c
Kimmo Hoikka [Wed, 17 Oct 2018 09:24:49 +0000 (10:24 +0100)]
Make NodePropertyFlags typesafe by using enum class
Change-Id: I994270523f319cf30c23edff4d7a6bd42cc62270
David Steele [Wed, 17 Oct 2018 11:13:48 +0000 (11:13 +0000)]
Merge "(FrameCallback) Ensure the callback is removed if the implementation is deleted" into devel/master
Adeel Kazmi [Mon, 15 Oct 2018 17:50:23 +0000 (17:50 +0000)]
Merge "Updated patch-coverage script to generate correct HTML" into devel/master
Adeel Kazmi [Fri, 12 Oct 2018 14:25:07 +0000 (15:25 +0100)]
(FrameCallback) Ensure the callback is removed if the implementation is deleted
Also remove unnecessary mRootNode in FrameCallbackProcessor
Change-Id: Ia7941a77ba5deed4c5abe10870af9935d8b5112d
Adeel Kazmi [Mon, 15 Oct 2018 17:37:21 +0000 (17:37 +0000)]
Merge "(FrameCallback) Use uint32_t instead of unsigned int" into devel/master
Adeel Kazmi [Mon, 15 Oct 2018 17:37:20 +0000 (17:37 +0000)]
Merge "(FrameCallback) Actor & FrameCallback Lifecycle management" into devel/master
David Steele [Mon, 15 Oct 2018 16:59:59 +0000 (17:59 +0100)]
Updated patch-coverage script to generate correct HTML
Change-Id: I8ce0ff8ac50da3bdc07c0b27a58268557d0c242b
Kimmo Hoikka [Thu, 4 Oct 2018 16:44:20 +0000 (17:44 +0100)]
Making DALi public API typesafe using guaranteed types; uint8_t, uint32_t
unsigned char -> uint8_t
unsigned short -> uint16_t
unsigned int -> uint32_t
int -> int32_t
these types are guaranteed to have the correct amount of bits by the compiler
Change-Id: Ie480a21e06dc999110de368284ff9a601bacef2a
Adeel Kazmi [Fri, 12 Oct 2018 13:43:08 +0000 (14:43 +0100)]
(FrameCallback) Use uint32_t instead of unsigned int
Change-Id: Ic6a92b40d333ce10c10ee8e0ebda87b79320fb85
Adeel Kazmi [Fri, 12 Oct 2018 13:00:28 +0000 (14:00 +0100)]
(FrameCallback) Actor & FrameCallback Lifecycle management
Change-Id: I2aaae83942bd344f8bab1d4caf1bc04e04e830d6
David Steele [Fri, 12 Oct 2018 13:22:52 +0000 (13:22 +0000)]
Merge "(FrameCallback) All values now local & baking of the value supported" into devel/master
David Steele [Fri, 12 Oct 2018 12:37:38 +0000 (13:37 +0100)]
DALi Version 1.3.45
Change-Id: Iee9cf573588d31e869bebe3725f4dcb661e35e33
Adeel Kazmi [Wed, 3 Oct 2018 19:16:46 +0000 (20:16 +0100)]
(FrameCallback) All values now local & baking of the value supported
- Callback now called before world matrix is calculated so removed
the world matrix methods (as they will be a frame behind now)
- All values now in local actor space.
- Scale added.
- Added bake methods to save the values if required.
- Ensured that when an actor is removed, the node hierarchy is
invalidated.
Change-Id: I76318fcf77c0ae6e7a217ee9169db71aeda9aa75
György Straub [Fri, 5 Oct 2018 08:42:48 +0000 (09:42 +0100)]
DALi Version 1.3.44
Change-Id: I24e93e727fbdf04a487a41c0451f22a51cf09f1d
Adeel Kazmi [Tue, 2 Oct 2018 09:36:21 +0000 (09:36 +0000)]
Merge "Use GLES 3.0 by default" into devel/master
Agnelo Vaz [Fri, 28 Sep 2018 13:04:32 +0000 (14:04 +0100)]
DALi Version 1.3.43
Change-Id: I76af3e7d21ae5a25778bcca6d34fbbe1e85998f8
Adeel Kazmi [Fri, 28 Sep 2018 11:19:09 +0000 (12:19 +0100)]
Use GLES 3.0 by default
This only changes the desktop build default, the packaging file
specifies what version of GLES to use every time.
Change-Id: Ifc500688e0fbe34c4f7e2d89a75acb4f43188293
Adeel Kazmi [Fri, 21 Sep 2018 09:17:45 +0000 (10:17 +0100)]
DALi Version 1.3.42
Change-Id: I9a4957f3b5c71809f72a91492b853e1b4fb77559
HyunJu Shin [Tue, 18 Sep 2018 06:47:14 +0000 (06:47 +0000)]
Merge "Delete user attribute in spec file" into devel/master
Heeyong Song [Tue, 18 Sep 2018 01:02:37 +0000 (01:02 +0000)]
Merge "Add CULLED property to Actor" into devel/master
huiyu.eun [Fri, 14 Sep 2018 08:25:25 +0000 (17:25 +0900)]
Delete user attribute in spec file
A warning occurs during RPM installation.
-> 'app' of grup/user attribute is aleady deleted from Tizen_3.0
warning: user app does not exist - using root
warning: group app does not exist - using root
warning: user app does not exist - using root
warning: group app does not exist - using root
Change-Id: Ic486fc3cd8fdeca5ec13a2d0abc2f5115adbcfbc
Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
Kimmo Hoikka [Fri, 14 Sep 2018 16:55:29 +0000 (17:55 +0100)]
Update Coding convention regarding conversion operators and use of auto keyword
Change-Id: I24432c9af972f87638114cf49de342371a81e6a0
adam.b [Fri, 14 Sep 2018 14:20:34 +0000 (15:20 +0100)]
DALi Version 1.3.41
Change-Id: I7a84f4032a7803f4538f09e3bb1271ce07191c7d
Heeyong Song [Thu, 13 Sep 2018 06:24:43 +0000 (15:24 +0900)]
Add CULLED property to Actor
Change-Id: I56806718eb51757edee2042c5031b857ebd49f08
adun [Thu, 21 Jun 2018 01:35:11 +0000 (09:35 +0800)]
Mofidy codes for Dali Windows backend
Change-Id: I9b4720e0cbfb7617ae27ac86e5019ad1896fa8a3
Victor Cebollada [Fri, 7 Sep 2018 07:31:16 +0000 (08:31 +0100)]
DALi Version 1.3.40
Change-Id: I7cac4c496741ecdb23d7a4f573d08abb8e736db5
Adeel Kazmi [Mon, 17 Jul 2017 18:27:49 +0000 (19:27 +0100)]
Add a mechanism to specify a callback on every frame
Change-Id: I71642330a7e5c2fc69b2661648d698a6dad8caf9
Richard Huang [Fri, 31 Aug 2018 09:39:43 +0000 (10:39 +0100)]
DALi Version 1.3.39
Change-Id: I17283d1be3d5053077f729ac971c321ad37248eb
dongsug.song [Wed, 29 Aug 2018 09:50:22 +0000 (18:50 +0900)]
Revert "make csharp exception message detailed by adding location and backtrace"
This reverts commit
4ae34dd834462938b147ca422cfbffcdb179181e.
dongsug.song [Tue, 21 Aug 2018 12:38:05 +0000 (21:38 +0900)]
make csharp exception message detailed by adding location and backtrace
Change-Id: I7628735b5565d3916265050adac8ccf308c1068a
Signed-off-by: dongsug.song <dongsug.song@samsung.com>
Jiyun Yang [Tue, 28 Aug 2018 05:07:18 +0000 (14:07 +0900)]
Fix typo in method description
Change-Id: I9b8415755ecc4d571e6fccf8e418f90ed1351ee5
Signed-off-by: Jiyun Yang <ji.yang@samsung.com>
Adeel Kazmi [Thu, 23 Aug 2018 10:36:06 +0000 (11:36 +0100)]
Add ability to change rendering behavior
Change-Id: I089a81af0cc62d397fd276bc97f662bd7bf3fb55
Anton Obzhirov [Thu, 23 Aug 2018 14:02:11 +0000 (15:02 +0100)]
DALi Version 1.3.38
Change-Id: I89fc76d942b1065bfdaa39fcbef60e4560a2981a
thothamon [Fri, 17 Aug 2018 11:15:23 +0000 (12:15 +0100)]
DALi Version 1.3.37
Change-Id: I260ca4e20c2c887bda1ff8e0579c6e8e990e7210
Heeyong Song [Mon, 13 Aug 2018 06:50:20 +0000 (15:50 +0900)]
Set BlendFunc for the non-premultiplied format as well
Change-Id: I45d1f23b282af1144da261a33014d3afa297427a
Adeel Kazmi [Fri, 10 Aug 2018 09:29:20 +0000 (09:29 +0000)]
Merge "DALi Version 1.3.36" into devel/master
György Straub [Fri, 10 Aug 2018 09:10:41 +0000 (10:10 +0100)]
DALi Version 1.3.36
Change-Id: I02a5c749f4e1654cccaee440ef3d935b7f4550b1
minho.sun [Wed, 9 May 2018 10:36:28 +0000 (19:36 +0900)]
Set DepthMask to true before clearing depth buffer
When enableDepthWrite is false, Depth buffer is not cleared because DepthMask is false.
Make sure that DALi set DepthMask to true before clearing depth buffer.
Change-Id: Ia94826a9681355719604f774e3fb37994068e3c2
Signed-off-by: minho.sun <minho.sun@samsung.com>
greynaga [Fri, 3 Aug 2018 09:30:05 +0000 (10:30 +0100)]
DALi Version 1.3.35
Change-Id: Ib0e1d7fb687b93f3c94a7e963f009e67af514813
Adeel Kazmi [Fri, 27 Jul 2018 15:51:57 +0000 (15:51 +0000)]
Merge "Add a parameter to ChildOrderChangedSignalType" into devel/master
David Steele [Fri, 27 Jul 2018 11:42:12 +0000 (12:42 +0100)]
DALi Version 1.3.34
Change-Id: I5684bff904d2c10d09db269b56a4cda8fcb801af
Heeyong Song [Wed, 25 Jul 2018 08:53:57 +0000 (17:53 +0900)]
Add a parameter to ChildOrderChangedSignalType
Change-Id: Iec3ed3a500e52f4d05b2aac5238b381325680a09
Angelos Gkountis [Fri, 20 Jul 2018 12:30:13 +0000 (13:30 +0100)]
DALi Version 1.3.33
Change-Id: If5da7a7964fe7670c6cb1c673a09efacdc05ccaf
Adeel Kazmi [Fri, 13 Jul 2018 08:48:16 +0000 (09:48 +0100)]
DALi Version 1.3.32
Change-Id: I51783acada66957b15bcedd2e8a03e7cfaf78568
Adeel Kazmi [Thu, 12 Jul 2018 17:11:38 +0000 (18:11 +0100)]
Fix SVACE error in core.h
Change-Id: I4c5724cd297f83506151b8a0511e0644986ab6f3
Heeyong Song [Fri, 29 Jun 2018 07:55:00 +0000 (16:55 +0900)]
Check if the surfarce rect is changed
Change-Id: Id2c20944ca990848a3ff841298466e678fa2e74d
Agnelo Vaz [Fri, 6 Jul 2018 09:36:10 +0000 (10:36 +0100)]
DALi Version 1.3.31
Change-Id: I0cf1fc2d0668958e7632d9ca75f050510cf92cad
Adeel Kazmi [Thu, 5 Jul 2018 16:06:13 +0000 (16:06 +0000)]
Merge "Changes order of events processing for new layouting." into devel/master
Anton Obzhirov [Thu, 5 Jul 2018 09:48:34 +0000 (10:48 +0100)]
Changes order of events processing for new layouting.
The old size negotiation events processing is moved
to run after the new layouting events processing.
It should help to do all the new layout updates and
the controls size updates in one iteration.
Change-Id: I364df1af22046f9a48fc0c9141c43b80fa60cc8c
dongsug.song [Tue, 29 May 2018 09:01:20 +0000 (18:01 +0900)]
Add GetMouseButton to identify right/left mouse button click
Change-Id: If2e2536851e081fc882786da1ff1595c255efae0
Signed-off-by: dongsug.song <dongsug.song@samsung.com>
adam.b [Fri, 29 Jun 2018 12:50:27 +0000 (13:50 +0100)]
DALi Version 1.3.30
Change-Id: If1ae3721be04796311e82fb5afc44101eab5dd94
Victor Cebollada [Fri, 22 Jun 2018 07:54:34 +0000 (08:54 +0100)]
DALi Version 1.3.29
Change-Id: I4e05244486e7dd950d08ef3400590457c5346110
David Steele [Thu, 21 Jun 2018 21:24:44 +0000 (21:24 +0000)]
Merge "Added signal to inform when an Actor's children have changed order" into devel/master
David Steele [Fri, 15 Jun 2018 16:18:51 +0000 (16:18 +0000)]
Merge "Added DEBUG_LOG_STREAM for using stream operator" into devel/master
David Steele [Fri, 15 Jun 2018 15:35:32 +0000 (16:35 +0100)]
Added signal to inform when an Actor's children have changed order
At present, this fires immediately after a call to Raise/Lower or other such
APIs. This means that layouting has a chance to run before the re-writing of depth
information.
Change-Id: Ie2488a14f1f17df93589c396f6c8b699d6783090
Signed-off-by: David Steele <david.steele@samsung.com>
David Steele [Thu, 14 Jun 2018 16:54:43 +0000 (17:54 +0100)]
Added DEBUG_LOG_STREAM for using stream operator
Change-Id: I7864dd73c6b313b41b9b9ba7aab20e94cb262d55
Paul Wisbey [Tue, 12 Jun 2018 17:51:48 +0000 (18:51 +0100)]
Fix to avoid render-task waiting forever
We require a finished signal to be emitted after rendering to the screen,
i.e. to know when the scene has been rendered for the 1st time.
Unfortunately RenderTask SetRefreshRate(REFRESH_ONCE) is causing scene updates to run forever.
This is is due to the mWaitingToRender flag which in that case will never be set to false.
Change-Id: Ia3cd411e65adc613be81db3d09d35ade87ae9f62
György Straub [Fri, 8 Jun 2018 10:49:26 +0000 (11:49 +0100)]
DALi Version 1.3.28
Change-Id: Id705eba32a80b887d092189025fbc79fdb7767c3
David Steele [Fri, 1 Jun 2018 13:15:44 +0000 (14:15 +0100)]
DALi Version 1.3.27
Change-Id: Icf5c1420c99947c03a1a0699f00177dbd9c61e4a
Adeel Kazmi [Thu, 24 May 2018 13:26:45 +0000 (13:26 +0000)]
Merge "DALi Version 1.3.26" into devel/master
thothamon [Thu, 24 May 2018 13:17:47 +0000 (14:17 +0100)]
DALi Version 1.3.26
Change-Id: I7473af56dc3a81a2cb01937dc7e63408defb3a77
Adeel Kazmi [Tue, 22 May 2018 15:41:31 +0000 (16:41 +0100)]
Added clarifications to Matrix & Matrix3 documentation & removed unused debug functions
Also corrected how the ostream functions print out Matrix & Matrix3.
Change-Id: I6a20b8f6e5de138db29cac7baae1346905310ced
greynaga [Fri, 18 May 2018 11:03:17 +0000 (12:03 +0100)]
DALi Version 1.3.25
Change-Id: I983adefd4fd5d4296367487ce88a41d85f69096d
Anton Obzhirov [Tue, 15 May 2018 16:50:32 +0000 (17:50 +0100)]
Add GTest.
Change-Id: Ic9e3042a40a326399b9133e418c9249c174abfed
adun [Fri, 11 May 2018 01:57:59 +0000 (09:57 +0800)]
Seperate the API macros
Change-Id: If42263c0ba8972919fc4d7a5581c5ad06c18a9d6