Merge branch 'develop' into travis/widget-api
						commit
						3e8d7b172f
					
				
							
								
								
									
										118
									
								
								CHANGELOG.md
								
								
								
								
							
							
						
						
									
										118
									
								
								CHANGELOG.md
								
								
								
								
							|  | @ -1,3 +1,121 @@ | |||
| Changes in [3.5.0](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.5.0) (2020-09-28) | ||||
| =================================================================================================== | ||||
| [Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v3.5.0-rc.1...v3.5.0) | ||||
| 
 | ||||
|  * Upgrade JS SDK to 8.4.1 | ||||
| 
 | ||||
| Changes in [3.5.0-rc.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.5.0-rc.1) (2020-09-23) | ||||
| ============================================================================================================= | ||||
| [Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v3.4.1...v3.5.0-rc.1) | ||||
| 
 | ||||
|  * Upgrade JS SDK to 8.4.0-rc.1 | ||||
|  * Update from Weblate | ||||
|    [\#5246](https://github.com/matrix-org/matrix-react-sdk/pull/5246) | ||||
|  * Upgrade sanitize-html, set nesting limit | ||||
|    [\#5245](https://github.com/matrix-org/matrix-react-sdk/pull/5245) | ||||
|  * Add a note to use the desktop builds when seshat isn't available | ||||
|    [\#5225](https://github.com/matrix-org/matrix-react-sdk/pull/5225) | ||||
|  * Add some permission checks to the communities v2 prototype | ||||
|    [\#5240](https://github.com/matrix-org/matrix-react-sdk/pull/5240) | ||||
|  * Support HS-preferred Secure Backup setup methods | ||||
|    [\#5242](https://github.com/matrix-org/matrix-react-sdk/pull/5242) | ||||
|  * Only show User Info verify button if the other user has e2ee devices | ||||
|    [\#5234](https://github.com/matrix-org/matrix-react-sdk/pull/5234) | ||||
|  * Fix New Room List arrow key management | ||||
|    [\#5237](https://github.com/matrix-org/matrix-react-sdk/pull/5237) | ||||
|  * Fix Room Directory View & Preview actions for federated joins | ||||
|    [\#5235](https://github.com/matrix-org/matrix-react-sdk/pull/5235) | ||||
|  * Add a UI feature to disable advanced encryption options | ||||
|    [\#5238](https://github.com/matrix-org/matrix-react-sdk/pull/5238) | ||||
|  * UI Feature Flag: Communities | ||||
|    [\#5216](https://github.com/matrix-org/matrix-react-sdk/pull/5216) | ||||
|  * Rename apps back to widgets | ||||
|    [\#5236](https://github.com/matrix-org/matrix-react-sdk/pull/5236) | ||||
|  * Adjust layout and formatting of notifications / files cards | ||||
|    [\#5229](https://github.com/matrix-org/matrix-react-sdk/pull/5229) | ||||
|  * Fix Search Results Tile undefined variable access regression | ||||
|    [\#5232](https://github.com/matrix-org/matrix-react-sdk/pull/5232) | ||||
|  * Fix Cmd/Ctrl+Shift+U for File Upload | ||||
|    [\#5233](https://github.com/matrix-org/matrix-react-sdk/pull/5233) | ||||
|  * Disable the e2ee toggle when creating a room on a server with forced e2e | ||||
|    [\#5231](https://github.com/matrix-org/matrix-react-sdk/pull/5231) | ||||
|  * UI Feature Flag: Disable advanced options and tidy up some copy | ||||
|    [\#5215](https://github.com/matrix-org/matrix-react-sdk/pull/5215) | ||||
|  * UI Feature Flag: 3PIDs | ||||
|    [\#5228](https://github.com/matrix-org/matrix-react-sdk/pull/5228) | ||||
|  * Defer encryption setup until first E2EE room | ||||
|    [\#5219](https://github.com/matrix-org/matrix-react-sdk/pull/5219) | ||||
|  * Tidy devDeps, all the webpack stuff lives in the layer above | ||||
|    [\#5179](https://github.com/matrix-org/matrix-react-sdk/pull/5179) | ||||
|  * UI Feature Flag: Hide flair | ||||
|    [\#5214](https://github.com/matrix-org/matrix-react-sdk/pull/5214) | ||||
|  * UI Feature Flag: Identity server | ||||
|    [\#5218](https://github.com/matrix-org/matrix-react-sdk/pull/5218) | ||||
|  * UI Feature Flag: Share dialog QR code and social icons | ||||
|    [\#5221](https://github.com/matrix-org/matrix-react-sdk/pull/5221) | ||||
|  * UI Feature Flag: Registration, Password Reset, Deactivate | ||||
|    [\#5227](https://github.com/matrix-org/matrix-react-sdk/pull/5227) | ||||
|  * Retry joinRoom up to 5 times in the case of a 504 GATEWAY TIMEOUT | ||||
|    [\#5204](https://github.com/matrix-org/matrix-react-sdk/pull/5204) | ||||
|  * UI Feature Flag: Disable VoIP | ||||
|    [\#5217](https://github.com/matrix-org/matrix-react-sdk/pull/5217) | ||||
|  * Fix setState() usage in the constructor of RoomDirectory | ||||
|    [\#5224](https://github.com/matrix-org/matrix-react-sdk/pull/5224) | ||||
|  * Hide Analytics sections if piwik config is not provided | ||||
|    [\#5211](https://github.com/matrix-org/matrix-react-sdk/pull/5211) | ||||
|  * UI Feature Flag: Disable feedback button | ||||
|    [\#5213](https://github.com/matrix-org/matrix-react-sdk/pull/5213) | ||||
|  * Clean up UserInfo to not show a blank Power Selector for users not in room | ||||
|    [\#5220](https://github.com/matrix-org/matrix-react-sdk/pull/5220) | ||||
|  * Also hide bug reporting prompts from the Error Boundaries | ||||
|    [\#5212](https://github.com/matrix-org/matrix-react-sdk/pull/5212) | ||||
|  * Tactical improvements to 3PID invites | ||||
|    [\#5201](https://github.com/matrix-org/matrix-react-sdk/pull/5201) | ||||
|  * If no bug_report_endpoint_url, hide rageshaking from the App | ||||
|    [\#5210](https://github.com/matrix-org/matrix-react-sdk/pull/5210) | ||||
|  * Introduce a concept of UI features, using it for URL previews at first | ||||
|    [\#5208](https://github.com/matrix-org/matrix-react-sdk/pull/5208) | ||||
|  * Remove defunct "always show encryption icons" setting | ||||
|    [\#5207](https://github.com/matrix-org/matrix-react-sdk/pull/5207) | ||||
|  * Don't show Notifications Prompt Toast if user has master rule enabled | ||||
|    [\#5203](https://github.com/matrix-org/matrix-react-sdk/pull/5203) | ||||
|  * Fix Bridges tab crashing when the room does not have bridges | ||||
|    [\#5206](https://github.com/matrix-org/matrix-react-sdk/pull/5206) | ||||
|  * Don't count widgets which no longer exist towards pinned count | ||||
|    [\#5202](https://github.com/matrix-org/matrix-react-sdk/pull/5202) | ||||
|  * Fix crashes with cannot read isResizing of undefined | ||||
|    [\#5205](https://github.com/matrix-org/matrix-react-sdk/pull/5205) | ||||
|  * Prompt to remove the jitsi widget when pressing the call button | ||||
|    [\#5193](https://github.com/matrix-org/matrix-react-sdk/pull/5193) | ||||
|  * Show verification status in the room summary card | ||||
|    [\#5195](https://github.com/matrix-org/matrix-react-sdk/pull/5195) | ||||
|  * Fix user info scrolling in new card view | ||||
|    [\#5198](https://github.com/matrix-org/matrix-react-sdk/pull/5198) | ||||
|  * Fix sticker picker height | ||||
|    [\#5197](https://github.com/matrix-org/matrix-react-sdk/pull/5197) | ||||
|  * Call jitsi widgets 'group calls' | ||||
|    [\#5191](https://github.com/matrix-org/matrix-react-sdk/pull/5191) | ||||
|  * Don't show 'unpin' for persistent widgets | ||||
|    [\#5194](https://github.com/matrix-org/matrix-react-sdk/pull/5194) | ||||
|  * Split up cross-signing and secure backup settings | ||||
|    [\#5182](https://github.com/matrix-org/matrix-react-sdk/pull/5182) | ||||
|  * Fix onNewScreen to use replace when going from roomId->roomAlias | ||||
|    [\#5185](https://github.com/matrix-org/matrix-react-sdk/pull/5185) | ||||
|  * bring back 1.2M style badge counts rather than 99+ | ||||
|    [\#5192](https://github.com/matrix-org/matrix-react-sdk/pull/5192) | ||||
|  * Run the rageshake command through the bug report dialog | ||||
|    [\#5189](https://github.com/matrix-org/matrix-react-sdk/pull/5189) | ||||
|  * Account for via in pill matching regex | ||||
|    [\#5188](https://github.com/matrix-org/matrix-react-sdk/pull/5188) | ||||
|  * Remove now-unused create-react-class from lockfile | ||||
|    [\#5187](https://github.com/matrix-org/matrix-react-sdk/pull/5187) | ||||
|  * Fixed 1px jump upwards | ||||
|    [\#5163](https://github.com/matrix-org/matrix-react-sdk/pull/5163) | ||||
|  * Always allow widgets when using the local version | ||||
|    [\#5184](https://github.com/matrix-org/matrix-react-sdk/pull/5184) | ||||
|  * Migrate RoomView and RoomContext to Typescript | ||||
|    [\#5175](https://github.com/matrix-org/matrix-react-sdk/pull/5175) | ||||
| 
 | ||||
| Changes in [3.4.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.4.1) (2020-09-14) | ||||
| =================================================================================================== | ||||
| [Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v3.4.0...v3.4.1) | ||||
|  |  | |||
|  | @ -160,8 +160,8 @@ yarn link matrix-js-sdk | |||
| yarn install | ||||
| ``` | ||||
| 
 | ||||
| See the [help for `yarn link`](https://yarnpkg.com/docs/cli/link) for more | ||||
| details about this. | ||||
| See the [help for `yarn link`](https://classic.yarnpkg.com/docs/cli/link) for | ||||
| more details about this. | ||||
| 
 | ||||
| Running tests | ||||
| ============= | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| { | ||||
|   "name": "matrix-react-sdk", | ||||
|   "version": "3.4.1", | ||||
|   "version": "3.5.0", | ||||
|   "description": "SDK for matrix.org using React", | ||||
|   "author": "matrix.org", | ||||
|   "repository": { | ||||
|  |  | |||
|  | @ -124,15 +124,15 @@ $pinned-unread-color: var(--warning-color); | |||
| $warning-color: var(--warning-color); | ||||
| $button-danger-disabled-bg-color: var(--warning-color-50pct); // still needs alpha at 0.5 | ||||
| // | ||||
| // --username colors | ||||
| $username-variant1-color: var(--username-colors_1, $username-variant1-color); | ||||
| $username-variant2-color: var(--username-colors_2, $username-variant2-color); | ||||
| $username-variant3-color: var(--username-colors_3, $username-variant3-color); | ||||
| $username-variant4-color: var(--username-colors_4, $username-variant4-color); | ||||
| $username-variant5-color: var(--username-colors_5, $username-variant5-color); | ||||
| $username-variant6-color: var(--username-colors_6, $username-variant6-color); | ||||
| $username-variant7-color: var(--username-colors_7, $username-variant7-color); | ||||
| $username-variant8-color: var(--username-colors_8, $username-variant8-color); | ||||
| // --username colors (which use a 0-based index) | ||||
| $username-variant1-color: var(--username-colors_0, $username-variant1-color); | ||||
| $username-variant2-color: var(--username-colors_1, $username-variant2-color); | ||||
| $username-variant3-color: var(--username-colors_2, $username-variant3-color); | ||||
| $username-variant4-color: var(--username-colors_3, $username-variant4-color); | ||||
| $username-variant5-color: var(--username-colors_4, $username-variant5-color); | ||||
| $username-variant6-color: var(--username-colors_5, $username-variant6-color); | ||||
| $username-variant7-color: var(--username-colors_6, $username-variant7-color); | ||||
| $username-variant8-color: var(--username-colors_7, $username-variant8-color); | ||||
| // | ||||
| // --timeline-highlights-color | ||||
| $event-selected-color: var(--timeline-highlights-color); | ||||
|  |  | |||
|  | @ -1855,7 +1855,12 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> { | |||
|         } else { | ||||
|             subtitle = `${this.subTitleStatus} ${subtitle}`; | ||||
|         } | ||||
|         document.title = `${SdkConfig.get().brand} ${subtitle}`; | ||||
| 
 | ||||
|         const title = `${SdkConfig.get().brand} ${subtitle}`; | ||||
| 
 | ||||
|         if (document.title !== title) { | ||||
|             document.title = title; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     updateStatusIndicator(state: string, prevState: string) { | ||||
|  |  | |||
|  | @ -289,7 +289,12 @@ export default class AccessSecretStorageDialog extends React.PureComponent { | |||
|             content = <div> | ||||
|                 <p>{_t("Use your Security Key to continue.")}</p> | ||||
| 
 | ||||
|                 <form className="mx_AccessSecretStorageDialog_primaryContainer" onSubmit={this._onRecoveryKeyNext} spellCheck={false}> | ||||
|                 <form | ||||
|                     className="mx_AccessSecretStorageDialog_primaryContainer" | ||||
|                     onSubmit={this._onRecoveryKeyNext} | ||||
|                     spellCheck={false} | ||||
|                     autoComplete="off" | ||||
|                 > | ||||
|                     <div className="mx_AccessSecretStorageDialog_recoveryKeyEntry"> | ||||
|                         <div className="mx_AccessSecretStorageDialog_recoveryKeyEntry_textInput"> | ||||
|                             <Field | ||||
|  | @ -298,6 +303,7 @@ export default class AccessSecretStorageDialog extends React.PureComponent { | |||
|                                 value={this.state.recoveryKey} | ||||
|                                 onChange={this._onRecoveryKeyChange} | ||||
|                                 forceValidity={this.state.recoveryKeyCorrect} | ||||
|                                 autoComplete="off" | ||||
|                             /> | ||||
|                         </div> | ||||
|                         <span className="mx_AccessSecretStorageDialog_recoveryKeyEntry_entryControlSeparatorText"> | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| /* | ||||
| Copyright 2018 New Vector Ltd | ||||
| Copyright 2018-2020 New Vector Ltd | ||||
| 
 | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
|  | @ -28,6 +28,11 @@ export default class RoomUpgradeWarningBar extends React.Component { | |||
|         recommendation: PropTypes.object.isRequired, | ||||
|     }; | ||||
| 
 | ||||
|     constructor(props) { | ||||
|         super(props); | ||||
|         this.state = {}; | ||||
|     } | ||||
| 
 | ||||
|     componentDidMount() { | ||||
|         const tombstone = this.props.room.currentState.getStateEvents("m.room.tombstone", ""); | ||||
|         this.setState({upgraded: tombstone && tombstone.getContent().replacement_room}); | ||||
|  | @ -35,6 +40,13 @@ export default class RoomUpgradeWarningBar extends React.Component { | |||
|         MatrixClientPeg.get().on("RoomState.events", this._onStateEvents); | ||||
|     } | ||||
| 
 | ||||
|     componentWillUnmount() { | ||||
|         const cli = MatrixClientPeg.get(); | ||||
|         if (cli) { | ||||
|             cli.removeListener("RoomState.events", this._onStateEvents); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     _onStateEvents = (event, state) => { | ||||
|         if (!this.props.room || event.getRoomId() !== this.props.room.roomId) { | ||||
|             return; | ||||
|  |  | |||
							
								
								
									
										41
									
								
								yarn.lock
								
								
								
								
							
							
						
						
									
										41
									
								
								yarn.lock
								
								
								
								
							|  | @ -1172,7 +1172,7 @@ | |||
|     pirates "^4.0.0" | ||||
|     source-map-support "^0.5.16" | ||||
| 
 | ||||
| "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": | ||||
| "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": | ||||
|   version "7.10.2" | ||||
|   resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.2.tgz#d103f21f2602497d38348a32e008637d506db839" | ||||
|   integrity sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg== | ||||
|  | @ -1186,6 +1186,13 @@ | |||
|   dependencies: | ||||
|     regenerator-runtime "^0.13.4" | ||||
| 
 | ||||
| "@babel/runtime@^7.11.2": | ||||
|   version "7.11.2" | ||||
|   resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" | ||||
|   integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== | ||||
|   dependencies: | ||||
|     regenerator-runtime "^0.13.4" | ||||
| 
 | ||||
| "@babel/template@^7.10.1", "@babel/template@^7.4.0": | ||||
|   version "7.10.1" | ||||
|   resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.1.tgz#e167154a94cb5f14b28dc58f5356d2162f539811" | ||||
|  | @ -2803,7 +2810,7 @@ contains-path@^0.1.0: | |||
|   resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" | ||||
|   integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= | ||||
| 
 | ||||
| content-type@^1.0.2: | ||||
| content-type@^1.0.4: | ||||
|   version "1.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" | ||||
|   integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== | ||||
|  | @ -5804,10 +5811,10 @@ log-symbols@^2.0.0, log-symbols@^2.2.0: | |||
|   dependencies: | ||||
|     chalk "^2.0.1" | ||||
| 
 | ||||
| loglevel@^1.6.4: | ||||
|   version "1.6.8" | ||||
|   resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" | ||||
|   integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== | ||||
| loglevel@^1.7.0: | ||||
|   version "1.7.0" | ||||
|   resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.0.tgz#728166855a740d59d38db01cf46f042caa041bb0" | ||||
|   integrity sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ== | ||||
| 
 | ||||
| lolex@^5.1.2: | ||||
|   version "5.1.2" | ||||
|  | @ -5920,18 +5927,18 @@ mathml-tag-names@^2.0.1: | |||
|   integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== | ||||
| 
 | ||||
| "matrix-js-sdk@github:matrix-org/matrix-js-sdk#develop": | ||||
|   version "8.3.0" | ||||
|   resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/b9886d4f3479c041fc6d91ebc88c4a998e9d2e7c" | ||||
|   version "8.4.1" | ||||
|   resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/a9a6b2de48250440dc2a1c3eee630f4957fb9f83" | ||||
|   dependencies: | ||||
|     "@babel/runtime" "^7.8.3" | ||||
|     "@babel/runtime" "^7.11.2" | ||||
|     another-json "^0.2.0" | ||||
|     browser-request "^0.3.3" | ||||
|     bs58 "^4.0.1" | ||||
|     content-type "^1.0.2" | ||||
|     loglevel "^1.6.4" | ||||
|     qs "^6.5.2" | ||||
|     request "^2.88.0" | ||||
|     unhomoglyph "^1.0.2" | ||||
|     content-type "^1.0.4" | ||||
|     loglevel "^1.7.0" | ||||
|     qs "^6.9.4" | ||||
|     request "^2.88.2" | ||||
|     unhomoglyph "^1.0.6" | ||||
| 
 | ||||
| matrix-mock-request@^1.2.3: | ||||
|   version "1.2.3" | ||||
|  | @ -6983,7 +6990,7 @@ qrcode@^1.4.4: | |||
|     pngjs "^3.3.0" | ||||
|     yargs "^13.2.4" | ||||
| 
 | ||||
| qs@^6.5.2, qs@^6.9.4: | ||||
| qs@^6.9.4: | ||||
|   version "6.9.4" | ||||
|   resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" | ||||
|   integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== | ||||
|  | @ -7449,7 +7456,7 @@ request-promise-native@^1.0.5: | |||
|     stealthy-require "^1.1.1" | ||||
|     tough-cookie "^2.3.3" | ||||
| 
 | ||||
| request@^2.87.0, request@^2.88.0: | ||||
| request@^2.87.0, request@^2.88.2: | ||||
|   version "2.88.2" | ||||
|   resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" | ||||
|   integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== | ||||
|  | @ -8569,7 +8576,7 @@ unherit@^1.0.4: | |||
|     inherits "^2.0.0" | ||||
|     xtend "^4.0.0" | ||||
| 
 | ||||
| unhomoglyph@^1.0.2: | ||||
| unhomoglyph@^1.0.6: | ||||
|   version "1.0.6" | ||||
|   resolved "https://registry.yarnpkg.com/unhomoglyph/-/unhomoglyph-1.0.6.tgz#ea41f926d0fcf598e3b8bb2980c2ddac66b081d3" | ||||
|   integrity sha512-7uvcWI3hWshSADBu4JpnyYbTVc7YlhF5GDW/oPD5AxIxl34k4wXR3WDkPnzLxkN32LiTCTKMQLtKVZiwki3zGg== | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Travis Ralston
						Travis Ralston