summaryrefslogtreecommitdiffstats
path: root/client-compiler
Commit message (Collapse)AuthorAgeFilesLines
...
| * Reformat project using Eclipse Luna SR1Artur Signell2014-12-291-11/+12
| | | | | | | | Change-Id: I58748499c87d470e70304d882d3227cda5803481
* | Support JsonValue types as declared types in state and RPC (#15560)Leif Åstrand2015-01-121-1/+11
| | | | | | Change-Id: I2779a533811bb1b60c4e74789f6378574bc6ac61
* | Set @since values for Grid classesLeif Åstrand2014-12-181-1/+1
| | | | | | | | Change-Id: Ib0c7d23c2a963e24ecca7769f6b179826be55102
* | Merge remote-tracking branch 'origin/master' into gridLeif Åstrand2014-12-184-12/+50
|\| | | | | | | Change-Id: Ic7629f9cedb3c948edf4f63c678ca499e3d52805
| * Fix the license checker after elemental.json #15383Jonatan Kronqvist2014-12-174-12/+50
| | | | | | | | | | | | | | | | | | | | | | The elemental.json update changed how null values and string representations of numbers were parsed, which caused a lot of tests for CvalChecker to fail. Unfortunately the tests were never run in an automated fashion, which means that they were never discovered until we stumbled upon it due to the issue reported in #15383 Change-Id: If2cb9fa96effea7ce55a4ffe6d1666ca7521e1fb
* | replace com.google.gwt.json.* usages with elemental.json.* (#8942)Leif Åstrand2014-12-185-19/+20
| | | | | | | | Change-Id: I745b12685be4696fd8f1158005bf731f35ae8a81
* | Move Grid related renderer to com.vaadin.client.connectors (#13334)Henrik Paul2014-12-082-2/+2
| | | | | | | | Change-Id: Ia2b74c6d6b99ef9ec5aa0d41956c55ebd8a2615a
* | Show better feedback if renderer connector is not parameterized (#13334)Leif Åstrand2014-12-071-5/+18
| | | | | | | | Change-Id: Ica9281e254938443576fcd3c61197a50ceaa2d2e
* | Add @NoLayout annotation (#12936)Leif Åstrand2014-11-253-0/+46
| | | | | | | | | | | | | | This commit adds support for @NoLayout and updates most framework components to use the annotation where it makes sense Change-Id: I99320a6aa6de717da5f2463dd8acfcd412165767
* | Merge remote-tracking branch 'origin/master' into gridTeemu Suo-Anttila2014-11-142-4/+11
|\| | | | | | | Change-Id: Iec61d9242be530edbb76ba952746ba0f9c9bd966
| * Update GWT to 2.7.0.beta1vaadin1.Artur Signell2014-10-312-4/+11
| | | | | | | | | | | | | | Update client-compiler-deps to 1.2.0. Fix classpaths for devmodes. Change-Id: I8452271594b4563bf476420ff7ab22985913e397
* | Merge remote-tracking branch 'origin/master' into gridLeif Åstrand2014-09-203-2/+145
|\ \ | |/ |/| | | Change-Id: I8a35a090619778b1cfbff55e112ab2f30e6881a2
| * Merge remote-tracking branch 'origin/master' into gridTeemu Suo-Anttila2014-09-031-25/+18
| |\ | | | | | | | | | | | | | | | This merge needs Grid to use elemental.json instead of org.json Change-Id: Ib3c387c7e282b2502f266bafbdaad8727f5dc6ef
| * \ Merge remote-tracking branch 'origin/master' into gridTeemu Suo-Anttila2014-08-192-9/+158
| |\ \ | | | | | | | | | | | | Change-Id: Iac6947bc82bfbbb6856a924e7d538d195cfb405e
| * \ \ Merge remote-tracking branch 'origin/master' into gridJohn Ahlroos2014-08-073-20/+28
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: WebContent/release-notes.html Change-Id: Ie05bea7142134a7a9d655fcdf6ca232fd13c742b
| * \ \ \ Merge branch 'master' into gridLeif Åstrand2014-07-221-10/+2
| |\ \ \ \ | | | | | | | | | | | | | | | | | | Change-Id: I6878b3c64eb5c98174537f4e5864e2ff2cb1863f
| * | | | | Generate type data for AbstractRendererConnector.decode (#13334)Johannes Dahlström2014-07-174-65/+137
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The presentation type parameter is stored so that decode works without implementers having to implement a getType method. Change-Id: Ia2b9f977f2bf6ed006379cda5eeb61674dd92ee0
| * | | | | Generate type data for AbstractRendererConnector.createRenderer (#13334)Johannes Dahlström2014-07-103-2/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The declared return type of the most-derived getRenderer method is stored to make the default createRenderer implementation work. This is identical to the way AbstractComponentConnector getWidget and createWidget work. Change-Id: I879e9e6739e366bd81773a1e65195336e0cdac6d
* | | | | | URI to cval file was wrong in Windows (#14629)Manolo Carrasco2014-09-121-4/+5
| |_|_|_|/ |/| | | | | | | | | | | | | | Change-Id: Ifdcf8bcaf6f613660b185501be92eec0b43700b5
* | | | | replaced all org.json.* usages with elemental.json.* (#8942)Taras Hupalo2014-08-261-25/+18
| |_|_|/ |/| | | | | | | | | | | Change-Id: I4809fbbdb48f3e36c8e1da8552ff3fa734714105
* | | | Allow for multiple license keys in a single license file #14408Jonatan Kronqvist2014-08-132-9/+158
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | License files can now contain multiple keys to support different versions of a product. The keys are identified by the major version number followed by an equals sign and the key for that version, e.g. 1 = foo-bar-baz 2 = baz-foo-bar The license file can also contain a "default" license key, which is used for all versions except for the explicitly defined ones, e.g. foo-bar-baz 3 = baz-bar-foo 4 = bar-baz-baz Change-Id: Id07d22e9fdc44189c4298b634006cf0df128bfd9
* | | DelegateToWidget will now be run even for parent states for extendingMikael Grankvist2014-08-073-20/+28
| |/ |/| | | | | | | | | | | | | states (#14059) Updated the code to encompass Leif's suggestion. Change-Id: I70c0a4a93b9fe9ee8b2c458d666a1fec791f20b4
* | Box and unbox long values in state fields (#14176)Leif Åstrand2014-07-091-10/+2
|/ | | | | | | | | | | | | We actually want to pass around the primitive long values emulated by GWT even though JavaScript code can't do anything with the values. Skipping the unboxing caused long fields to always be 0 since that's how JavaScript converts an object into a number. This patch also makes the test assert that the expected state values are received and updates those values to actually make sense in some situations. Change-Id: Id9c3696d699593bd9e59e249c5daf077873b85fc
* Add missing @since 7.3 to javadocHenri Sara2014-07-032-7/+11
| | | | Change-Id: I62610ef647fbbb5a7cfae25ac5c7628f78f2c6ff
* License Checker for vaadin cval products (#13696 #13474)Manolo Carrasco2014-06-267-5/+1474
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - This patch includes four elements: 1.- A class able to validate a licensed product against Vaadin license server. It can be used in any vaadin product (thought for non addons like TB) just adding vaadin dependency, or copying the class. 2.- A class able to inspect all addons in the classpath and figure out, based on the MANIFEST.MF info, whether we have to check developer license. 3.- A modification to Vaadin connector generator to use the classes above and to stop compilation in case. 4.- A modification to ConnectorBundleLoader, so as when a new connector is instatiated, we check whether it is using an evaluation license and show a notice. We only show the notice once. - In addition to validating developer licenses, the checker caches the server response for using it when there are connection problems. - This stuff is in Vaadin core, so as we dont maintain license code in each addon. For checking an addon license we just add the license type to the manifest when packaging the artefact. - It checks expiration time, product name and major version. Fixes: #13696 In some-way related with: #13474 Change-Id: Ib61b1c2e9c3cacd463a1ce5db02c2cfbc06851c2
* Don't generate GWT.create for bean superclasses (#13813)Leif Åstrand2014-06-051-2/+2
| | | | Change-Id: I20e03a79562d6bc71ae1454cbbe2d6903649c771
* Use more appropriate dependencies for Jetty (#13682)Artur Signell2014-05-131-1/+5
| | | | Change-Id: Ic977ae403068e41a64eabc42cd00c4a933d02a95
* Support long in state again (#13692)Jonatan Kronqvist2014-05-122-2/+14
| | | | | | | | | | The fix to #9379 broke the support for long type fields in state classes. This patch bypasses the unboxing of long values and adds the @UnsafeNativeLong annotation to the methods which may fetch and return (without modifying) long values. SerializerTest is extended to test the different data types in States. Change-Id: I29fd2c6af13cd9a0d29ecb1444ed9eb8a2b013e3
* Make SuperDevMode work again (#13682)Artur Signell2014-05-121-3/+4
| | | | | | | | VNotification now works without ApplicationConnection again. Dependencies needed by codeserver are now dependencies for client-compiler Error message now takes into account that devModeRedirect is enabled by default Change-Id: I079d162d9975f99fe7b91e14ad100459c80a5587
* Merge changes from origin/7.2 into masterJonatan Kronqvist2014-05-0520-20/+20
|\ | | | | | | | | | | | | | | | | | | Conflicts: build.properties client/src/com/vaadin/client/ApplicationConnection.java client/src/com/vaadin/client/extensions/ResponsiveConnector.java server/src/com/vaadin/server/Responsive.java Change-Id: I49f90521611d1b86704a60c3d003cdeea9c3b864
| * Update remaining copyright years to 2014Artur Signell2014-04-231-1/+1
| | | | | | | | Change-Id: I1fc2bd735b538ebac6d4f41fc8536f26795cc85f
| * Merge changes from origin/7.1Artur Signell2014-04-2319-19/+19
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e77e73c Update copyright year to 2014 Conflicts: client-compiler/src/com/vaadin/server/widgetsetutils/metadata/ConnectorBundle.java client/src/com/vaadin/client/ApplicationConnection.java server/src/com/vaadin/data/util/converter/StringToNumberConverter.java shared/src/com/vaadin/shared/ui/ui/PageState.java shared/src/com/vaadin/shared/ui/window/WindowState.java theme-compiler/src/com/vaadin/sass/SassCompiler.java theme-compiler/src/com/vaadin/sass/internal/ScssStylesheet.java theme-compiler/src/com/vaadin/sass/internal/expression/ArithmeticExpressionEvaluator.java theme-compiler/src/com/vaadin/sass/internal/expression/BinaryExpression.java theme-compiler/src/com/vaadin/sass/internal/expression/BinaryOperator.java theme-compiler/src/com/vaadin/sass/internal/expression/exception/ArithmeticException.java theme-compiler/src/com/vaadin/sass/internal/expression/exception/IncompatibleUnitsException.java theme-compiler/src/com/vaadin/sass/internal/handler/SCSSDocumentHandler.java theme-compiler/src/com/vaadin/sass/internal/handler/SCSSDocumentHandlerImpl.java theme-compiler/src/com/vaadin/sass/internal/handler/SCSSErrorHandler.java theme-compiler/src/com/vaadin/sass/internal/parser/CharStream.java theme-compiler/src/com/vaadin/sass/internal/parser/Generic_CharStream.java theme-compiler/src/com/vaadin/sass/internal/parser/LexicalUnitImpl.java theme-compiler/src/com/vaadin/sass/internal/parser/LocatorImpl.java theme-compiler/src/com/vaadin/sass/internal/parser/MediaListImpl.java theme-compiler/src/com/vaadin/sass/internal/parser/ParseException.java theme-compiler/src/com/vaadin/sass/internal/parser/Parser.java theme-compiler/src/com/vaadin/sass/internal/parser/ParserConstants.java theme-compiler/src/com/vaadin/sass/internal/parser/ParserTokenManager.java theme-compiler/src/com/vaadin/sass/internal/parser/SCSSLexicalUnit.java theme-compiler/src/com/vaadin/sass/internal/parser/SCSSParseException.java theme-compiler/src/com/vaadin/sass/internal/parser/SelectorListImpl.java theme-compiler/src/com/vaadin/sass/internal/parser/Selectors.java theme-compiler/src/com/vaadin/sass/internal/parser/ThrowedParseException.java theme-compiler/src/com/vaadin/sass/internal/parser/Token.java theme-compiler/src/com/vaadin/sass/internal/parser/TokenMgrError.java theme-compiler/src/com/vaadin/sass/internal/resolver/ClassloaderResolver.java theme-compiler/src/com/vaadin/sass/internal/resolver/FilesystemResolver.java theme-compiler/src/com/vaadin/sass/internal/resolver/ScssStylesheetResolver.java theme-compiler/src/com/vaadin/sass/internal/resolver/VaadinResolver.java theme-compiler/src/com/vaadin/sass/internal/selector/SelectorUtil.java theme-compiler/src/com/vaadin/sass/internal/tree/BlockNode.java theme-compiler/src/com/vaadin/sass/internal/tree/ExtendNode.java theme-compiler/src/com/vaadin/sass/internal/tree/ForNode.java theme-compiler/src/com/vaadin/sass/internal/tree/FunctionNode.java theme-compiler/src/com/vaadin/sass/internal/tree/ImportNode.java theme-compiler/src/com/vaadin/sass/internal/tree/KeyframesNode.java theme-compiler/src/com/vaadin/sass/internal/tree/ListContainsNode.java theme-compiler/src/com/vaadin/sass/internal/tree/ListModifyNode.java theme-compiler/src/com/vaadin/sass/internal/tree/ListRemoveNode.java theme-compiler/src/com/vaadin/sass/internal/tree/MediaNode.java theme-compiler/src/com/vaadin/sass/internal/tree/MicrosoftRuleNode.java theme-compiler/src/com/vaadin/sass/internal/tree/MixinDefNode.java theme-compiler/src/com/vaadin/sass/internal/tree/MixinNode.java theme-compiler/src/com/vaadin/sass/internal/tree/NestPropertiesNode.java theme-compiler/src/com/vaadin/sass/internal/tree/Node.java theme-compiler/src/com/vaadin/sass/internal/tree/RuleNode.java theme-compiler/src/com/vaadin/sass/internal/tree/SimpleNode.java theme-compiler/src/com/vaadin/sass/internal/tree/VariableNode.java theme-compiler/src/com/vaadin/sass/internal/tree/controldirective/EachDefNode.java theme-compiler/src/com/vaadin/sass/internal/tree/controldirective/IfElseDefNode.java theme-compiler/src/com/vaadin/sass/internal/tree/controldirective/IfNode.java theme-compiler/src/com/vaadin/sass/internal/util/ColorUtil.java theme-compiler/src/com/vaadin/sass/internal/util/DeepCopy.java theme-compiler/src/com/vaadin/sass/internal/util/FastByteArrayInputStream.java theme-compiler/src/com/vaadin/sass/internal/util/FastByteArrayOutputStream.java theme-compiler/src/com/vaadin/sass/internal/util/StringUtil.java theme-compiler/src/com/vaadin/sass/internal/visitor/BlockNodeHandler.java theme-compiler/src/com/vaadin/sass/internal/visitor/EachNodeHandler.java theme-compiler/src/com/vaadin/sass/internal/visitor/ExtendNodeHandler.java theme-compiler/src/com/vaadin/sass/internal/visitor/IfElseNodeHandler.java theme-compiler/src/com/vaadin/sass/internal/visitor/ImportNodeHandler.java theme-compiler/src/com/vaadin/sass/internal/visitor/MixinNodeHandler.java theme-compiler/src/com/vaadin/sass/internal/visitor/NestedNodeHandler.java theme-compiler/src/com/vaadin/sass/internal/visitor/VariableNodeHandler.java theme-compiler/tests/src/com/vaadin/sass/AbstractTestBase.java theme-compiler/tests/src/com/vaadin/sass/internal/expression/ArithmeticExpressionEvaluatorTest.java theme-compiler/tests/src/com/vaadin/sass/parser/ParserTest.java theme-compiler/tests/src/com/vaadin/sass/resolvers/VaadinResolverTest.java theme-compiler/tests/src/com/vaadin/sass/testcases/css/Interpolation.java theme-compiler/tests/src/com/vaadin/sass/testcases/css/Selectors.java theme-compiler/tests/src/com/vaadin/sass/testcases/scss/AbstractDirectoryScanningSassTests.java theme-compiler/tests/src/com/vaadin/sass/testcases/scss/AutomaticSassTests.java theme-compiler/tests/src/com/vaadin/sass/testcases/scss/Comments.java theme-compiler/tests/src/com/vaadin/sass/testcases/scss/ControlDirectives.java theme-compiler/tests/src/com/vaadin/sass/testcases/scss/Extends.java theme-compiler/tests/src/com/vaadin/sass/testcases/scss/Functions.java theme-compiler/tests/src/com/vaadin/sass/testcases/scss/Imports.java theme-compiler/tests/src/com/vaadin/sass/testcases/scss/Mixins.java theme-compiler/tests/src/com/vaadin/sass/testcases/scss/NestedProperties.java theme-compiler/tests/src/com/vaadin/sass/testcases/scss/Nesting.java theme-compiler/tests/src/com/vaadin/sass/testcases/scss/ParentImports.java theme-compiler/tests/src/com/vaadin/sass/testcases/scss/ParentSelector.java theme-compiler/tests/src/com/vaadin/sass/testcases/scss/SassLangTests.java theme-compiler/tests/src/com/vaadin/sass/testcases/scss/SassLangTestsBroken.java theme-compiler/tests/src/com/vaadin/sass/testcases/scss/SassTestRunner.java theme-compiler/tests/src/com/vaadin/sass/testcases/scss/Variables.java theme-compiler/tests/src/com/vaadin/sass/tree/ImportNodeTest.java uitest/src/com/vaadin/tests/push/BasicPushTest.java uitest/src/com/vaadin/tests/push/PushConfigurationTest.java uitest/src/com/vaadin/tests/push/PushReconnectTest.java Change-Id: Ic08c4f9aecd4c684ce74408de4e0b0d0ff617273
| | * Update copyright year to 2014Artur Signell2014-04-1619-20/+20
| | | | | | | | | | | | Change-Id: Ic77338304dc7e58e49f27dcdaf0bab2e00f5bba6
* | | Report an error if RPC interface is parameterized (#10392).Denis Anisimov2014-04-242-0/+13
|/ / | | | | | | Change-Id: I887c14b1df282c56a1e839eae5a4534501fa3911
* | Override the cssparser dependency from sass-compiler (#13532)Jonatan Kronqvist2014-04-031-1/+4
| | | | | | | | | | | | | | | | vaadin-sass-compiler depends on an older version of cssparser than the one used in client-compiler. This change overrides all sass-compiler provided cssparser deps with the newer version. Change-Id: I06d2b957d66dd3abbef161ae2643eec0cdf7e13a
* | Update commons-io to the same version in all modules (#13531)Jonatan Kronqvist2014-04-031-1/+1
| | | | | | | | | | | | Adds a commons-io.version property to the build.properties file Change-Id: I57a72f8841846d77ba73d567bd9bc3c8415b243c
* | Implement @OnStateChange (#12958)Leif Åstrand2014-04-016-37/+201
| | | | | | Change-Id: I8ea2b781fab42458bf55a751c1229e391365e965
* | Make Invoker support non-public methods (#12959)Leif Åstrand2014-04-011-31/+133
| | | | | | | | Change-Id: Ie449489f3c9222bbe4a4221841c4ebc20693f969
* | Remove theme-compiler and replace with external vaadin-sass-compilerJonatan Kronqvist2014-03-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | * Moves CompileTheme from the theme-compiler to buildhelpers * Refactors CompileTheme to get the Vaadin version on the command line instead of using the Version class found in vaadin-shared * Refactors build scripts to pass the version number on the command line when running CompileTheme * Removes the theme-compiler module/project/whatchamacallit * Replaces the theme-compiler dependency with vaadin-sass-compiler 0.9.0 from maven Change-Id: I4f98d15b60e18a826bf264eb55d12b3e736e8e54
* | Avoid using toString method to access to SCSS serialized state (#9530).denisanisimov2014-03-131-1/+1
| | | | | | Change-Id: I387ae1bbc960acd5a5a588b38c6791a9c9a90690
* | Reduce generated ConnectorBundleLoaderImpl size. (#9379)denisanisimov2014-02-125-205/+296
| | | | | | | | Change-Id: I49411e6893f3adc1c41cc690aca35cd919769625
* | Merge changes from origin/7.1Jonatan Kronqvist2014-02-071-2/+6
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8245079 Decrease the websocket buffer size due to a Jetty 9.1 issue (#13087) ea8f381 Show the widgetset name to more easily spot misconfigurations 797ebdf Allow user to override Atmosphere init params set by Vaadin (#13088) 65c2f2b Properly remove shadow event listeners to prevent IE8 memory leak (#13129) e9a547a Fixed spelling mistake in log message. 0b95f8d Moved selection of selected rows in TableConnector to occur after the new rows are created (#13008) 0579fba Upload control with empty selection (#9602) db4dba4 Ensure event listener is a widget before casting #13130 5e8e866 Changes padding for Textfields with Chameleon theme. (#12974) 171e68d Only use ClientRcp and ServerRpc types that are interfaces (#13056) e41a2ce Add helper for adding multiple components to AbstractTestUI 407bdb3 Ignores scroll events while update from server is in progress (#11454) Change-Id: I5d21b4071165b02da0f53bd055fb1c64e90cae5b
| * Only use ClientRcp and ServerRpc types that are interfaces (#13056)Leif Åstrand2014-01-081-2/+6
| | | | | | | | Change-Id: I73b062628052ec545d5f53314a0cc479806ee89d
* | Exclude Jetty orbit which causes build issues (#12871)Artur Signell2014-01-291-2/+4
| | | | | | | | Change-Id: I06d1343dc25598e45c7a960c36fee2ef4869b651
* | Use new client-compiler-deps (1.1.0) (#12871)Artur Signell2014-01-291-1/+1
| | | | | | | | Change-Id: I3036cb357a144edee56ec37870c9632b0cd90565
* | Use ICU4J from Maven central (#13252)Artur Signell2014-01-271-0/+3
| | | | | | | | Change-Id: Id3837571a0fac020819c83e2bae17eda8ca51267
* | Update nekohtml + xalan dependencies (#12871).Artur Signell2014-01-271-0/+9
| | | | | | | | | | | | | | nekohtml 1.9.15 -> 1.9.19, now directly from Maven central xerces 2.9.1 -> 2.11.0, now directly from Maven central Change-Id: I7b9acd066f73ea546d46ce88065496c628ad5799
* | Update httpcomponents dependencies (#12871).Artur Signell2014-01-221-0/+7
| | | | | | | | | | | | | | | | httpclient 4.1.2 -> 4.3.1, now directly from Maven central httpcore 4.1.2 -> 4.3, now directly from Maven central httpmime 4.1.2 -> 4.3.1, now directly from Maven central Change-Id: I0056993edc1e14262da7697ed550b70cc2ed79c9
* | Update dependencies to match GWT master (#12871)Artur Signell2014-01-221-10/+12
|/ | | | | | | | | | | cssparser 0.9.5 -> 0.9.11 jetty 6.1.11 -> 8.1.12.v20130726 commons-codec 1.3 -> 1.8 commons-logging 1.1.1 -> 1.1.3 commons-io 2.2 -> 2.4 commons-lang 2.6 -> 3.1 Change-Id: Ie5f1b7d1c0b2e31533806640d9a5236e76787d2e
* Unified xml files to end with new lineArtur Signell2013-09-041-1/+1
| | | | Change-Id: Ifb1393e7e5c5c1002b924223957767b3e584d5ab